为什么要用 C# 来作为您的首选编程语言

  因为您可以用,并且也是您的最佳选择!之所以可用,是因为 C# 能够很好地在 Mac、Linux、Android 和 iOS 上运行(对了,还有 Windows);它可以在您最喜爱的编辑器上运行;它在一个稳定的企业级平台上经过了充分的时间验证;最为重要的是:它是完全开源的!之所以是您的最佳选择,是因为 C# 是编程语言创新方面的领导者,是原生跨平台移动应用程序的最佳选择,并且还有很多的优点超乎您的想象。在本次 GOTO Copenhagen 2016 大会讲演上,Mads Torgersen 邀请您一起来探索 C# 的核心,探究为什么它仍然散发着活力,并探寻未来 C# 的发展趋势。

概述  

    我是 Mads Torgersen,就职于微软的 C# 部门。我现在年纪大了,因此我随身都穿着这件 T恤,上面印着我正在负责的项目和语言名称,以防我忘掉它们。这里我想谈一谈 C#,为什么我要推荐用它来作为大家的首选编程语言呢(即使到目前为止您还没有接触过 C#)。


Stack Overflow - 最受欢迎和喜爱的技术

    Stack Overflow 每年都会进行一次调查,询问很多开发者们都关心的问题(当然,在很多方面这些问题都是很具有倾向性,是很不科学的)。您必须在 Stack Overflow 上才能参与。

    C# 是一门被广泛使用的编程语言(排行第四,排行前三当中有一门实际上并不属于编程语言——我说的不是 JavaScript,我说的是 SQL)。可以看出,C# 是一门主流语言。

    他们同样还问开发者们:是否还想继续使用目前正在用的语言,并让人们投票出他们最喜爱的技术。C# 同样也在这个列表当中。这说明人们都很喜欢 C# 这门语言。此外还有其他人们也喜欢的语言,但是您还可以注意到,这些语言中的大部门要么就是受众较少,要么就是非常专业化,很多都是某种狂热信仰的一部分了。在这两个列表当中,只有少数才是用途广泛、受人们高度喜爱的。很高兴能看到 C# 位于这个列表的三大最受欢迎的技术之一,其中两个是编程语言,并且* Python 也在这里面*。

    我们不断思考我们的所作所为,怎样才可能是正确的呢,怎样才能让我们在多年以后仍然喜欢它。似乎并不是所有人都用过 C#,因为很多人所在的公司已经有 10 年多的历史了,里面存在了很多的遗留代码。目前 C# 仍然保持着活力,我们希望它能将这份活力保持下去。我们同样也有各式各样的想法,而这驱动了 C# 的演进。

    我们非常渴望去演进 C#。如果您看过现代语言的演变进程的话(从少到多),就会明白我们积极保持语言现代化的目的所在了。作为参与编程语言演变的一份子,我们有些时候是推动者,有些时候是跟随者,无论如何,我们都试图让 C# 成为程序员们如今的绝佳选择之一。我们不应该搞所谓的「限定」,只局限于某几个平台,因为过去十年当中就有人这么做了,结果可想而知。

    我还想提一提 F#,因为这相当于是我们的姊妹语言,它非常受欢迎,因为它很轻巧、也很强大。F# 是一门功能强大的语言,我们在与 F# 团队的合作当中获益良多,并且它也给我们提供了很多设计灵感。

    (说明:F#是由微软发展的为微软.NET语言提供运行环境的程序设计语言。它是基于Ocaml的,而Ocaml是基于ML函数程序设计语言的。函数编程是解决许多棘手问题的最好方法,但是,纯函数编程并不适合常规编程。因此,函数编程语言逐渐吸收了命令式、面向对象的编程模式,不仅保持了函数编程范式,同时也混合了其他需要的功能,使函数编程编写各种类型的程序都很容易。F# 就是这种尝试的成功代表,比其他函数编程语言做得更多。F#主要是为了解决特定的某些复杂问题,所以本身定位使得VS没有提供F#的ASP.NET/WPF/GDI+的模板,若要使用需要自己配置。所以,一般情况下都是用C#。

时代在改变 - 为什么要选择 C#

    在越来越多的场景当中,您都可以使用 C#来进行编程。我们正在努力地做出一种改变。C# 在 Windows 当中是一种很重要的主要编程语言,但同时,我们在其他平台上仍然还非常稚嫩。至少大多数平台是这样。现在 C# 已经是所有平台上可选的编程语言之一,这非常鼓舞人心,然而我们同时也有些顽固,此外这些平台上也出现了各式各样新颖的语言。这使得我们迫切地希望其他平台上也能够使用我们的语言。

    我们已经很多次对我们的语言进行了演进。实现 C# 底层的编译器和 IDE 技术(名为 Roslyn 项目)为 C# 的编程启用了独一无二的场景。其中一个好处是,我们将 C# 的核心从 Windows 和 Visual Studio 当中剥离了出来,这意味着 C# 能够很容易地在其他 IDE 当中使用。您可以用自己喜爱的 IDE 或者编辑器来编写 C# 代码。

    我们已经将 C# 从完全的专有技术转变为了完全开放源代码的技术了。这意味着每个人都能给 C# 贡献代码了,当然也已经很多人参与到这个项目当中来了。我们现在正在同社区展开交流,现在 C# 的演进非常迅速。因为现在这更像是一个协同项目了,而不是「微软说怎样就怎样了」。这非常让人兴奋。现在语言的变革已经不再是三年才一代了。「这是我们努力的成果,希望您能喜欢它」,我们现在每天都在与社区讨论未来的方向问题。我们随时随地都能够在网上、Github 上得到反馈。因此,我们语言设计的质量也越来越高。

    让我们从 C# 的各个项目开始一一介绍。


无处不 C# - Xamarin

    Xamarin 以前是一家独立的公司。我们六个月之前收购了他们。这是一种使用 C# 来构建跨平台应用的技术,用来制作原生的 Android 和 iOS 应用。它可以让您使用相同的语言、相同的源代码来构建绝大多数应用组件,从而能够为多种不同的移动平台编写应用。

    它适用于 iOS 和 Android,同样也可以用在 Mac 之上,顺便提一下,Windows 也可以使用。它可以创建高品质的原生 UI。有许多大型应用正在使用这门技术,因为它可以极大地减少单独在这些平台上编码的工作量。它也允许您使用与后台相同的语言,例如说 Java,不过 Swift 和 Objective-C 还未支持。它以支持的平台量取胜,是一门实现应用的绝佳语言。

    它基于 Mono 项目,这是多年以前从微软离职的员工所实现的开源项目,并且一直维护,致力于能够在其他平台上也能够使用 C#。虽然在微软当中的我们有些固步自封,但是他们却在我们之前看到了 C# 跨平台的潜力,并实现了这个伟大的跨平台项目。Xamarin 正是基于此而生的,您在 iOS 和 Android 应用商店当中看到的许多应用都是基于 C# 的,要么是使用 Xamarin,要么是使用 Unity,这应该是业界领先的游戏引擎。


无处不 C# - Unity

    Unity 也是一个基于 Mono 的项目,它的 2D、3D 游戏引擎是用 C# 来编写的。有很多游戏是用 C# 编写的。


无处不 C# - .NET 核心

    在微软,我们正努力完善 .NET 核心,这是对整个 .NET 技术栈、运行时以及代码库等内容的全新实现,旨在保证轻量、并且可供服务端使用,并且可用作云和服务器工作负载。它是跨平台的,适用于 Linux、Mac 和 Windows。我们在此之上还放置了 ASP.NET 框架,这是一个被广泛使用的 Web 框架,目前您就可以在非 Windows 的机器上运行 ASP.NET 了,并且它还完全开源了!为什么我们要建立一个单独的核心呢?这将有助于您能够构建更轻量的服务器。

    首先,我们移除了 UI 框架,但是 UI 框架能够独立部署。例如,您可以将运行时环境同代码一并发布;云端无需安装各式各样的依赖文件。它拥有一个更优秀的架构,更适合微服务的部署。它同样也致力于使我们的服务端平台更加现代化。这些不同的 .NET 运行在不同的平台上,如果没有统一的部署,那么随着版本的扩散,一切就会变得非常的混乱,尤其是您作为第三方库提供方的时候。您需要某种东

你可能感兴趣的:(c#,开发语言,程序人生,经验分享,java)