视开源为癌症,微软拥抱癌症是找死还是自杀?

jopen 6年前

这 两天大家都在讨论微软开源的事情,作为一名曾经的Java程序员,我已经有十年没有碰到代码了,除了”hello World”那句能通往开发世界的问候语外,我已经不会写任何一行代码,但我还是认为微软开源错过了最佳时机,当年微软就被Java打的满地找 牙,Java程序员在找工作上也比.Net高一头,程序员圈子里一直有一个怪象就是搞Java的看不上搞.Net,双方阵营一直在暗自较劲,特别 是.Net在一些大型企业商务开发上,由于天生残疾,让很多软件开发商有选择的放弃.NET,.NET也被认为是一只关在笼子里的金丝雀,离开微软的池塘 就是等死的命。


记得在一个开发论坛上有一个.NET的程序员曾无奈的表示:参加个招聘会,看得到好多大公司都要求精通Java,心理特 别 不是滋味,可惜上大学就学了.NET,而Java到大三才开,并且草草地只讲了些基本知识。有时我就在想难道当初选择.NET真的错了吗?Java确实 比.NET存在很多优势。开源、跨平台、免费、开发工具也有免费的。还有万一严厉打击用盗版的WINDOWS的时候,大家都改用linux,.NET程序 员是不是就要失业啦。不知道.NET什么时候也能够开源呀。

可能这个兄弟有点过分杞人忧天,但是.NET的确因为不能跨平台受限,下面这种图表就可以说明一切。


视开源为癌症,微软拥抱癌症是找死还是自杀?


有 业内人士就曾说过,微软本来是一个玩家却因为苹果的异军突起而变成一个跟随者,特别鲍尔默执政时期的错误决策,一直强调“硬件和服务”,耽搁了微软一些优 势项目发展的黄金时期,.NET上没有多大进展,因为微软在那段时间没有让自已的优势更强,只是让劣势更劣,当微软的新CEO纳德拉上任之后,才重新调整 微软的位置,进一步弱化“设备和服务”的概念,希望以“移动和云优先”重塑自已玩家的地位,所以我们看到微软的内部组织机构的调整,以及近期微软一系列的 开放政策,包括将Office 365免费和.NET开源。

过去一直视开源为癌症的微软,难得的敞开双手大力拥抱开 源。将更多.NET的部分纳入开源计划之中,包含整个.NET服务器端的核心类别,ASP.NET 5.0、.NET Common Language Runtime(CLR)、Just-In-Time Compiler、Garbage Collector以及Base Class Libraries等,都在开源的范畴之中。而微软也将会实作Linux与Mac版本的服务器端.NET Runtime,这将使ASP.NET 5.0的应用程序,可以跨平台的在3大主要操作系统中执行。

简单来说,本次微软总共开源了.NET 3大区块,而除了.NET Framework 4.6、.NET Core 5,还有Runtime跟编译平台等。

这 些作为将使开发者能够建设在Windows Server以及Linux运作的.NET服务器以及云端应用程序。不过,值得注意的是,.NET客户端的类别将不会开源,像用户接口技术Windows Presentation Foundation(WPF)以及Windows Forms,微软目前并无开源的计划。

微软开发部副总裁S. Somasegar表示,微软想建立更健全的开发者社区。虽然.NET服务器端开源计划在几个月后才会真正实施,但微软已经决定在Github公开他们的原代码。

在这之前,微软早在2014年4月时宣布,透过NET基金会,已将众多开发工具栏入开源计划之中,例如.NET编译平台Roslyn、ASP.NET、.NET Micro Framework,还有VB与C#等开发语言。

不过,.NET服务器端的核心类别的开源以及.NET开发工具的开源,究竟之后会造成哪些影响及改变,需要持续的观察,但是可以确定的是,微软不光只是喊出拥抱开源的口号,而且还逐步的实践中。

有很多人认为微软.NET开源的矛头直指Java,多年以来,由于.NET依附于Windows平台,无法与Java在跨平台环境中进行竞争。

近 年来随着移动互联网和云计算的蓬勃发展,微软在开发者社区的人气一路走低,虽然.NET支持C++、C#、VB和Python等多种编程语言,而且也为关 键企业应用开发提供数据库互动等功能,但是在一些新的技术趋势中,例如最近开始流行的Linux服务器上的容器化云计算开发技术,微软开始落伍。

.NET的开源,意味着微软将彻底走出封闭的操作系统生态,与云端开源技术实现融合,例如让.NET服务在Docker容器中运行。这对于600万人心浮动的微软开发者来说,相当于一副定心丸。

.NET的开源,是微软正式告别PC时代的另外一个标志性事件,微软新任首席执行官Satya Nadella信奉跨平台策略,主张以开发者而不是Windows为中心重构微软的软件和云基础架构。

另外据悉,微软正与开源社区Mono紧密合作,在微软宣布.NET开源之前,Mono是实现在非Windows操作系统中应用.NET的主要开源项目。此举显示微软正在尽一切可能稳定人心,壮大.NET开源队伍。

微软相关负责人表示,微软将.Net进一步开源的决定并不是心血来潮,而是酝酿了几年的结果。  可见,微软最被逼的死胡同的一个决策,但是微软的确错过了开源的最佳时机,但对于微软的开发者来说,微软的开源就像一场及时雨让他们相信微软会越来越好。

来源:人称IT客