十年前,開源軟件思想尚未顛覆技術世界,開源社區(qū)依然相對小眾。但開源Linux操作系統(tǒng)已占據(jù)在華爾街和其他地方的眾多計算機上,證明了與大眾分享軟件源代碼可以創(chuàng)造巨大的價值和利潤。程序員們想創(chuàng)建新的開源項目時,通常只會將之建立在極客氣息濃厚的SourceForge網(wǎng)站,但這個網(wǎng)站有時并不靠得住。
克里斯·迪波納,這位長發(fā)飄飄的谷歌開源大師,很擔心全世界的開源軟件會毀在同一個籃子里?!爸挥幸粋€地方,那就是SourceForge?!彼f道。
克里斯·迪波納
因此,像很多其他公司一樣,谷歌創(chuàng)建了它自己的開源項目網(wǎng)站——谷歌代碼(Google Code)。谷歌在Linux和其他開源軟件的基礎上建立了自己的網(wǎng)上帝國,為開源世界提供了SourceForge之外的又一選擇,它試圖確保開源精神持續(xù)發(fā)展,在網(wǎng)上傳播這一信仰。
但是,GitHub出現(xiàn)了,以開源精神更快傳播者的身份。
上周三,谷歌宣布:十年之久的谷歌代碼即將關閉。這一決策并不讓人意外。過去三年多來,谷歌已經(jīng)將大約一千個項目從網(wǎng)站上移出。但它的官方葬禮還是值得注意的。谷歌代碼已是茍延殘喘,因為開源世界的主要力量如今都將代碼放在GitHub上。GitHub是舊金山一家古怪的初創(chuàng)公司設立的同名網(wǎng)站,谷歌代碼中撤出的上千個項目現(xiàn)在幾乎全部在GitHub安了家。
有人爭辯說谷歌開設谷歌代碼有其他更自私的原因:它想要掌控權(quán),或者說它想將盡可能多的數(shù)字資源放在自己的機器上(就像這家公司一直以來的做法)。但最終,GitHub脫穎而出,超越了SourceForge,超越了谷歌,超越了其他前輩,以一種更徹底的方式令軟件開發(fā)民主化大眾化,而這恰是軟件開發(fā)界最有價值的硬通貨。
GitHub:程序員的興奮劑
上線僅僅7年,GitHub就網(wǎng)羅了幾近9百萬注冊用戶,每個月,另有大約2千萬非注冊用戶訪問它。Alexa網(wǎng)站排名查詢結(jié)果中,GitHub位列全球百家最流行網(wǎng)站榜單之上。
GitHub的廣受歡迎是極不平凡的,因為它基本上就是個軟件開發(fā)人員專用的網(wǎng)站,而不是大眾找尋名人八卦、寵物視頻或社交閑聊的網(wǎng)站。
“看看最流行網(wǎng)站榜單,你能從上面找出一些社交網(wǎng)站,30個網(wǎng)站巨頭谷歌旗下的站點,一堆媒體門戶,以及GitHub?!?/p>
——布萊恩·道爾,GitHub戰(zhàn)略副總裁。
諷刺的是,GitHub的成功正是由于開源世界的大量自由代碼又重回到一個集中的資源庫。不過,這一次,與絕大多數(shù)其他程序員一樣,迪波納對于所有東西都放在一個地方感到很開心。擁有一個集中的地點可以使人們更加容易地在幾乎任何事情上通力合作。而由于GitHub獨特的設計,“雞蛋都放在同一個籃子里”這種事也不像SourceForge那樣令人焦慮。“GitHub意義重大,但也不是說你就卡在那兒了?!钡喜{說。
將所有代碼都集中存放的同時,GitHub也將之放在各處。這自相矛盾的悖論正展現(xiàn)了開源軟件之美,也闡述了為什么它對技術的未來如此重要。
Git準備好了
該怎樣解釋這個悖論呢?歸根結(jié)底,一切源于Git——GitHub用作基石的版本控制軟件。Linux之父李納斯·托沃茲(Linus Torvalds)為了更好地開發(fā)Linux而在2005年創(chuàng)建了Git。Git讓人們可以在同一時間對同一版本的Linux代碼進行操作,而又不相互沖突,發(fā)生越俎代庖事件。
簡言之,Git可以讓任何人毫無困難地下載一份Linux源代碼副本到他們自己的機器上,做出修改,然后,覺得滿意了就將修改的部分上傳回Linux的集中代碼庫,而且Git可以令每個人做出的修改都無縫融合起來?!斑@就是Git的精髓,而GitHub的精髓是它理解了Git的精髓。”
GitHub建立了一個使其他軟件項目也可以像Linux項目一樣運作的網(wǎng)站,普通程序員都能很容易地掌握網(wǎng)站的使用。經(jīng)歷了開源革命的技術網(wǎng)站Slashdot主編Rob “CmdrTaco” Malda說:“GitHub真的很優(yōu)雅,它是個性感摩登的接口?!?/p>
現(xiàn)在,幾乎所有人都將自己的開源代碼項目放在GitHub上,包括谷歌、臉譜、推特,甚至微軟這個開源軟件界曾經(jīng)非常討厭的家伙。最近幾個月,微軟開放了某些它最重要的源代碼,放在GitHub上而不是使用它自己的開源網(wǎng)站CodePlex。
S. “Soma” Somasegar,微軟開發(fā)工具事業(yè)部全球資深副總裁,為軟件開發(fā)者們照管著微軟龐大的開發(fā)工具集的人。他表示,CodePlex將繼續(xù)運營,其他資源庫,如SourceForge和BitBucket,也將繼續(xù)經(jīng)營下去?!拔覀兿氪_保它一直在那里,提供一種選擇?!钡渤姓J,GitHub是放置像Microsoft .NET這樣的項目的唯一選擇?!拔覀兿朐陂_發(fā)者的地盤上與他們交流。而開源社區(qū),很大程度上,在GitHub?!?/p>
私有遇見公開
而且,多虧了迪波納所謂的“Git的精髓”,開源社區(qū)同樣可以脫離GitHub行動。由于Git,程序員們不僅可以在從事某個特定項目時把代碼移動到自己的機器上,還能很容易地“分支”代碼,創(chuàng)建新的獨立的項目。他們可以保持部分代碼私密,而在GitHub上公開其他部分,或者干脆全部公開。
Git和GitHub,顯而易見,不僅僅是開源軟件專屬物,他們也能用于私有代碼。你可以隨意將私有代碼公開,也可以再私有回來;你可以單干,也可以借助大家的力量,這就是開源的精髓。
谷歌靈活運用了Git各種特性,它的劃時代編程語言Go語言就放置在GitHub上,而且是完全公開的。一個叫Kartes的項目位于GitHub的一個私有庫中,但后來被用于公開項目Kubernetes,Chrome瀏覽器則建在谷歌內(nèi)部的一個私有Git服務上。
在微軟,運作模式幾乎完全一樣。微軟內(nèi)部通過像Visual Studio和Team Foundation Server這樣的工具使用Git。但它也在GitHub上公開分享代碼。而且通過為全球用戶提供像Visual Studio和Team Foundation Server這樣的工具,微軟實際上也是將Git推向其他領域的一員。Somasegar估測大約有20%的微軟客戶現(xiàn)在正不同程度地使用Git。
開發(fā)者即人民
況且,軟件開發(fā)人員社區(qū)也不再微小。毫不夸張地說,他們就是驅(qū)動世界的人。道爾說,GitHub位列百佳,”這告訴了我,軟件已經(jīng)變得像文字一樣重要了。”
谷歌工程師,幫忙監(jiān)管開源Angular項目的Igor Minar稱,開發(fā)者社區(qū)已成長得太過龐大,以致GitHub如今疲于應付為大型項目提供合適的管理工具。Angular是存于GitHub上的一個大型項目,參與人員高達上萬人。
開發(fā)者遍布世界各地。他們中太多人上GitHub,為上千萬的開源項目做貢獻。Minar認為GitHub就像一個義賣集市,你可以在里面找到任何想要的代碼,而且大多是免費的?!叭绻阈枰裁礀|西,就去GitHub。你能在那兒找到想要的?!翱傊?,開源時代拉開大幕。而最終,這意味著我們可以比以前快得多地建設、塑造和改善我們的世界?!?/p>
聯(lián)系客服