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