微軟闖進(jìn)開源社區(qū):是福音還是魔咒?
在很多人眼中,傳統(tǒng)中的微軟和開源根本就是死對頭,大有勢不兩立的架勢。但是,很多年過去了,微軟也進(jìn)入了開源社區(qū),并且為開源源代碼提供了大力的支持。這個時候,我們?nèi)绾慰创_源和微軟的關(guān)系呢。有人說是福音,也有人說是魔咒,微軟在給開源下套。本篇文章將就此話題展開一系列的討論。
從2007年7月微軟開源技術(shù)先驅(qū)比爾·希爾夫(Bill Hilf)宣布微軟將大踏步的邁向開源那一時刻開始,微軟就開始以各種方式從不同層面逐漸滲透入開源社區(qū)。首先是在當(dāng)年10月,微軟正式加入了Open Source Initiative(OSI)。在反復(fù)審視了微軟的公共許可(Ms-PL)和互惠許可之后(Ms-RL),開源組織還是向微軟張開了雙臂。由此,微軟邁開了進(jìn)入開源社區(qū)的第一步。
不管開源還對微軟還存在哪些猜測和討論,微軟能夠摒棄以往的觀念開放地看待開源社區(qū),并為此做出各種努力,這對于開源社區(qū)和微軟的長期發(fā)展都是雙贏的。正如,Red Hat的開源事務(wù)副主管兼OSI的主席Michael Tiemann所言:“微軟加入OSI,這不是結(jié)束的開始,僅僅是開始的結(jié)束而已。”
微軟走進(jìn)開源社區(qū)口水無憑,以往開源界討論對開源貢獻(xiàn)大小習(xí)慣用單位或個人對Linux內(nèi)核貢獻(xiàn)做一個排行榜。Linux 內(nèi)核大概兩至三個月會更新一次,每次都有顯著的新功能并提高性能。2012年Linux最新的發(fā)展報告顯示,Linux 3.2 版本的更新完成了1 萬多個補(bǔ)丁修改,有226 個企業(yè)及1316 個人名義開發(fā)貢獻(xiàn)的內(nèi)核。微軟此次對于Linux貢獻(xiàn)在排行榜上的排名擠進(jìn)前20名。
此次微軟提出了2174 項修改建議,主要的建議項目在服務(wù)器虛擬化應(yīng)用的Hyper-V 技術(shù),但是只有688 項被接受修改。不過,這仍然是微軟的首次上榜,也是微軟走進(jìn)開源社區(qū)最顯著的標(biāo)志。同時位列傍上贊助內(nèi)核開發(fā)的公司,第一名為Red Hat,其他知名企業(yè)如Novell、Intel、IBM、Google、Samsung、Nokia 及Oracle 也是一同參與提出修改與贊助的企業(yè)。
事實(shí)上,早在2009年7月22日,微軟一次向2萬行的開發(fā)源代碼的捐獻(xiàn)被認(rèn)為是向開源社區(qū)邁出的最堅持的一步。成立于2006年的微軟開源技術(shù)中心(OSTC)向開源軟件團(tuán)體捐獻(xiàn)了超過2萬行的設(shè)備驅(qū)動程序代碼,其中包括三個Linux設(shè)備的驅(qū)動程序。目前,這些代碼被提交給Linux內(nèi)核社區(qū),并被歸類到Linux目錄樹下,提供給Linux社區(qū)和用戶。
這些代碼支持任何Linux操作系統(tǒng)版本基于微軟Hyper-V Server 2008或者Windows Server 2008 R2 Hyper-V平臺進(jìn)行虛擬化。對Linux用戶來說,他們將可以在Hyper-V上運(yùn)行Linux,不再依賴于采用VMware或者Xen等虛擬化技術(shù)。
不過,對于微軟如此破天荒貼近開源社區(qū)的行為,有很多開源廠商和開源社區(qū)專家擔(dān)心,微軟其實(shí)是想借開源之名達(dá)到促進(jìn)其商業(yè)軟件營銷的目的。當(dāng)然,作為一個成功的企業(yè),商業(yè)利益是其追求的第一目標(biāo),這無可厚非。但是在什么樣的時代,通過什么樣手段是適合的,微軟做出了自己的選擇——擁抱開源。#p#
微軟開源不是說說而已
微軟不僅針對Linux內(nèi)核建設(shè)出人出力,還在自身開源技術(shù)的發(fā)展出錢成立子公司。2012年4月13日,微軟宣布組建一個名為“微軟開放技術(shù)公司”(Microsoft Open Technologies)的子公司,其主要戰(zhàn)略重點(diǎn)是開發(fā)開源軟件和開放標(biāo)準(zhǔn)。
對此,“微軟開放技術(shù)公司”總裁吉恩·保利(Jean Paoli)聲稱,微軟開放技術(shù)公司的目標(biāo)是推進(jìn)微軟向開放領(lǐng)域的投資,包括互操作性、開放標(biāo)準(zhǔn)和開源軟件。
而這個子公司的核心團(tuán)隊,據(jù)來自于一直與微軟內(nèi)部的許多業(yè)務(wù)部門在各種標(biāo)準(zhǔn)計劃方面密切合作的互操作性戰(zhàn)略團(tuán)隊。這個團(tuán)隊以前研究的問題包括萬維網(wǎng)聯(lián)盟(W3C)的HTML5、互聯(lián)網(wǎng)工程任務(wù)組(IETF)的HTTP 2.0、分布式管理任務(wù)組(DMTF)和結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織(OASIS)的云標(biāo)準(zhǔn)。此外還研究許多開源軟件環(huán)境,如Node.js、MongoDB 和Phonegap/Cordova。
對“微軟開放技術(shù)公司”這一消息,紅帽公司首先對微軟成立開放技術(shù)全資子公司以推動開源互通性、開放標(biāo)準(zhǔn)以及開源社區(qū)的舉動表示歡迎,但是,同時紅帽也對微軟提出開源公司發(fā)展歷程的艱辛,做成一個引人矚目并恪守承諾的開源和開源標(biāo)準(zhǔn)并不是一件容易的事情,這不是財團(tuán)一兩次宣布參加就能夠成功,而真正開放的公司,開源也會成為公司文化的一部分,這是一個根本性的轉(zhuǎn)變。另外,紅帽也開放性地指出,微軟能夠加入開源大家庭,對于用戶和開發(fā)者來說是最大的福音,讓他們擁有更多的選擇,這符合開源的精神。
此刻,我們說微軟似乎在一時間領(lǐng)略到了開源的真諦,異構(gòu)的混源環(huán)境已經(jīng)成為當(dāng)今企業(yè)客戶面臨的現(xiàn)實(shí)問題,而推進(jìn)互操作性將有效地解決客戶的需求、并成為推動企業(yè)業(yè)務(wù)成長的杠桿?! ?/p>
業(yè)界也有提出質(zhì)疑:回顧過去微軟與開源的對立,如今的微軟積極地與Linux互操作,又將會給市場和用戶及自己帶來何種影響呢?Burton集團(tuán)的分析師Chris Wolf當(dāng)時就提出: “微軟如此善意的奉獻(xiàn)開源代碼,但現(xiàn)在的問題是,到底有多大的善意?又會對Linux用戶有何種影響呢?”
其實(shí),微軟早2006就已經(jīng)成立開源技術(shù)中心(OSTC),帶著其在Linux、UNIX和開源技術(shù)方面的經(jīng)驗(yàn)和實(shí)力,與開源社區(qū)建立了良好的合作關(guān)系。同時,他們通過微軟互操作戰(zhàn)略,與很多的相關(guān)廠商合作,尤其是Linux廠商,建立廣泛的合作關(guān)系,促進(jìn)這些公司的獲取收益。更重要的影響是,隨著微軟互操作戰(zhàn)略的實(shí)施和不斷深化,微軟與開源已經(jīng)從之前單純的競爭日益變成競合,來共同滿足市場和用戶的需求。#p#
微軟開源化的10大證據(jù)
誰說微軟不愛開源?微軟從十多年前,就開始投入對開源的工作。如果,再用傳統(tǒng)思維來看待開源和微軟,那就顯得有些不夠與時俱進(jìn)了。一位曾經(jīng)在微軟工作了十年的業(yè)內(nèi)人士總結(jié)了十大證據(jù),證明微軟已經(jīng)在往開源的作為。
1.鼓勵開源的生態(tài)系統(tǒng)
Windows和.NET開發(fā)者社區(qū)里面充滿了開源的項目和提議,由Ninject,AutoFac,CastleWindsor和StructureMap等IoC/DI框架,到nUnit等測試工具,由RavenDB等NOSQL文檔數(shù)據(jù)庫,到Orchard和Umbracon那種強(qiáng)大的文件管理系統(tǒng),這些例子也只是.NET/Windows平臺里眾多開源項目的冰山一角而已。http://cio.zol.com.cn/296/2966806.html
2.減少無謂的反復(fù)“創(chuàng)新”
微軟一直堅持自己開發(fā)完成別人在開源世界已經(jīng)存在的技術(shù)的微軟版本,這點(diǎn)一直讓眾多開發(fā)者不爽。所以當(dāng)ASP.NETMVC3.0發(fā)布的時候還是讓開發(fā)者們很驚喜的,因?yàn)檫@個微軟第一次發(fā)布一個包括開源代碼的主要項目,而ASP.NET4.0也增加了jQueryMobile&JSON.NET等更多的開源功能。
3.和NuGet數(shù)據(jù)包管理器合作
數(shù)據(jù)包管理器對于開源生態(tài)系統(tǒng)來說非常重要,有了它開發(fā)者們才能輕松共享自己的代碼,而在2010年十月發(fā)布的NuGet能很好的彌補(bǔ)Windows/.NET平臺開源生態(tài)系統(tǒng)在這方面的不足,現(xiàn)在已經(jīng)容納了包括jQuery,Modernizr,JSON.NET,ELMAH,log4net,Ninject等6000多個各大.NET開發(fā)者們需要數(shù)據(jù)包資料,雖然6000這個數(shù)字對比其他開源平臺來說有點(diǎn)少,但是數(shù)據(jù)包的數(shù)量還在穩(wěn)定增長中,現(xiàn)在有的包也都非常有用,相信以后一定會變得更好的。
4.把Windows系統(tǒng)優(yōu)化成一個適合開源程序的平臺
現(xiàn)在很多熱門開源項目都是通過基于Linux的平臺進(jìn)行開發(fā)的,Windows想要運(yùn)行這些項目就需要通過Windows的虛擬機(jī)才可以,失分不方便,而微軟已經(jīng)在這方面做出了努力,2011年11月,微軟就宣布通過新版的LibUV可以在Windows系統(tǒng)上穩(wěn)定的運(yùn)行node,同時,微軟發(fā)布了IISNode,讓開發(fā)者可以在IIS構(gòu)建node。而在LibUV廣受歡迎之后,其他開源項目現(xiàn)在都在都在做Windows系統(tǒng)的本地化。
5.讓接口多元化、規(guī)范化
這也是微軟的開源社區(qū)已經(jīng)走向成熟的標(biāo)志,以去年十一月Antirez宣布微軟提供了Windows可以本地運(yùn)行Redis的端口這事為例,Antirez并沒有接受在Redis的核心代碼中加入微軟補(bǔ)丁的做法,而鼓勵微軟創(chuàng)建自己的Redis分支接口。而通過開源社區(qū)的努力,也成為了今年開源社區(qū)第一個正式完成發(fā)布的項目。
6.Windows支持Apache,PHP和Ruby
從2008年開始,微軟已經(jīng)開始了這方面的努力,而現(xiàn)在不但在Windows系統(tǒng)上可以構(gòu)建Apache網(wǎng)絡(luò)服務(wù)器,而且IIS也已經(jīng)可以搭載Wordpress,Drupal,Joomla等給予PHP技術(shù)的網(wǎng)頁和服務(wù)。
7.Azure支持眾多開源平臺
在Mix09上,微軟已經(jīng)正式宣布WindowsAzure會支持PHP,Java和Ruby這些開源平臺。除了聲明本身包含的內(nèi)容,微軟也在努力地提供各大開發(fā)環(huán)境的API,以求更多的開發(fā)者使用Azure服務(wù)。而在2011年11月微軟宣布Windows支持Node之后,微軟也接著宣布了WindowsAzure與平臺也完全支持Node。也預(yù)示著Azure會不斷地向開源的方向前進(jìn)。
8.支持Hadoop
去年,微軟聯(lián)合HortonWork宣布他們在努力地讓Hadoop接入Windows,這是一個很重要的消息,因?yàn)檫@代表這微軟寧愿放棄本身有的大數(shù)據(jù)管理項目而接受Hadoop,也代表著微軟接受別人的產(chǎn)品的能力的提高,對所有人來說都是一個很好的消息。
9.微軟成為了Linuxkernel排名前20的資助者
十年河?xùn)|十年河西,十年前微軟的CEO鮑爾默還把Linux稱為毒瘤,去年微軟就成為了Linux最大的20個資助方之一。微軟的資助主要圍繞著讓微軟的的操作系統(tǒng)虛擬技術(shù)Hyper-V能夠搭建Linux系統(tǒng)這一個目標(biāo)。
10.ASP.NETMVC4.0,WebAPI和Razor引擎的開源化
如果說到微軟和開源有關(guān)最重要的新聞,以下的聲明一定不能不提:
ASP.NETMVC4.0,WebAPI和Razor引擎會開源開發(fā),ASP.NET開發(fā)小組會考慮開發(fā)者社區(qū)提交的修改建議,ASP.NET開發(fā)小組會公開地進(jìn)行開發(fā),將所有未來的更新代碼更新到一個對外的服務(wù)器上。#p#
微軟開源背后的故事
對于開源,微軟在內(nèi)部也進(jìn)行過一場激烈的辯論。這場辯論或許是改變微軟面對開源未來很多年的策略。
經(jīng)過幾年的嘗試和投入,此時微軟有很多高層已經(jīng)意識到,自由軟件運(yùn)動的力量不可阻擋,并開始探索向開發(fā)者數(shù)量日益增長的開源軟件社區(qū)示好的方式。時任微軟開源戰(zhàn)略主管的薩姆·拉姆齊(Sam Ramji)每隔三個月都會與蓋茨以及微軟其他高管會面,展示由一組微軟小型工程師團(tuán)隊收集的不同開源技術(shù)。
2008年,就在比爾·蓋茨退休前的一周召開了一場會議,會議的主題是關(guān)于是否繼續(xù)開源。這次會議與以往不同。在公司首席法律智囊史密斯和古鐵雷茲的邀請下,拉姆齊和蓋茨、微軟首席軟件架構(gòu)師雷伊·奧茲(Ray Ozzie),以及其他一些高管坐在一起,討論微軟是否真的可以開始使用開源軟件。拉姆齊和奧茲,站在他們支持微軟應(yīng)當(dāng)擁抱開源技術(shù)的一邊,而古鐵雷茲也給出了能使這一提議成為現(xiàn)實(shí)的法律框架,但是,這些仍然沒有得到微軟一些高管的認(rèn)同。
偉大的人物就是適當(dāng)?shù)倪m合做出最恰當(dāng)?shù)倪x擇。比爾·蓋茨此時站出來堅決力挺開源。他的理由是,微軟必須對當(dāng)前的情況做出改變。
拉姆齊表示,如今的開源已經(jīng)變得非常重要,具有非常大的競爭優(yōu)勢,如果微軟的競爭對手都開始使用開源技術(shù)了,而微軟沒有這么做,后果可想而知。蓋茨實(shí)際已經(jīng)領(lǐng)悟到了這一點(diǎn)。
而在微軟內(nèi)容,也有一批一直堅持開源策略的領(lǐng)導(dǎo)者在為微軟走向開源做出自己的努力。薩姆·拉姆齊,以及微軟開源技術(shù)先驅(qū)比爾·希爾夫(Bill Hilf),當(dāng)然還有比爾·蓋茨。
圖比爾·希爾夫(Bill Hilf)(來源于網(wǎng)絡(luò))
微軟開源技術(shù)倡導(dǎo)者們都看到,在業(yè)界隨著越來越多的應(yīng)用從本地數(shù)據(jù)中心轉(zhuǎn)移至云計算系統(tǒng),而傳統(tǒng)軟件的經(jīng)營模式也正在發(fā)生著巨大的轉(zhuǎn)變。很多企業(yè)已經(jīng)適應(yīng)為自己需要的軟件服務(wù)付費(fèi),而不是購買整個軟件套件安裝在自己的服務(wù)器上。即將發(fā)布的Windows 8應(yīng)用商店也開始接受開源應(yīng)用軟件了。
同樣,通過在Windows Azure之上提供開源軟件,這是微軟一條的確可以賺錢的方法。Windows Azure負(fù)責(zé)人希爾夫表示:“憑借Azure,微軟可以通過提供計算能力、存儲空間和網(wǎng)絡(luò)帶寬賺錢。我們希望我們將能夠提供更多類型的應(yīng)用程序和系統(tǒng),所以 開源技術(shù)能夠幫助(業(yè)務(wù))迅速提升……我們在Azure上提供Node.js并非完全是利他的,這也是推動微軟業(yè)務(wù)發(fā)展的一種方式。”