GitHub如何征服了Google、微軟及一切
原文 http://36kr.com/p/533581.html
Chris DiBona擔心所有的東西會在一個地方終結。
那是10年前,當時開源軟件的想法尚未把技術世界翻個底朝天。開源的Linux操作系統已經在華爾街等地的大量機器上運行,證明了通過與世界免 費共享軟件代碼一樣可以創造巨大價值和金錢。但是開源社區的力量仍然相對較小。碼農啟動新的開源項目時,往往要到一個相當geeky且有時不大可靠的網站 上,它的名字叫做SourceForge。
DiBona ,Google的開源大牛擔心把全世界所有的開源軟件都放到一個籃子上的風險:“只有一個籃子,那個籃子就是SourceForge”。
于是,像許多公司一樣,Google建立了自己的網站,讓大家來托管開源項目,這個網站的名字叫做Google Code。Linux等開源軟件是Google建立在線帝國的基石,Google提供一個SourceForce替代的想法是,確保開源教不斷演進,讓它 最終遍布全網。
不過這中間殺出了個GitHub,而它的傳播速度更快。
今天,也就是誕生10年后,Google宣布關閉Googe Code。這個決定并不難預料。過去3年Google已經將大概1000個項目移出了網站。不過它的正式死亡值得注意。Google Code之死跟大環境脫不開關系,因為現在勢力龐大的開源界大部分都把自己的代碼托管到GitHub上。
有人認為Google建Google Code可能有另外一個更加自私的想法:控制或者致力于把盡可能多的數據弄到它自己的機器上(這家公司一貫如此)。但GitHub最終體現出了比上述更高 的價值。GitHub以比SourceForge或Google Code更徹底的方式實現了軟件開發的民主化。而這就是軟件開發世界最有價值的貨幣。
GitHub:開發者的貓薄荷
上線僅7年的GitHub現在據稱已有將近900萬注冊用戶。每個月還有2000萬的訪客瀏覽。根據web流量監控服務Alexa的數據,GitHub位列全球百大流行網站之中。
可別小看GitHub的上榜,因為榜單上的其他網站不是社交網站就是Google在各國的局點,再就是媒體機構,主要用戶為碼農的GitHub是個異類。
不過,具有諷刺意味的是,GitHub的成功之處正好在于開源世界回歸到一個集中容器上。但這次DiBona的感覺跟大多數其他碼農一樣,對于 把所有東西都放到一個地方感到相當欣慰。集中到一個地方可以讓大家更容易就所有事情進開展協作。由于GitHub的獨特設計,把所有雞蛋放到一個籃子的壓 力并沒有像SourceForge那么大。
因為雖然GitHub在邏輯上是一個地方,但在物理上卻無所不在。這一悖論正是開源軟件的美麗之處—也是它對技術的未來很重要的原因。
Git Ready
如何解釋這一悖論呢?這得扯到Git,這個“版本控制”軟件是GitHub的基礎。Git是Linux創始人Linus Torvalds于2005開發出來的。Git的好處是可以讓許多人同時折騰一套代碼而不會發生沖突。Software traps write input/output (I/O) and then forward changes to replication targets.
或者說,Git的作用是讓任何人很容易就可以復制一份Linux源代碼到自己的機器上,進行變更,并可以在任何時候把變更上傳到中心版本庫上。 而且每個人的變更都可以無縫地合并到一起。“這就是Git天才的地方,” DiBona說:“而GitHub的天才指出在于它理解這一點。”
GitHub創建了這樣一個網站,這個網站讓任何其他項目基本都能像Linux項目一樣運作,使得一般編碼者都能輕松掌握。“GitHub的確 非常流暢,”經歷過這場開源革命的Slashdot主編Rob “CmdrTaco” Malda說:“它擁有一個性感且現代的界面。”
現在相當大部分的人都把自己的開源項目托管在GitHub上,其中就包括Google、非死book、推ter甚至還包括開源界一度 討厭的微軟。最近幾個月,微軟開始把自己部分最重要的代碼開源了,它把這些代碼托管在GitHub而不是自己的開源網站CodePlex。
S. “Soma” Somasegar,這位掌管微軟大量工具的老兵說CodePlex像SourceForge及BitBucket等庫一樣仍將繼續運營。但是他把 GitHub視為像Microsoft.NET這樣的項目的唯一托管地。“開發者在哪里我們就去哪里,”他說:“而大多數的開源社區都在GitHub 上。”
公私兼顧
盡管如此,正是由于DiBona所謂的“Git的天才之處”,這個社區也能脫離GitHub運營。由于有了Git,編碼者在做特定項目時不僅能 夠將代碼搬到自己的機器上,也很容易就能夠“fork(分支)”出代碼,然后建立新的獨立項目。他們還可以將部分代碼公開并讓一部分代碼保持私有。
所以Git和GitHub并不僅僅適用于開源軟件。也能用在私有代碼上。從私有到公有的轉換十分方便。你可以孤軍奮戰,也可以發揮集體的力量。這就是開源的天才之處。
Google就是這么干的。它的新一代語言Go就在GitHub上托管,且是徹底公開的。有個名為Kartes的項目放在GitHub私有庫上 面,但是這個又為另一個名為Kubernetes的公開項目提供資源。Chrome瀏覽器則托管在Google內部的一個私有Git服務上。
微軟這里系統也是基本一樣的運作方式。該公司內部通過Visual Studio及Team Foundation Server這樣的工具來使用Git。通過將Visual Studio及Team Foundation Server這樣的工具提供給世界,微軟也在將Git推給其他的業務。Somasegar估計約有20%的微軟客戶或多或少在使用Git。
開發者是人
此外,軟件開發者社區已不再渺小。他們現在幾乎就是掌控世界的人。對于GitHub擠進了前100,Doll認為:“這告訴我一點,即軟件正變得跟書面文字一樣重要。”
Google工程師Igor Minar說,開發者社區變得如此之龐大,以至于GitHub現在不得不努力提供可以適應其最大型項目活動的工具。Minar是開源項目Angular的監管人,這個托管在GitHub上的項目有上萬開發者參與。
開發者無所不在。其中許多都在GitHub上。而在GitHub上,他們正在為上千萬的開源項目作出貢獻。Minar把這個網站看作是某種集 市,上面幾乎有任何你想要的代碼—且大都是免費的。“想找東西上GitHub就可以了”。總之,開源以來到來。而這意味著我們最終可以比以前迅捷得多的方 式建設塑造和改善我們的世界。
有關GitHub的文章還可以參見:
本文編譯自: wired.com