GitHub時代:為什么我們都在開源
Mikeal Rogers是Getable的CTO以及NodeConf的負(fù)責(zé)人,日前,他撰文稱,我們正在進(jìn)入GitHub時代,新一代的人們正在塑造一個全新的開源文化。
以下為文章全文:
GitHub的本意是旨在成為一種開放的軟件協(xié)作平臺,但它目前已成為一個巨大的綜合性的平臺,其作用遠(yuǎn)遠(yuǎn)超過單純地開源代碼。它現(xiàn)在在藝術(shù)家、建筑商、業(yè)主等許多領(lǐng)域使用。
芝加哥市最近宣布:“當(dāng)建立新的自行車道時,當(dāng)?shù)缆氛谑┕r,當(dāng)興建新的建筑時,任何人都可以更改數(shù)據(jù)。”人們在GitHub上管理家庭裝修項目。去年,甚至有人在GitHub上公開了德國的所有法律。當(dāng)然,GitHub仍然主要被程序員和開發(fā)人員所使用。
隨著曾經(jīng)的用戶轉(zhuǎn)變?yōu)樯a(chǎn)者,他們正在重新塑造開源的文化。
不會集中革命
當(dāng)大多數(shù)人聽到“開源”,他們認(rèn)為它是民主的、分布式的、平等的:每個人建設(shè)的東西放在一起,供其他人使用。
但是,實際上并沒有這樣。大多數(shù)開源軟件已經(jīng)被專業(yè)開發(fā)人員創(chuàng)建和維護(hù),他們與其他很像他們的開發(fā)人員互動。
在GitHub之前,我花了很多時間思考和討論管理開源項目的最佳方式,因為協(xié)調(diào)一個開源項目的成本是很重要的。事實上,當(dāng)一個項目做的很好,并且增長成為一個足夠大的社區(qū)時,項目比分裂成小項目成長更有意義。但一個軟件項目越大和越復(fù)雜,越難以做出貢獻(xiàn)。所以,各種各樣的成員的任務(wù)都是管理和生產(chǎn)項目,這往往導(dǎo)致一個項目之間生產(chǎn)和消費的裂痕。
GitHub通過更分散的開源解決這個問題。
使用GitHub的工作流程是非常個人的。開發(fā)人員和設(shè)計人員直接對他們所開發(fā)的內(nèi)容負(fù)責(zé),只要他們已經(jīng)準(zhǔn)備好了就可以隨時發(fā)布。
這個工作流程很有用:它鼓勵個人解決問題。這也給所有用戶提供了一個新的開源文化的認(rèn)同;GitHub實際上是互聯(lián)網(wǎng)上對等生產(chǎn)的頭號身份供應(yīng)商。
我參與開源項目已超過10年,但不同的是,我不是這些項目的“會員”——我只是一個“用戶”,一個貢獻(xiàn)很小的用戶。我和項目維護(hù)者之間僅在我使用的各種小項目上,每周發(fā)生有限的幾次交流。
甚至更多的時候,它發(fā)生為另一種情況:我從未看過有人給我已經(jīng)發(fā)布的小項目發(fā)送任何代碼。
民主的權(quán)利下放
GitHub的第一個版本做了一件很好的事:他們使你的代碼更容易被發(fā)布。這對于許多重大項目來說足夠了,包括Ruby on Rails,幾乎可以立即移動到GitHub上。
但接下來發(fā)生的事情更有趣:人們開始在GitHub上發(fā)布一切。推送代碼變得幾乎成為了例行程序,就像發(fā)微博。通過降低進(jìn)入壁壘,使其更容易協(xié)調(diào)和促進(jìn)開源,GitHub對普通用戶擴(kuò)大了對等生產(chǎn)。
今天,一個巨大前景是,簡單易懂的軟件都可以被過去沒有必要的深度技術(shù)知識參與大型開源項目階層的人所訪問。
這種生產(chǎn)者、貢獻(xiàn)者、消費者之間的模糊關(guān)系自然值更小、項目更容易理解。例如,在2012年9月,GitHub上推動“變更集合”活躍用戶中,有半數(shù)的人只推送不到5個變更集合,有22%(約44000人)每月只推送一個單一的變更。
這個業(yè)余化的開源軟件有一些明顯的好處。
使事情變得更容易使用
開源軟件的一個長期問題是完美兼容。糟糕的文檔、網(wǎng)站設(shè)計和可用性一般來說一直表現(xiàn)不佳,尤其是與許多專有同行相比。
但現(xiàn)在,隨著貢獻(xiàn)門檻的降低,非技術(shù)用戶看到這些領(lǐng)域是容易提高他們依賴軟件的地方。(這意味著神秘的錯誤消息這樣的小事件得到更多的人性化解決,并且微小的一行CSS的變化,就可讓網(wǎng)站正確的呈現(xiàn)在古老的瀏覽器和手機(jī)上)。
在新的開源時代,人們希望使用技術(shù)而不必成為這方面的一個專家。易用性比以往更受重視。
防止過渡設(shè)計
工程師喜歡尋找更多的方法來解決問題,以及更聰明的解決方案。當(dāng)這些解決方案的消費者與工程師志同道合時,這也是挺好的,他們很高興用巧妙的方法來解決老問題。
但業(yè)余愛好者不一樣,他們對于解決方案的看法是:一旦一個問題解決了,他們將很少回頭重新審視它。并且因為業(yè)余愛好者只能構(gòu)建最理解的解決方案,它迫使開發(fā)人員創(chuàng)建簡單的解決方案,使困難的問題很容易理解。
支持更廣泛的生態(tài)系統(tǒng)
在Node.js,我積極參與,定義了足夠的簡單模式,人們可以編寫?yīng)毩⒌男觳㈦S意進(jìn)行推送。每個在生態(tài)系統(tǒng)中貢獻(xiàn)的人都可以使用這個值,不用任何協(xié)調(diào)。這是完全相反的大型垂直堆棧,其有著大量的工具和功能(如像ember, Dojo, and YUI那樣的集成插件系統(tǒng)),這是在專有的環(huán)境中取得成功所需要的。
但在開放的環(huán)境中,如GitHub上的Node.js,我們看到更小的API尺寸,可以輕松利用生態(tài)系統(tǒng)中值的其余部分,而不用協(xié)調(diào)(例如回調(diào)在jQuery上的API或節(jié)點的標(biāo)準(zhǔn)回調(diào)模式)。開發(fā)人員與庫之間的協(xié)調(diào)越少,我們可以創(chuàng)造的價值越大。
GitHub已經(jīng)被新一代的人們授權(quán)進(jìn)行協(xié)作、創(chuàng)造和生產(chǎn)。很多開發(fā)人員將對傳統(tǒng)的文化規(guī)范的丟失表示哀嘆,但未來已經(jīng)掌握在新一代手中,并且已經(jīng)在進(jìn)行改變。
這不僅僅是一個工具:我們正在見證一個新文化的誕生。



























