3
本文作者: 井三胖 | 2014-11-19 10:36 |
2014年11月13日,微软表示开源.NET,包含整个.NET服务器端的核心类别,ASP.NET 5.0、.NET Common Language Runtime(CLR)、Just-In-Time Compiler、Garbage Collector以及Base Class Libraries等,都在开源的范畴之中。
消息一出,霎时在全世界开发者的圈子内炸开了锅。巨头企业这次不光是口头喊出“拥抱开源”的口号,践行开源能够看出微软是动真格的了。针对此事,笔者请教了业内资深人士张善友老师(博客链接点击这里)。张老师根据自己多年的开发经验,针对微软开源.NET事件,表达了自己的看法。
张老师于2001年开始接触.NET,个人很欣赏C# 语言的强大操作能力、优雅的语法风格以及创新的语言特性。他认为微软.NET的优点主要有三个:多语言、多平台支持;学习成本低;拥有一流的开发工具。
然而另一方面,本身具备跨平台基因的.NET却因为微软战略部署,包括在底层代码的实现上,都没有做到跨平台的支持。真正能够实现跨平台支持的是由Novell公司发起的Mono项目。Mono现在由Xamarin在运营,根植于.NET的技术核心,成为了其在Linux上使用的替代品。
Mono 历经十余年发展,已经成长为一个庞大的生态系统。.NET Framework 和 Mono 的交集仅限于 CLR/编译器/BCL 底层以及 Web 栈。.NET Framework 的上层为 Windows 和 Azure 设计。Mono 上层针对 Linux, OS X 等多平台设计,不可替代的东西很多。
相比于微软,Mono项目依旧有不完善的方面,开发者在使用过程中有许多不便之处。在2007年微软仅仅是基于自己的“参考协议”公开了部分源代码,既不能编译成完整的函数库使用,也实际上不允许类似的代码使用。对于 Mono 项目的代码贡献者来说,这反而是个负担。
张老师表示,为了避免出现可能的版权纠纷,仔细阅读和研究过微软代码的人是不能够给 Mono 捐献核心代码的。彻底的基于 OSI 认证的 MIT 协议公开了.NET Framework 的核心代码,并且提供了免费的专利授权,这使得 Mono 可以“拿来就用”。更好的繁荣了 .NET/Mono 这两个庞大的生态系统。微软完全开源.NET,提供了专利承诺,都将都有助于.NET得到应用。此外,Mono团队可以利用微软的开源,来解决Mono代码库中不完整或者存在错误的地方。
张老师表示,曾经身边的很多人都离开.NET开发转向Java、PHP等的开发。.NET的开源能够吸引这些人重回.NET社区,对推动社区的发展非常有帮助。
张 老师说,在国内经常听到这样的故事,某产品是基于.net开发的,而政府的项目需要使用Linux操作系统。开发者不得不面对两种选择,第一种是将产品移 植到Mono平台,另一种选择是重新组建一个Java开发团队将产品重新用Java开发一遍。这两种选择在国内都有,但是可惜的是很多都选择了重新组建一 个Java团队,而不是将产品移植到Mono平台。但随着微软开源.NET之后,开发者们再也不需要被迫走弯路了,包容开放的社区环境无疑会收获大量人才 的回归。
其实早在多年前微软就通过开源asp.net mvc等项目支持了Mono项目。近年微软开始参与Linux内核贡献并成立了开放技术子公司。在今年4月成立.NET基金会,将众多开发工具纳入开源计划之中,例如.NET编译平台Roslyn、ASP.NET、.NET Micro Framework等,这一系列的举动都是.NET开源的前奏。
微软的市值现在升值为4100亿美元,超过了谷歌公司位居全球第二,自身正逐渐走出PC时代的思维困局,做好准备迎接即将到来的物联网时代。微软发布新的计划,将加大对.NET Micro Framework的投入力度,着力在智能设备和物联网领域进行深度开发。
擅长PC业务的微软,在“云”这个平台上,自身的技术和整体布局上并没有落后,战略眼光和实际执行均部署到位。但是在移动入口(手机、平板)市场,微软进入的虽早,却收效甚微。即便是收购了日渐式微的老牌巨头诺基亚,也没有摆脱战败的局面。所以微软现在宣布开源.NET,鼓励支持Android和IOS开发,就是想在移动入口有所作为。
开源.NET是为了落实微软新任CEO萨提亚·纳德拉倡导的“移动为先,云为先”新政。张老师认为,在现在的时代,存在替代选择的情况下,开发者已经没有理由为操作系统付费。他们可以选择云服务。微软此举只是吸引更多开发者使用其Azure服务。
微软的营收支柱软件Windows和Office 都完成了云化,Windows 对应Azure云平台,Office 演化成了Office 365 。微软的战略重心已经从PC转移到云端,.NET开源可以促使更多的开发者使用Azure云服务。
纳德拉在上任后实施的一系列举措让微软在潜移默化中得到改变,信奉跨平台战略,主张以开发者而不是Windows为中心重构微软的软件和云基础架构,搭建完善的云开发的生态系统,无疑是对竞争对手们的沉重的打击。新政致力于将微软的生态核心从Windows操作系统转移到Azure云。.NET的开源有利于实现微软新生态向Linux,iOS和Android的渗透,Visual Studio 和.NET 能够真正走向跨平台化。
雷峰网原创文章,未经授权禁止转载。详情见转载须知。