先說一件不算太久以前的事兒。
兩個多月前,蘋果全球開發者大會在美國舊金山開幕,當庫克在會上宣布Swift編程語言將開源的時候,會場上響起了持續2分多鐘的歡呼聲。蘋果終于變得Open了。
伴隨著Linux第一個版本的問世,“開源”一詞被定義,并憑借頑強的生命力迅速發展壯大,現在,開源產品已經無處不在。你訪問的網站,大部分是使用Apache的Web服務器,大部分是Linux或BSD的操作系統,大部分都是使用MySQL的數據庫,甚至你現在用的Firefox瀏覽器也是開源的,不僅是蘋果,被認為最大“反派”的微軟,在納德拉上任之后也變的更加的開放了。
開源的背后
不管是在開發領域還是產品領域,開源已經成為一個趨勢,github也已是標配。現在,問題來了,為什么開源會有如此的魔力,或者說是誰在做著“開源”的夢?要找這個問題的答案,我們就先要知道誰是開源背后的推動力量。
讓我們先來看一下OpenStack身上發生的事兒。就像提到大數據必然會提到Hadoop一樣,在云計算領域提到開源就不得不說OpenStack ,OpenStack 是開源的云計算(IaaS,基礎設施及服務)管理平臺,最初由NASA和OpenStack聯合發起。幾天前,OpenStack 創始會員也是主要貢獻者之一的Mirantis,獲得了 1 億美元的 C 輪融資。此次融資最大的亮點在于 Intel Capital 領投,高盛、August Capital、Insight Venture Partners 等跟投。而思科、IBM、EMC、HP、Oracle等創痛IT則巨頭紛紛通過收購相關初創企業和加強研發來獲取市場份額。
眾多廠商和創業團隊不斷生產開源軟件、做著開源的生意、開放自己的代碼,他們既是開源的推動者也希望成為距離利益分配最近的受益者。越來越多的選手已經不滿足自身能力的增長而是寄希望于對于整個賽道的控制,以谷歌為例:
一直以來,Google都在極力推廣和倡導開源,并發布了一系列開源項目。這是因為 Google從開源軟件中嘗到了甜頭,如果沒有開源軟件,Google也難以達到今日的成功。Android和Chrome只是單個的開源項目,但圍繞它們構建了龐大的生態圈,基于它們(平臺)上所開發的插件和應用數量驚人。Android在2007年以開源形式發布,隨后其陣營呈現出了爆炸式增長。如今已經成為份額第一的移動操作系統。
對于長期致力于瘋狂賺錢的Google來說,投身于開源社區的主要訴求并不是索取回報,而在于社區建設本身,或者說憑借自身對社區的控制能力而將暫時無法使用的破壞性技術先收入囊中。這樣,“創新者的窘境”就予以解決了。 Google Android開源項目經理Christopher Katsaros表示。例如Google’s Summer of Code,就是Google主辦,旨在激勵大學生為開源項目做出貢獻的項目,目前已經為開源社區貢獻了5千萬行代碼。
與Google不同,更多的團隊和創業者則希望憑借開源減少在開發上的時間成本。由于開源軟件具有開放、共享、自由等特性,可以解決這些企業對于OpenStack、Hadoop、Docker等架構不熟悉而導致"并不清楚怎么做"問題,可以大大擴展企業所采取的技術手段的邊界。當然,這并不是說這些企業就只是索取者而不是貢獻者,比如Square就在代碼的貢獻數量上與Google不相上下,在Square CTO Bob Lee看來“正是因為Square公司規模小,因此將代碼開源更具積極意義。與其將內部有限的開發資源都投入到通用問題的處理上,不如將其貢獻給開源社區并與外部海量的開發者協作(重構和持續發展這些項目)。這種做法同樣適用于和Square類似的公司,集中精力完善業務上的特性產品,而減少耗費在通用基礎架構上的時間。”
作為國內首個開放移動社區引擎OpenCom主要是是通過移動端的插件模式,近期推出的開源計劃,就是希望將目前公司研發的一系列產品予以開放出去,進而讓更多的人參與到APP插件的開發中。將原本的移動社區,通過開源擴展為“社區+”,同時在服務端依據云計算的支撐予以實現。
國內另一家云端數據備份公司多備份,也正在考慮將其大部分代碼予以開源,創始人陳元強的想法很簡單,希望借助開源可以讓更多的技術人員加入進來,進而解決在實際開發過程的人數不足的問題,當然,對于加入進來的人來說,也會提供一些相應的物質獎勵進而保證開源的活躍度。
開源的國產化
在今年年初的時候,某媒體在一篇名為《回顧那些曾經熱門的國產開源軟件》的文章中,一次性就列舉了100個國產開源軟件,但請注意“曾經”二字。這從一個側面反應了目前國內開源所面臨的問題。
首先,雖然國內的開源并不是停滯不前的,一些世界級別的大項目,比如Hyper、RebornDB等也在不斷涌現,,只是這個過程較為漫長,并且由于國內整體IT產業的發展相比于其他發達國家還有比較大的差距,更多的時候國內的企業還只是開源的使用者和借鑒者,還沒有到發明創造的階段。對標國外開源產品,國內一些開源產品無論從軟件訪問、收藏、交流分享還是項目本身的更新頻率等方面都還存在差距。
其次,開源和產品一樣,會有具體針對的人群和具體的領域。開源中國主編郭蕾舉了一個例子,在開源中國上有個比較火的開源項目JFinal,項目人氣很高,從社區的角度來說也比較喜歡,但很難商業化或者國際化,原因就是這個項目設計的內容太基礎,并且沒什么難度,大家都是為了方便自己的具體的業務而來,來之即走。從實際情況來看,一個好的開源項目是需要演變為一門好的生意之后才會形成一個好的生態,例如我們前面講到的例如OpenStack和VMware于推出的業界第一個開源PaaS云平臺Cloud Foundry。
最后,雖然開源有著如此多的好處,但開源與創新的悖論,仍然不容忽視。開源的存在,可以使得不管是Google還是眾多的創業團隊根本不需要重新發明輪子或購買昂貴的產品,而是可以使用最少的人力、物力就能很快構建出一個高性能的產品或系統來。然而當我們過分依賴于“拿來主義”的時候,創新也會變得異常的艱難