windows 10 年后 C# 的未来会怎样?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/1215946/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-15 12:55:29  来源:igfitidea点击:

What will be in C#'s future in 10 years?

c#windowsunity3d

提问by SteveM

I thought I'd be learning C++ at University, but it seems that they've now dubbed C# as an industry standard language.

我以为我会在大学学习 C++,但现在他们似乎将 C# 称为行业标准语言。

I never thought I'd bother with it, but it's actually a very nice language.

我从没想过我会为此烦恼,但它实际上是一种非常好的语言。

The only problem I have right now is that I'm limited to the Windows platform.

我现在唯一的问题是我仅限于 Windows 平台。

So maybe, when I write Windows programs from now on, I should practice C# instead of my previous WinAPI and C++ experience?

那么也许,我以后写 Windows 程序时,应该练习 C# 而不是我以前的 WinAPI 和 C++ 经验?

I've also heard great news about the Mono project, and also the fact that C# is one of the scripting languages for the Unity 3D game engine.

我还听到了关于 Mono 项目的好消息,以及 C# 是 Unity 3D 游戏引擎的脚本语言之一。

Any insights?

任何见解?

Open discussion to anyone!

向任何人开放讨论!

回答by SteveM

With Mono, you can run on Linux and Mac. Mono is also doing a Mono Touchversion for the iPhone. This has a lot of possibilities in the future. C# has been around for 9 years already and is part of .NET. with .NET also having C++, F#, VB.NET as languages also available, I think that C# will be around for a long time. C# became an ISO standard in 2003, so it definitely is a standard language. It does seem that it will always be a second-class language on Mac or Linux tho. One Windows I think it will be there and people will use it, but on the others there will be resistance.

使用 Mono,您可以在 Linux 和 Mac 上运行。Mono 还在为 iPhone 制作Mono Touch版本。这在未来有很多可能性。C# 已经存在 9 年了,并且是 .NET 的一部分。.NET 也有 C++、F#、VB.NET 作为可用的语言,我认为 C# 将存在很长时间。C# 于 2003 年成为 ISO 标准,因此它绝对是一种标准语言。它似乎永远是 Mac 或 Linux 上的二等语言。一个 Windows 我认为它会在那里,人们会使用它,但在其他 Windows 上会有阻力。

The Unity game engine for the iPhone uses the new Mono Touch and C#, so it might be the way that it gets more people looking at making iPhone apps and using C# on a non-Windows platform.

iPhone 的 Unity 游戏引擎使用新的 Mono Touch 和 C#,因此它可能是让更多人考虑在非 Windows 平台上制作 iPhone 应用程序和使用 C# 的方式。

回答by Daniel Earwicker

Learn both C# and C++. It sounds like "picking the right language" and therefore avoid the "wrong" ones will save you time, but it's a false economy. You should read up and play with all these languages:

学习 C# 和 C++。这听起来像是“选择正确的语言”,因此避免使用“错误的”语言会节省您的时间,但这是一种虚假的经济。您应该阅读并使用所有这些语言:

Sounds like a lot of hard work for nothing, right? Wrong. First, it's fun. Second, the more you learn about other languages, the better you get at using your preferred language. It's quite likely you'll end up more expert in one language, but you'll be able to use knowledge from all the others in it - C# has done a great job over its lifetime of smoothly integrating ideas from other languages.

听起来像是白​​费力气,对吧?错误的。首先,它很有趣。其次,你对其他语言了解得越多,你就越能更好地使用你喜欢的语言。您很可能最终会成为一种语言的专家,但您将能够使用其中所有其他语言的知识 - C# 在其生命周期中顺利整合其他语言的思想方面做得非常出色。

回答by Imagist

I think C# has a great future and will continue to grow in usage. On the other hand, I wouldn't be too quick to drop C++: it is an important industry language and will continue to be for a very long time.

我认为 C# 有一个美好的未来,并将继续增长。另一方面,我不会太快放弃 C++:它是一种重要的行业语言,并将持续很长时间。

See my answer to this questionto see my more general thoughts on how to choose which languages to spend time learning. Keeping up with language trends is an important long-term skill for a developer.

查看我对这个问题的回答,了解我对如何选择花时间学习哪些语言的更一般的想法。跟上语言趋势是开发人员的一项重要的长期技能。

回答by Jimmy

tl;dr version: learn both. then learn Scheme. learn whatever. There is no "one language that everyone teaches and that every employer will want you to use"

tl;dr 版本:两者都学。然后学习Scheme。随便学。没有“一种语言,每个人都教,每个雇主都希望你使用”

Before C#, a lot of universities were teaching Java. Lisp and Python are also commonly taught.

在 C# 之前,很多大学都在教授 Java。Lisp 和 Python 也经常被教授。

As higher level languages, C#/Java let students get to understand the higher-level concepts before they fully master the lower level ones, (so, for example, they don't have to get caught up about not causing memory leaks in their first Linked List implementation for intro to data structures.

作为高级语言,C#/Java 让学生在完全掌握低级概念之前先了解高级概念(因此,例如,他们不必在第一次学习时就不会引起内存泄漏)用于介绍数据结构的链表实现。

In the end, a well-rounded CS education will cover lower-level concepts as well. I believe most students take at least an Intro to Computer Systems course, where C/C++ and reading disassembled code is required.

最后,全面的 CS 教育也将涵盖较低级别的概念。我相信大多数学生至少参加过计算机系统入门课程,其中需要 C/C++ 和阅读反汇编代码。

for the record, My first CS class was SICP in Scheme, followed by a series of classes where we were allowed a choice of C++ or Java (and sometimes Scheme/Perl/other).

作为记录,我的第一个 CS 课程是 Scheme 中的 SICP,然后是一系列允许我们选择 C++ 或 Java(有时是 Scheme/Perl/其他)的课程。

回答by Ira Baxter

History suggests that C# will be in large use but probably with declining market share. Consider what has happened to all the other major languages you know about: at one point, they were among industry's favorites (COBOL, PL/1, Ada, Basic, C, C++, even Java) and now other languages are eclipsing them. C# will probably hold up pretty well; it is well designed and Microsoft has every reason to keep pushing it. OTOH, then needs of next generation computing (parallelism, distributed computing, security) may cause even Microsoft to replace it (witness IronPython, F#, ...).

历史表明,C# 将被大量使用,但市场份额可能会下降。考虑一下您所知道的所有其他主要语言发生了什么:曾一度,它们是业界的最爱(COBOL、PL/1、Ada、Basic、C、C++,甚至 Java),而现在其他语言正在超越它们。C# 可能会保持得很好;它设计精良,微软有充分的理由继续推动它。OTOH,那么下一代计算的需求(并行性、分布式计算、安全性)甚至可能会导致微软取而代之(见证 IronPython、F# 等)。

Its probably worth your trouble to learn it, on the grounds you're not going to guess the replacement easily at this moment and it will still be useful in decade, if nothing else because of the huge code base it will have.

学习它可能值得你费心费力,因为此时你不会轻易猜到替代品,而且它在十年内仍然有用,如果没有别的,因为它将拥有庞大的代码库。

回答by Steve Gilham

As a language, C# will continue to embrace and extend -- with the dynamic and functional extensions it's growing, it's becoming more like JavaScript than Java in nature. I would not be surprised to see it subsume the feature set of MSFT's experimental Axum languagefor highly concurrent use.

作为一种语言,C# 将继续接受和扩展——随着它不断增长的动态和功能扩展,它在本质上变得更像 JavaScript 而不是 Java。看到它包含MSFT 的实验性 Axum 语言的功能集以供高度并发使用,我不会感到惊讶。

In response to the question behind the question -- I'll add a "me, too!" to all the posts about learning more languages. Just because you already know one Turing-complete language, that's no excuse to stop. Other languages will slice problem space in different ways, and give you insights on how to cast your solutions more effectively. And just having more tools in your toolbox is a good thing, rather than always using the same hammer.

为了回答问题背后的问题——我将添加一个“我也是!” 所有关于学习更多语言的帖子。仅仅因为你已经知道一种图灵完备的语言,这不是停止的借口。其他语言将以不同的方式分割问题空间,并为您提供有关如何更有效地投射解决方案的见解。在你的工具箱里有更多的工具是一件好事,而不是总是使用同一个锤子。