.NET开源的背后:是无奈,还是顺应潮流?

上周,微软宣布.NET开源,并把它扩展到Linux和Mac OS平台上面。此举受到那些曾经常怀疑微软意图的IT团体的热烈欢迎(好吧,我的好朋友Adrian Bridgwater是个例外,他暗示微软开源的举动只是为了巩固其统治世界的地位)。

根据ZDNet主编Mary Jo Foley的记录,微软从2014年4月开始的一系列举动中,.NET开源是最新的举动。那时微软宣布将开源数个开发技术,包括ASP.NET、Roslyn.NET编译器平台、.NET微框架、.NET Rx以及VB和C#程序语言。这些技术都可以通过一种新的方式创建.NET基础。Mary Jo Foley记录上提到,在这一新的举措里,微软在MIT开源许可证下面增加了更多.NET开源的列表,包括.NET通用语言库(CLR)、即时编译器、垃圾收集器和基类库。

但是.NET的开源对于世界而言意味着什么?外界对于微软.NET开源主要有六种看法。

  1. **让Windows成为世界的操作系统。**自从2002年Windows奠定了基础以来,.NET就是Web服务器、服务导向架构以及云部署需要选择的框架。它是Java框架的主要竞争对手,随着它只能在Windows机器上运行这个约束的消失,那么将意味着全世界的工作都可在Windows上运行。

  2. **微软关于.NET的公告就像苹果关于Mac OS X的公告一样大。**Mac OS X已经成为企业计算环境的基石,这是一个不可否认的事实,而几年前,Mac OS X倾向于被归纳为图像艺术部门。微软.NET开源的举措获得各界点赞,尤其是在程序员聚集的论坛以及社区,同时,关于这一举措的讨论也是遍布整个网页,微软的这一公告无疑是一个重磅炸弹。

  3. **这意味着开发人员有更多的选择。**作为一个开发人员,Sinclair Schuller相信.NET开源公告对于开发人员来讲是一个大的政策。公告公布之后,他在邮件里提出一个.NET跨平台的版本,意味着开发者有更多的选择,.NET开发人员可以建立更多的应用程序,它们可以运行在更多的平台上面。这意味着会有更多的关于运行时间、语言和堆栈的竞争,从而可以让开发人员学习如何更好的进行开发工作。.NET与Linux的融合对于开发人员来讲无疑是一件值得高兴的事情。

  4. **.NET只是众多选择中的一个。**微软的举动也许是在承认一个事实,即.NET已经不再像之前那样占据着顶端的位置。正如Jonathan Vanian在GigaOm指出的那样,如今的开发者已经渐渐的远离了.NET。.NET开源并不能保证微软将获得大量涌入的开发人员,开发者仍然可以选择Java、PHP、Node.js、Ruby on Rails等其他语言。在某种程度上,该公司是在玩火,该公司将.NET开源运行于其他平台上面或许会让开发人员觉得这只是因为微软技术的缺乏。

  5. **让平台作为服务的前端。**当企业选用PaaS(平台即服务)时,多平台基础的建立将会变得更加容易。Schuller说:“.NET的全部开源将意味着它会支持Windows、Linux以及Mac。如果PaaS真如它声称的那样完全适应.NET,那么我希望PaaS架构的复杂度可以增加。 Linux平台上的应用在使用.NET框架后将变得更加简单和易用。”

  6. **有助于自主创新。**开源的意思是底层的源代码公开修正和改写。.NET的开源可以让我们看到.NET是如何在一个新的功能类型上被改写的,我们可能会在一个我们以前不能想象的地方看到.NET。