十年前的開源軟件還沒有把科技圈搞的亂七八糟,而當時應用最廣泛的開源軟件要屬Linux系統了,甚至華爾街都把Linux部署在自己的服務器上。這說明了一點,利用全世界應用最廣泛的免費分享軟件一樣能夠創造價值,甚至可以賺錢。然而,開源社區依舊是個非常小的群體,那時如果某個程序員或極客想啟動一項全新的開源項目,通常會選擇一個不算穩定的網站——SourceForge。
Chris DiBona當時在Google負責開源項目,也是一名開源大師,他非常擔心目前的開源軟件行業,因為他覺得不該“把所有雞蛋都放進一個籃子里”。
“我們只有一個‘籃子’,SourceForge。”
因此,和許多公司一樣,Google也建立了自己的開源平臺Google Code,幫助用戶在上面自建開源項目。Google正是依靠Linux和其他開源軟件,才成為了一家互聯網巨頭,而除了SourceFore,Google Code也成了程序員的另一個選擇,確保開源可以繼續發展,并且在互聯網圈子里繼續傳播這種理念。
但之后,位于舊金山的GitHub橫空出世,讓開源理念傳播的更快。
終于,在Google Code推出十年之后,Google宣布將關閉這一平臺。當然,人們對此并不感到意外,因為在過去的三年時間里,Google已經從這個平臺移出了約1000個開源項目。Google Code退出歷史舞臺并不會造成太大影響,因為絕大多數開源項目都已經把自己的源代碼放在GitHub上,其中就包括從Google Code上移出的近千個項目中的一部分。
有人認為,Google之所以推出Google Code,是出于“自私”,因為他們希望掌控更多,盡可能在自己的平臺上保存開源代碼(他們也習慣這么干了)。但最終,GitHub還是甩開了Google,因為他們能為程序員提供更多價值,相比于SourceForge、Google Code等開源平臺,GitHub軟件開發民主化更徹底,這恰恰是軟件開發圈子里開發人員最看重的一筆“財富”。
屬于程序員的GitHub
GitHub目前已經成立七年了,擁有900萬注冊用戶量,每月非注冊用戶訪問量大約為2000萬。根據網站流量監測服務商Alexa的數據顯示,GitHub是全球最受歡迎的前100家網站之一。
GitHub上面沒有名人八卦新聞,也沒有貓咪視頻和社交聊天,而是程序員經常使用的一個專業網站。GitHub戰略副總裁Brian Doll說道:
“全球排名前100名的網站,很大一部分是媒體網站,還有些是社交網站,另外有三十家是和Google相關的網站,當然還有我們GitHub。”
諷刺的是,GitHub的成功意味著開源世界又重新回到了“一個中央儲存庫放置所有代碼”的時代。但這一次,和其他大多數程序員一樣,DiBona卻對GitHub采用這種方式贊賞有加,因為將所有開源代碼保存在一個地方,更有助于用戶便捷協作。另外和SourceForge不同,GitHub獨特的協作處理方式,也讓“所有雞蛋放在一個籃子里”的風險降到了最低。GitHub非常重要,但是又不會局限在上面。
因此,即便所有的代碼都被放置在一處,GitHub依舊能“無處不在”,有時悖論可以讓人們真正看到開源軟件之美,也能讓人們感受到開源對未來技術的重要性。
Git
雖然大家都知道把雞蛋放在一個籃子里風險很高,但GitHub卻用這種方式創造了開源軟件奇跡,那如何解釋這種悖論呢?答案就是Git。Git是GitHub開發的一套“版本控制”軟件,創造這套軟件的正是Linux之父Linus Torvalds。實際上,當Linus在2005年開發出這套軟件的時候,他只是希望能找到一個更好的方法去構建Linux。有了Git版本控制軟件,人們可以同時編輯相同的Linux代碼,而不用擔心影響到其他人。
簡單的說,Git允許任何人將Linux源代碼下載到自己的電腦上進行修改,之后可以隨時將自己所做的改動上傳到Linux中央存儲庫內。Git可以將每個人的改動無縫整合在一起。這就是Git軟件的天才之處,GitHub深諳此道。
GitHub創建了一個網站,讓每一個其他項目都能像Linux項目那樣,實現同步無縫編輯,程序員迅速掌握了這種代碼編輯方式。Rob "CmdrTaco" Malda是科技網站Slashdot總編輯,他評價GitHub這種開源革命:
“GitHub運行非常流暢,操作界面也很性感、現代。”
如今,絕大多數軟件公司都會將自己的開源項目部署在GitHub上,其中就包括Google,Facebook,Twitter,甚至連過去厭惡開源軟件的微軟也不例外。最近幾個月,當微軟將其最重要的源代碼實施開源時,他們選擇了GitHub,而不是自己旗下的開源網站CodePlex。
S. "Soma" Somaseger負責為微軟的軟件開發人員采集工具,這位微軟資深員工表示CodePlex將會繼續運營,Sourceforge和BitBucket這些源代碼存儲庫也不會很快消失。
“我們希望這些開源平臺能夠繼續存在,至少可以作為一種其他選擇。”
但是當微軟選擇開源Microsoft.NET項目時,他還是選擇了GitHub。
“我們希望滿足開發人員的需要,不得不說,GitHub是目前最大的開源社區。”
當“私有”遇見“公開”
實際上,Git的厲害之處在于它能讓開源社區不局限在GitHub上,程序員不僅可以將某個特別項目的源代碼下載到本地電腦上面,也能將代碼分開,建立新的獨立項目,選擇哪些可以公開,哪些為私有。
或許你已經發現了,其實Git和GitHub并不僅僅為了開源軟件而存在,他們也可以成為一個“私有”代碼平臺。在GitHub上,用戶可以在“私有”和“公開”模式下輕松切換。程序員既能在上面“干私活兒”,也能和其他人協作處理項目,這正是開源的魅力所在。
Google就在按上述套路出招,“Go”是他們新一代的編程語言,它在GitHub開源平臺上是完全公開的。另外,一個名為Kartes的項目在GitHub上則是“私有”狀態,但它之后又支持了一個“公開”項目KUbernetes。而我們熟知的Chrome瀏覽器則是一個Google的“私有”Git服務。
微軟應用GitHub的方式與Google也很相似。在微軟內部,他們使用Git軟件來管理其Visual Studio和Team Foundation Server工具。當然,微軟也在GitHub上公開分享代碼,向全世界提供軟件工具。微軟甚至向其他公司推薦Git版本控制軟件,現在微軟20%的客戶或多或少都在使用Git軟件。
程序員也是人
更重要的是,程序員社區規模已經變得越來越大。我們知道,科技世界里最重要的就是這幫人,隨著GitHub躋身全球網站前一百強,表明軟件正在變得越來越重要。
Igor Minar是Google工程師,他負責監控Angular開源項目,該項目部署在GitHub上,并且有數萬名程序員參與。他透露,為了配合日益壯大的程序員社區規模,GitHub正在嘗試提供更好的工具以支持較大規模的開源項目。
程序員無處不在,很多人都在GitHub上為數萬個開源項目做貢獻。Minar把GitHub開源平臺形容是一個“義賣市場”,可以提供程序員所需的源代碼,而且是免費的!
“如果你需要一切代碼,上GitHub就可以了,在上面肯定能找到你所需要的。”
開源時代已經到來,最終,開源將幫助我們以更快的速度去構建、改善我們的世界。