2008 年夏天,微软创始人比尔·盖茨距离计划中的退休时间只剩一周,他召集微软高管开了一场关于开源软件的会议。
出席会议的高管从开源的角度可以分成两个阵营,一个是以 Windows Azure 负责人比尔·希尔夫和首席开源战略师拉姆齐为代表的开源支持派,另一方就是以 CEO 鲍尔默为首的包括大多数微软高管的开源反对派。所有人都看着即将退休的比尔·盖茨。
他站起来,走到众人面前,在白板上画下了系统运作框架,其中包括版权、专利、代码贡献,最后指出:“微软必须做出改变。”
这是微软从上至下对开源改变态度的开始。
“愚蠢至极的开源”
熟悉开源历史的人应该不会忘记,盖茨曾在 33 年前用一封《致电脑爱好者的公开信》挑起了商业软件对开源软件前身自由软件的战争。
1975 年,年仅 21 岁的盖茨推出了第一代电脑基础软件 Basic 语言编译器,受到了著名的“家用计算机俱乐部”的热捧,但是其中付费购买正版磁盘者只有 10%,主要原因是俱乐部的规则是:会员可以从俱乐部带走软件磁盘,只要下次聚会带回两份拷贝分享给成员即可。
比尔·盖茨认为自己的利益受到了侵害,在公开信中细数自己的开发成本,大骂对方“the thing you do is theft”(所作所为就是盗窃),甚至指出自由软件的无偿使用模式愚蠢至极,高质量软件不可能被业余爱好者编写出来。
* 《致电脑爱好者的公开信》部分
而在之后自由软件与开源运动的发展过程中,微软也一直扮演着头号打压者的角色。
1998 年,黑客埃里克·雷蒙德披露了著名的“万圣节文件”。该文件由高级副总裁James Allchin 推动工程师 Vinod Valloppillil 所写,旨在为微软高层提供决策参考,这是一份微软内部的机密文件。该文件显示,微软一直将开源视为假想敌,认为开源会切实伤害微软利益。
除此之外,文件中还提出了对抗开源的具体方式,包括在公司内部引入开源模式,用高薪挖走开源界人才。
事实上,埃里克·雷蒙德还有另一个身份,就是开源运动领袖,他在前一年发表了革命纲领性书籍《大教堂与集市》,这本书一直被视为开源运动的《共产党宣言》。
跟盖茨持相同观点的还有他的好友鲍尔默,在 2000 年接任微软 CEO 后,鲍尔默在公开媒体上将开源操作系统 Linux 称之为“癌症”,执掌微软期间用各种手段打压 Linux。
开始带领微软走向开源的还是比尔·希尔夫。正如“万圣节文件”中所制定的战略,微软在 2004 年挖来了前 IBM 开源战略负责人比尔·希尔夫,在打给他的邀约电话中直接告诉他“我们不太了解开源软件,我们需要了解的人。”
比尔·希尔夫成了微软开源最早的布道者,他的主要工作就是指导微软的人学习开源,教会他们开源项目如何运作,社区软件如何运行,授权如何进行,并且帮助建立了微软开源实验室。
也就是这一年,微软发布了第一个开源项目 WiX 工具集,该项目包括了编译器、链接器、库工具和反编译器等,是微软以 OSS 认证的许可证发布的第一个项目,采用的许可证是 Common Public License。
不久之后,比尔·希尔夫为微软聘用到了拉姆齐,拉姆齐在微软期间主导搭建了微软开源实验室团队,后来出任全球开源软件及 Linux 团队项目主管,微软首席开源战略师。
与此同时,微软高层对开源的敌视仍然没有停止,CEO 鲍尔默在拉姆齐入职的 2006 年接受采访时声称,微软三大敌人分别是开源应用、谷歌、苹果,其中开源仍然排在最前面。2007 年,微软总法律顾问布拉德·史密斯和专利主管古铁雷兹仍然声称,Linux 侵犯微软 235 项专利,并表示要向所有使用 Linux 的企业收取费用。
从道义上来看,微软早期的做法也并没有缺失,在商言商,早期的主要盈利方式是靠售卖软件,自然要保护授权,后期微软做大,互联网局势也发生改变,微软对开源转变态度也符合当时的发展需求。
不过比尔·盖茨开局后,长期以开源为敌的微软公司具有很强的思维惯性,这让拉姆齐开始时的工作受到了不少质疑。
直到 2008 年,比尔·盖茨在自己退休前的会议上留下了关于“改变”的嘱托,这让微软关于开源的意识形态发生变化,从此一日千里。
会议后不久,微软收购了基于开源项目 Hadoop 开发的网络服务公司 Powerset,在收购整合之时,微软表示仍然允许其工程师群体向 Hadoop 开放源代码。
拉姆齐团队也开始开发基于开源软件Zend、OpenNebula、 Eucalyptus、OpenScale和 Hadoop 等的云计算网络服务原型产品。
微软确立了与开源公司合作的四个准则,即确保开放链接、促进数据的可移植性、加强对行业标准的支持,在客户和行业的开放合作方面投入更多。
同样是这一年,微软为 ADOdb 提交补丁,开始向 PHP 社区做出贡献。
2009 年,微软向自己的死敌 Linux 贡献了两万行以上的代码,在短时间内成为了 Linux 内核排名第一的贡献者。
这年拉姆齐从微软离职,先是进入创业公司 Apigee,之后又加入了谷歌。
但是,拉姆齐在微软搭建起来的带有开源精神的团队却保留了下来,之后这个团队里的成员逐渐分散到微软的各项业务当中,开源的理念自此逐渐渗透到微软的毛细血管当中。
2011 年,微软与 Joyent 公司和 Node.js 的作者 Ryan Dahl 一起将 Node.js 移植到了 Windows。这一举意味着,建立在 Linux 上的 Node.js 可以在微软的核心系统产品Windows 上运行了。
为了更好的拥抱开源,2012 年微软成立全资子公司微软开放技术公司,子公司总裁吉恩·保利给公司制定的目标就是“推动公司在开放性方面的投入,包括互操作性、开放标准和开源”。
* 鲍尔默(左)与微软现任 CEO 纳德拉
“微软爱Linux!”
2014 年 10 月,微软云业务发布会上纳德拉喊出的“微软爱Linux!”,与 13 年前鲍尔默那句“Linux 是颗毒瘤”显示出当下与昨日鲜明的对照。
如果要为微软近 20 年的发展历程划出一个分水岭,第三任 CEO 萨提亚·纳德拉的接棒毫无疑问是第一选项。
2014 年 2 月就任 CEO 之前,纳德拉为微软效力了 22 年,他风格温和,但行事果断,一上台就以“移动为先,云为先”为微软的未来定下基调,将其带入全新的变革,这其中就包括在开源上的一连串动作。
鲍尔默时期,市值徘徊在 3000 亿美金的微软,曾在移动时代不断试错,却只眼看着苹果凭借 iPhone 睥睨世界,谷歌借助基于 Linux 内核开发的安卓后来居上,亚马逊依靠 AWS 一骑绝尘。微软仍是那个停留在昨日的世界并不断败坏路人缘的巨头。
如果说,鲍尔默后期的微软对开源是欲迎还拒,纳德拉带领下的微软则直接向开源敞开了怀抱:在 GitHub 建立官方账号,开源 .NET 框架,收回开源子公司 MS Open Tech,在雷德蒙德总部成立开源项目办公室,无不昭示着微软对开源的决心。
2015 年,微软发布了开发者工具 Visual Studio Code,后者可运行在 Mac OS X、Windows 和 Linux 之上,如今已是开发者的首选 IDE,也是 GitHub 最受欢迎的项目之一。Linux 基金会执行董事 Jim Zemlin 表示,微软已成为 Linux 与开源的热情支持者,也是很多重要项目的积极参与者。
与其说微软对开源态度的积极转变是纳德拉的英明,不如说这更是巨头在时代驱动下的灵活转身。计算机早已走过自己的精英时代,传统软件的开发模式越来越无力支撑 AI 时代的复杂需求,一个有勇气面对现状的企业也很难忽视 GitHub 上 4000 万开发者的群力。而要在云业务中实现突破,开源几乎是唯一选择,因为云业务中有众多基于 Linux 系统的虚拟机。
2016 年,微软成为 GitHub 项目贡献第一的组织,陆续开源了 Chakra JavaScript 引擎、Visual Studio 的 MSBuild 编译引擎、Computational 网络工具套件、Xamarin、支持 Linux 和 Mac OS X 的 PowerShell,并推出了运行在 Linux 系统下的 SQL Server 数据库。
2018 年 10 月,加入开源专利联盟 OIN(Open Invention Network)的微软向前者开放了 6 万项专利。
2018 年 10 月 27 日,微软宣布收购 GitHub,75 亿美元的高价显示出巨头身体的诚实。此时的纳德拉用一句“all in 开源”又一次稳住了躁动的开发者。微软承诺,收购完成后,GitHub 仍将独立运营。而 Azure 与 GitHub 的集成,也被业界认为将是微软追赶 AWS、布局未来的利器。
在这之前的 2017 年 4 月,微软宣布关闭了开源软件托管平台 CodePlex。成立于 2006 年的 CodePlex 曾是微软抵御 GitHub 的重要根据地。
当初愤怒地打出《致电脑爱好者的公开信》的盖茨和曾经傲慢地高喊“开源软件是知识产权的毒瘤”的鲍尔默,或许都没有预料到,一个靠商用软件充实财务报表的巨头如今正成为一家开源软件公司。
2019 年,微软 Azure 云业务全年市场份额已经攀升至 16.9%,仅次于 AWS 的 32.3%。拥抱开源,云业务收入的强势翻越,也巩固着投资者的信心,万亿美元的市值坐实着微软的重回巅峰。曾被贴上封闭、霸权标签的巨头正以开放的姿态重新赢得全世界开发者的青睐。