本文作者Richard Turner是曾经在微软工作了十年,罗列了十大证据证明微软已经在往开源的方向前进,究竟已经走了多远,又是否会对Windows 8等移动平台及整个移动开发环境造成多大的影响呢?
1.鼓励开源的生态系统
Windows和.NET开发者社区里面充满了开源的项目和提议,由 Ninject,AutoFac, Castle Windsor 和 StructureMap 等IoC/DI 框架,到nUnit等测试工具,由RavenDB等NOSQL文档数据库,到Orchard和Umbracon那种强大的文件管理系统,这些例子也只 是.NET/Windows 平台里众多开源项目的冰山一角而已。
2.减少无谓的反复“创新”
微软一直坚持自己开发完成别人在开源世界已经存在的技术的微软版本,这点一直让众多开发者不爽。所以当ASP.NET MVC3.0发布的时候还是让开发者们很惊喜的,因为这个微软第一次发布一个包括开源代码的主要项目,而 ASP.NET 4.0也增加了 jQuery Mobile & JSON.NET等更多的开源功能。
3. 和NuGet数据包管理器合作
数据包管理器对于开源生态系统来说非常重要,有了它开发者们才能轻松共享自己的代码, 而在2010年十月发布的NuGet能很好的弥补Windows/.NET 平台开源生态系统在这方面的不足,现在已经容纳了包括 jQuery, Modernizr, JSON.NET, ELMAH, log4net, Ninject等6000多个各大.NET开发者们需要数据包资料,虽然6000这个数字对比其他开源平台来说有点少,但是数据包的数量还在稳定增长中, 现在有的包也都非常有用,相信以后一定会变得更好的。
4. 把Windows系统优化成一个适合开源程序的平台
现在很多热门开源项目都是通过基于Linux的平台进行开发的,Windows想要运行这些项目就需要通过Windows的虚拟机才可以,失分不方 便,而微软已经在这方面做出了努力,2011年11月,微软就宣布通过新版的LibUV可以在Windows系统上稳定的运行node,同时,微软发布 了 IISNode ,让开发者可以在 IIS构建node。而在 LibUV 广受欢迎之后,其他开源项目现在都在都在做Windows系统的本地化。
5. 让接口多元化、规范化
这也是微软的开源社区已经走向成熟的标志,以去年十一月Antirez宣布微软提供了Windows可以本地运行Redis的端口这事为 例,Antirez并没有接受在Redis的核心代码中加入微软补丁的做法,而鼓励微软创建自己的Redis分支接口。而通过开源社区的努力,也成为了今 年开源社区第一个正式完成发布的项目。
6. Windows支持 Apache, PHP 和 Ruby
从2008年开始,微软已经开始了这方面的努力,而现在不但在Windows 系统上可以构建Apache网络服务器,而且IIS也已经可以搭载Wordpress, Drupal, Joomla等给予PHP技术的网页和服务。
7.Azure支持众多开源平台
在 Mix09上,微软已经正式宣布Windows Azure会支持 PHP, Java 和 Ruby 这些开源平台 。除了声明本身包含的内容,微软也在努力地提供各大开发环境的API,以求更多的开发者使用Azure服务。而在2011年11月微软宣布Windows 支持Node之后,微软也接着宣布了WindowsAzure与平台也完全支持Node。也预示着Azure会不断地向开源的方向前进。
8.支持 Hadoop
去年,微软联合HortonWork宣布他们在努力地让Hadoop接入Windows,这是一个很重要的消息,因为这代表这微软宁愿放弃本身有的大数据管理项目而接受Hadoop,也代表着微软接受别人的产品的能力的提高,对所有人来说都是一个很好的消息。
9. 微软成为了Linux kernel 排名前20的资助者
十年河东十年河西,十年前微软的CEO鲍尔默还把Linux称为毒瘤,去年微软就成为了Linux最大的20个资助方之一。微软的资助主要围绕着让微软的的操作系统虚拟技术 Hyper-V能够搭建Linux系统这一个目标。
10. ASP.NET MVC4.0, WebAPI 和Razor引擎的开源化
如果说到微软和开源有关最重要的新闻,以下的声明一定不能不提:
- ASP.NET MVC4.0, WebAPI 和Razor引擎会开源开发
- ASP.NET 开发小组会考虑开发者社区提交的修改建议
- ASP.NET 开发小组会公开地进行开发,将所有未来的更新代码更新到一个对外的服务器上。
小编语:
相信这些证据都足够证明微软正在朝着开源的道路上前进,这样的路线是能否能给Windows Phone带来足够的进步呢,有人说,Windows Phone的销量上不去是因为陷入了一个死循环,应用不多->销量上不去->没有足够用户->吸引不了开发者->应用不多。开源 化能否吸引足够多的开发者,成为打破这个死循环的关键点,大家拭目以待吧!