上周,微软宣布 .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 开源主要有六种看法。
- 让 Windows 成为世界的操作系统。自从 2002 年 Windows 奠定了基础以来,.NET 就是 Web 服务器、服务导向架构以及云部署需要选择的框架。它是 Java 框架的主要竞争对手,随着它只能在 Windows 机器上运行这个约束的消失,那么将意味着全世界的工作都可在 Windows 上运行。
- 微软关于 .NET 的公告就像苹果关于 Mac OS X 的公告一样大。Mac OS X 已经成为企业计算环境的基石,这是一个不可否认的事实,而几年前,Mac OS X 倾向于被归纳为图像艺术部门。微软 .NET 开源的举措获得各界点赞,尤其是在程序员聚集的论坛以及社区,同时,关于这一举措的讨论也是遍布整个网页,微软的这一公告无疑是一个重磅炸弹。
- 这意味着开发人员有更多的选择。作为一个开发人员,Sinclair Schuller 相信 .NET 开源公告对于开发人员来讲是一个大的政策。公告公布之后,他在邮件里提出一个 .NET 跨平台的版本,意味着开发者有更多的选择,.NET 开发人员可以建立更多的应用程序,它们可以运行在更多的平台上面。这意味着会有更多的关于运行时间、语言和堆栈的竞争,从而可以让开发人员学习如何更好的进行开发工作。.NET 与 Linux 的融合对于开发人员来讲无疑是一件值得高兴的事情。
- .NET 只是众多选择中的一个。微软的举动也许是在承认一个事实,即 .NET 已经不再像之前那样占据着顶端的位置。正如 Jonathan Vanian 在 GigaOm 指出的那样,如今的开发者已经渐渐的远离了 .NET。.NET 开源并不能保证微软将获得大量涌入的开发人员,开发者仍然可以选择 Java、PHP、Node.js、Ruby on Rails 等其他语言。在某种程度上,该公司是在玩火,该公司将 .NET 开源运行于其他平台上面或许会让开发人员觉得这只是因为微软技术的缺乏。
- 让平台作为服务的前端。当企业选用 PaaS(平台即服务)时,多平台基础的建立将会变得更加容易。Schuller 说:“.NET 的全部开源将意味着它会支持 Windows、Linux 以及 Mac。如果 PaaS 真如它声称的那样完全适应 .NET,那么我希望 PaaS 架构的复杂度可以增加。 Linux 平台上的应用在使用 .NET 框架后将变得更加简单和易用。”
- 有助于自主创新。开源的意思是底层的源代码公开修正和改写。.NET 的开源可以让我们看到 .NET 是如何在一个新的功能类型上被改写的,我们可能会在一个我们以前不能想象的地方看到 .NET。