在比爾·蓋茨退休前的一周召開了一場會議,會議的主題是關(guān)于開源軟件。
那是2008年夏天,多年以來開源社區(qū)將微軟公司視作頭號公敵。七年以前,微軟CEO史蒂夫·鮑爾默(Steve Ballmer)曾將Linux稱作“惡性腫瘤”。2007年夏天,微軟法律顧問布拉德·史密斯(Brad Smith)和授權(quán)許可主管霍拉西奧·古鐵雷茲(Horacio Gutierrez)告訴《財富》雜志,Linux侵犯了微軟的235項專利,并暗示將對任何使用Linux的大型企業(yè)收取授權(quán)費。
與此同時,微軟也逐漸意識到自由軟件運動的力量,并開始探索向開發(fā)者數(shù)量日益增長的開源軟件社區(qū)示好的方式。在兩年的時間中,薩姆·拉姆齊(Sam Ramji)擔(dān)任了微軟開源戰(zhàn)略主管。每隔三個月,他會與蓋茨以及微軟其他高管會面,展示由一組微軟小型工程師團(tuán)隊收集的不同開源技術(shù)。
然而這天下午的會議與以往不同。在公司首席法律智囊史密斯和古鐵雷茲的邀請下,拉姆齊和蓋茨、微軟首席軟件架構(gòu)師雷伊·奧茲(Ray Ozzie),以及其他一些高管坐在一起,討論微軟是否真的可以開始使用開源軟件。拉姆齊和奧茲,站在他們支持微軟應(yīng)當(dāng)擁抱開源技術(shù)的一邊,而古鐵雷茲也給出了能使這一提議成為現(xiàn)實的法律框架。不過微軟其他高管對此提出強(qiáng)烈質(zhì)疑。
這時,比爾·蓋茨站了起來。
他走到白板前,畫下一張系統(tǒng)如何運作的框架,其中包括版權(quán)、代碼貢獻(xiàn)和專利。蓋茨斬釘截鐵地表示,微軟必須做出改變。
拉姆齊此時已經(jīng)擔(dān)任微軟的首席開源戰(zhàn)略師超過3年半時間。對他來說,蓋茨站起來的那一刻就是微軟改變對自由軟件的態(tài)度。拉姆齊表示:“開源社區(qū),甚至整個科技行業(yè)都不相信蓋茨真正理解開源,包括開源為何變得非常重要,為何成為了競爭優(yōu)勢,以及為何當(dāng)競爭對手開始使用開源技術(shù)的同時時,微軟也必須這么做。蓋茨實際已經(jīng)領(lǐng)悟到,在那一刻,他教會我們所有人。”
從外界來看,似乎微軟已經(jīng)徹底改變了態(tài)度。微軟近期為Windows Azure中加入了兩項開源技術(shù)平臺,并和其他支持開源企業(yè)一樣,向開源項目貢獻(xiàn)代碼。這些都不是小型的開源項目,而是知名的大型開源項目,包括Node.js和Hadoop。這在以前是不可能的。
微軟的改變是由于這樣一群人,例如薩姆·拉姆齊,以及聘用他的比爾·希爾夫(Bill Hilf),當(dāng)然還有比爾·蓋茨。不過微軟這樣的轉(zhuǎn)變也反映了科技行業(yè)正在發(fā)生巨大的變化趨勢。隨著越來越多的應(yīng)用從本地數(shù)據(jù)中心轉(zhuǎn)移至云計算系統(tǒng),例如亞馬遜Amazon Web服務(wù)和微軟Windows Azure中,軟件經(jīng)濟(jì)也在發(fā)生著變化。以往,企業(yè)付費給微軟等公司的軟件,再將微軟的軟件安裝在自己的服務(wù)器上。現(xiàn)在,企業(yè)更多地愿意付費使用在線服務(wù)。通過在Windows Azure之上提供開源軟件,這是微軟一條的確可以賺錢的方法。
Windows Azure負(fù)責(zé)人希爾夫表示:“憑借Azure,我們通過提供計算能力、存儲空間和網(wǎng)絡(luò)帶寬賺錢。我們希望我們將能夠提供更多類型的應(yīng)用程序和系統(tǒng),所以開源技術(shù)能夠幫助(業(yè)務(wù))迅速提升……我們在Azure上提供Node.js并非完全是利他的,這也是推動微軟業(yè)務(wù)發(fā)展的一種方式。”
比爾·希爾夫(Bill Hilf),微軟開源技術(shù)先驅(qū) (照片來自:Microsoft)
希爾夫曾是一名Linux開發(fā)者。2000年代初,他曾是IBM的高級架構(gòu)師,利用Linux與其他開源軟件搭建過大型商業(yè)業(yè)務(wù)。他還曾負(fù)責(zé)過IBM的開源戰(zhàn)略。1990年代末,IBM曾經(jīng)在Linux業(yè)務(wù)領(lǐng)域投下重注,以對抗微軟。這時,在2004年,希爾夫接到了一通來自微軟的電話。
希爾夫回憶道:“微軟給我打來電話,對我說:‘我們不太了解開源軟件,我們需要了解的人。’我就像是成為微軟這顆星球上的第一名宇航員。”
希爾夫的主要任務(wù)(至少在最初階段)是教會微軟的人了解開源。他表示:“我花費了大量時間指導(dǎo)他人,例如開源過程是怎樣的:開源項目如何運作,互聯(lián)網(wǎng)上的社區(qū)軟件如何工作,授權(quán)如何進(jìn)行,人們是否真的為此無償工作等。”他同時也幫助建立了微軟內(nèi)部的開源實驗室,并與同事一起在安裝Windows軟件PC平臺上搭建Linux系統(tǒng)進(jìn)行批量測試。對于一家長期回避像Samba項目的公司,這是一個重要的許諾。Samba也是一個開源項目,能幫助Windows計算機(jī)與Linux文件服務(wù)器通信。
與此同時,希爾夫的實驗室開始探索新項目,推動現(xiàn)有開源工作的發(fā)展。在他微軟職業(yè)生涯結(jié)束前,希爾夫開始接觸到開源社區(qū)的一些成員。他表示:“我們希望了解微軟與開源社區(qū)合作的方式,不僅是了解開源社區(qū)如何運作,以及我們是否能實現(xiàn)互動,更希望尋找我們可以相互推動的領(lǐng)域。”
希爾夫表示,基于這樣的想法推動微軟參與了Node.js和Hadoop。去年,微軟不僅宣布將把Node.js和Hadoop等Linux技術(shù)移植到Windows中,還表示將直接向開源社區(qū)貢獻(xiàn)代碼。
希爾夫表示:“我們有一個專門的團(tuán)隊從事這一工作。我們已經(jīng)進(jìn)入實際工程開發(fā)工作中。我們將取得的成果置于開源協(xié)議下,并通過Github等組織發(fā)布這些成果。這在六年前是不可想象的。”
去年秋季,微軟甚至還為Samba貢獻(xiàn)了代碼。Samba的貢獻(xiàn)者之一克里斯托弗·赫特爾(Christopher Hertel)寫道:“時間退回到幾年前,微軟程序員提交代碼將會讓人感到不可思議。但爭端已基本結(jié)束,時代也發(fā)生了改變。”他指出:“大部分人并未注意到貢獻(xiàn)者的來源,若發(fā)生在四年前也是遙不可及的事情,但我們中的一些人將其視為里程碑,并希望表達(dá)我們對此的贊賞。”
微軟的最佳狀態(tài)是在它坐立不安的時候
微軟已經(jīng)走過了漫長的道路。2006年,當(dāng)希爾夫聘請拉姆齊負(fù)責(zé)微軟的開源項目時,微軟與自由軟件行業(yè)的關(guān)系十分緊張。一年后,史密斯和古鐵雷茲在接受《財富》雜志采訪時公開威脅Linux。當(dāng)拉姆齊接受微軟的聘請時,事后他回憶說,他曾對自己將扮演的角色感到懷疑和擔(dān)憂。
事物的發(fā)展總是有起有落,不過他與蓋茨的會議意味著巨大的改變終將發(fā)生。在這次會議之后不久,微軟收購了語義搜索創(chuàng)業(yè)企業(yè)Powerset,而該公司是最先基于Hadoop項目開發(fā)網(wǎng)絡(luò)服務(wù)的公司之一。在整合期間后,微軟允許Powerset的工程師繼續(xù)向Hadoop貢獻(xiàn)代碼,而該服務(wù)也在一段時間內(nèi)繼續(xù)基于Hadoop。不過Powerset最終放棄了Hadoop,轉(zhuǎn)而采用微軟的自有技術(shù),至少一名主要的開源代碼貢獻(xiàn)者離開了微軟。不過Powerset至少設(shè)定了正確的方向。
在此后的一年中,拉姆齊和他的團(tuán)隊開發(fā)了類似亞馬遜的云計算網(wǎng)絡(luò)服務(wù)原型產(chǎn)品,這完全基于開源軟件,例如Zend、OpenNebula、Eucalyptus、OpenScale和Hadoop等。拉姆齊回憶稱:“我們就像測試小分隊。我們會說:‘你認(rèn)為你是領(lǐng)先的?讓你看看通過開源兩周的時間,還有通過Linux天才能對你的項目做些什么。’”
拉姆齊表示,這一項目曾引起了微軟智囊團(tuán)的深深不安。微軟當(dāng)時已開始利用自有技術(shù)開發(fā)Windows Azure,代號Red Dog。對拉姆齊來說,這種“深深不安”是件好事。他認(rèn)為:“微軟的最佳狀態(tài)是在它坐立不安的時候。這正是微軟的精神,這是一家以危機(jī)為導(dǎo)向的公司。”
微軟正在變?yōu)楣雀?/p>
拉姆齊于2009年離開微軟,加入一家名為Apigee的初創(chuàng)企業(yè),抓住這一領(lǐng)域的發(fā)展機(jī)遇與開源運動早期類似:致力于將全球的網(wǎng)絡(luò)服務(wù)集成到應(yīng)用程序接口或說API。不過,他在雷德蒙德留下自己的烙印。
拉姆齊表示:“我認(rèn)為,我們建立的團(tuán)隊是我工作過的最優(yōu)秀團(tuán)隊。著實執(zhí)行一個信條是將外部的事物引入內(nèi)部。在這個世界中,我們無法繼續(xù)僅僅依靠自有技術(shù),那只能將我們變成沙文主義者——搖旗吶喊的狂熱微軟粉絲。”此后,該團(tuán)隊的成員隨后分散至微軟內(nèi)部的其他團(tuán)隊,并傳播了這樣的思想。
Windows Azure仍基于微軟自有技術(shù)軟件。不過令許多人感到驚訝的是,該服務(wù)向開發(fā)者提供了多種開源工具,幫助他們開發(fā)自己的應(yīng)用。這不僅包括Node.js和Hadoop,也包括Java和PHP等開源語言。微軟甚至表示,將允許開發(fā)者在Windows Azure之上運行Linux。
拉姆齊承認(rèn),微軟在一定程度上也在發(fā)生了改變,因為世界已經(jīng)發(fā)生了變化。他援引維克多·雨果(Victor Hugo)的名言:“當(dāng)一種思想的時代來臨時,世界上沒有比這更強(qiáng)大的力量。”他更通俗的語言形容到:“對于開源這塊巧克力來說,云計算就是花生醬。”
不過,作為長期以來的開源軟件的公敵,微軟仍然備受質(zhì)疑,即微軟是否真正改變了自己的做法。資深開源用戶、2001年微軟反壟斷案后的監(jiān)督者羅恩·施奈爾(Ron Schnell)表示:“就我個人而言,我認(rèn)為微軟在開源時代的篇章還未開始書寫。微軟還需要向開源運動做更多貢獻(xiàn),才能被視作開源運動的朋友。”
在采訪尾聲時,施奈爾表示,所有歸宗于金錢。他表示:“開源解決方案對于財務(wù)報表沒有太大好處。問題在于,在云計算獲得成功導(dǎo)致Windows等桌面操作系統(tǒng)必要性的降低情況下,微軟是否仍能獲得以往的高額利潤?”這是問題的一方面,但云計算的發(fā)展也使得企業(yè)通過開源軟件盈利更容易,顯然,微軟認(rèn)識到了這點。
多年以來,人們總是容易認(rèn)為谷歌是開源運動的朋友,而微軟則對自由軟件保持著距離。不過作為互聯(lián)網(wǎng)服務(wù),谷歌與微軟所處的位置有很大不同,微軟主要通過銷售軟件授權(quán)碼才取得了今天的地位。如今,微軟也正變成為一家互聯(lián)網(wǎng)公司,變得更像谷歌——不單是通過一種方式。
是的!微軟正在多起案例中向Android手機(jī)廠商收取授權(quán)費,而Android系統(tǒng)正基于Linux。這表明,微軟在軟件行業(yè)中處境仍舊復(fù)雜。盡管微軟已經(jīng)向互聯(lián)網(wǎng)實現(xiàn)戰(zhàn)略轉(zhuǎn)移,但仍是一家依賴傳統(tǒng)軟件業(yè)務(wù)的公司,并依然有心想采取措施保護(hù)傳統(tǒng)業(yè)務(wù)。不過,微軟與Android陣營之間的斗爭與以往不同。作為谷歌的一個項目,Android作為谷歌項目并非那么開源。
現(xiàn)實并不是一個非黑即白的二元世界,軟件世界同樣如此,并不是每個人都意識到這一點。但比爾蓋茨做到,而微軟更因此受益。