如何评价微软 11 月 13 日宣布 .Net 核心运行库开源并跨平台运行?

关注者
1591
被浏览
201352

55 个回答

微软终于打算做诺基亚当年做了一半就放弃的事情了?各位是否还记得诺基亚收购 Qt 并使用 LGPL 发布的事。

我觉得这是好事,但愿微软执行力比诺基亚强。

要想让 Linux/OSX 全兼容那是需要花相当大功夫的事。这需要时间,需要大量的工作量。现在评论还为时过早。.NET 能不能真的跟宣传的那样美好,要看微软在这件事情上的执行力,认为现在就立等可用的应该是想多了,跨平台还是需要非常庞大的工作量的,C#要完全多平台可用,还需要的工作量非常惊人。希望微软在后续的日子中能够将这件事情做得比别人更好,而不是仅仅把源代码放出来就不管了。

time will tell。
微软在三哥CEO上台以后,一直在推崇One blabla的概念(概括起来可以说是“一个微软”)。以这个概念为指导思想,我们不难看出微软一系列动作背后的深层原因。

为什么要开源:生产力,信任
关于这个问题大多数人的会比我深刻。开源是互联网时代的一个核心价值观。在同一个价值体系下还有众筹,众包等概念。这是在人与人沟通交流合作成本大大降低后提高生产力的必然产物。全球各地都有开发者,贡献者,监督者,这个力量与十几个精英分子坐在小黑屋里埋头苦干的力量不可同日而语。信任是开源的另外一个关键词,你可以随时随地检查源代码,你有什么理由不去使用一个你可以完全信赖的东西?另外值得注意的一点是在三哥上台以后多次在演讲和公开信中提到“生产力”这个词。微软的一些列动作也是为如何提高人/企业的生产力而服务的。

.NET跨平台——对开发者的意义
对于对开源有深刻认识的那一批人来说,开源二字就有足够的理由让这批开发者去使用至少是尝试使用一个本身非常不错的框架,并且提出自己的修改意见。但是对于其他百分之90以上的开发者来说,.net的开源——开放源代码本身对他们没有任何意义,因为他们没有能力,或者没有时间,或者没有兴趣去阅读和修改源码(没有任何不尊敬的意思,我就是这90%的开发者之一,并且隶属于没有能力这一类)。那么对于他们的意义是什么呢?——跨平台,One blabla。写一次代码,到处跑,这难道不是每个普通开发者梦寐以求的?这难道不是JAVA流行的根本原因?学习新语言的语法非常简单,对于一个有经验的开发者在一天内掌握新语言的语法易如反掌。但是对于生态圈的迁移成本却是巨大的。每个语言都有自己成千上万的库,每个语言在每个方面都有自己成熟的框架,这个学习成本在当今速度就是金钱的时代是大多数码农/公司都很难承担的。

.NET跨平台——对微软的意义
微软是一个上市公司,上市公司的首要责任就是保证股东们赚钱。互联网时代靠单纯的收取授权费来赚钱已经不是一个理想的方式,吃肉喝汤才是正确思路。iTune和App Store的巨大成功就是吃肉喝汤的典范。如何能够实施吃肉喝汤的战略?——构建生态圈。构建生态圈的第一步就是拥抱开发者。核心代码不用做重大修改就能运行在Windows, Linux, Android, iOS, Mac OS X,一门语言既能做桌面APP开发,又能做网站开发,又能做移动开发,那么作为一个开发者,有什么理由不去拥抱这样一门语言,这样一个生态链呢(简历上只有一门语言不好看?呵呵)?或许有人会质疑Mono project早就做了同样的事情,但是效果并不明显。现在几乎可以肯定的是,微软要么已经收购了Mono小组,要么与其进行深度合作,同一批人同一个项目由微软这个巨头的来进行宣传那么获得的效果和影响自然要好得多,所以过去的小众并不能代表将来的小众。Mono项目由Xamarin支持,Xamrin与VS Community版以及2015版本的集成可见端倪。Xamrin原来的价格高得吓人,一般的独立开发者还是很难接受的,而微软把这么一个好东西免费了,我想必定有不少开发者会加入阵营吧。到了现在还把微软,Mono, Xamarin分开来看是不正确的,现在他们是一伙儿人。

OK,一旦有开发者愿意加入到这个大潮中,那么他们马上又将堕入微软的另一张大网——Azure。在谈Azure之前我想先说为什么Python,RoR在startup中甚为流行——因为开发速度,迭代速度。Python的代码简洁性和可读性无以复加,速度就是金钱的时代获得无数开发者的簇拥,那么这跟Azure有什么联系呢?使用Azure,你能达到同样的效率,哪怕是用C#。Azure的集成度,使用的简易程度,功能的完善程度在当今的云里面无有出其右者。AWS作为鼻祖在价格上和基础设施上有自己的优势,作为IaaS无愧为业界老大,但是在更高级的层面PaaS Azure确实遥遥领先的。我自己开发的网站原来部署在AWS上,在免费试用了一个月的Azure后再也回不去了。Azure的集成度和易用性简直惊人。在Linux上搭建开发环境,托管网站,搭建数据库,搭建APP后端,做负载均衡,管理底层虚拟机,甚至从买CPU,买主板开始搭建服务器是很了不起的能力,但是毫无必要,对于重新发明轮子这种事情在短暂的一百年人生中做得越少越好。

微软的布局大家已经看的很清楚了:开源.NET->拥抱开发者->Azure套牢->构建生态圈(包括硬件生态,Windows Phone, Surface Pro, XBox One)->吃肉喝汤。我们单独看其中任意一环毫无意义,任何一环都有替代品,但是当我们真正步入这个生态圈并开始使用一整套的服务时,那完全是另一番天地。甚至当我们开始使用Windows phone,Surface pro,Xbox时,发现这个服务链简直完善得无以复加。而微软的另一个优势是在国内和国外有着相似的用户体验。喜欢Google的技术和服务?抱歉,在大陆不存在。


后记
-----------------------------------------------------------------------------------------------------
这一系列连续的动作以及原油价格的大跌让我们不难理解为什么微软市值超越美孚成为全球市值第二大的公司。所谓的布局并不是但看每一步就能得出结论的。我从来不是微软的粉丝,直到我开始使用Azure,意识到这一整个生态圈让我节约多少不必要浪费的时间。我本身的职业是硬件工程师,每天需要阅读大量的RTL代码,需要修改大量的CShell, Perl, Ruby写的流程控制脚本,同时也需要写Verilog和C++的接口,以便将C函数库动态链接到Verilog仿真中。而其中大部分时间的浪费都在于没有一个良好的集成开发环境,任何修改阅读都靠Vim和terminal,想知道所使用的函数的包的路径是否已经包含?想知道是否有语法错误?想动态提示?。。。想都别想。这种长久以来的痛苦让我更加享受在一个完善的体系里面工作的那种快感。
为什么?