GitHub一代:我們都是開源控
GitHub 塑造了怎樣的新式開源文化?看看十幾年的開源控、Getable 的 CTO Mikeal Rogers 是怎么說(shuō)的吧:
GitHub 本來(lái)想做一個(gè)開源軟件協(xié)作平臺(tái),結(jié)果做著做著就成了一個(gè)兼容并包、不僅僅是照顧程序員的平臺(tái)?,F(xiàn)在,這個(gè)平臺(tái)也成了各類藝術(shù)家、建筑生產(chǎn)商、各大公司、甚至各大城市使用的平臺(tái)。 |
例如,芝加哥市前陣子就宣布了一項(xiàng)公告:“假如本市出現(xiàn)新的自行車道、公路或建筑物,那么人人都可修改 GitHub 上的數(shù)據(jù)。”另外,有些人則將家裝項(xiàng)目放到了 GitHub 上,有家律師事務(wù)所也在前幾天宣布,他們會(huì)將早期創(chuàng)業(yè)公司的融資相關(guān)法律文件全放到上面——而在去年,另有一個(gè)神人甚至將整個(gè)德國(guó)的法律全搬到了 GitHub 上。當(dāng)然了,GitHub 現(xiàn)在依然是那些用 Node.js 做 AR 無(wú)人機(jī)、或者是用 jQuery 做網(wǎng)站的程序員光顧的地方。
去中心化的一場(chǎng)革命
大部分人聽到開源的***反應(yīng)是“民主、分散、和平等”,想到所有人一起做東西,做出來(lái)給所有人用。
但實(shí)際情況并非如此。大部分的開源軟件都是由那些享有一定特權(quán)的一小撮人創(chuàng)建并維護(hù)的——即專業(yè)的開發(fā)人員,而這些人又只會(huì)跟同個(gè)圈子、同個(gè)水平的一幫人互動(dòng)(后者與前者盡管很像,但又足夠不同到可持相異觀點(diǎn)供雙方爭(zhēng)論)。
在 GitHub 出來(lái)以前,我會(huì)花很多時(shí)間去思考、討論如何***地管理開源項(xiàng)目,因?yàn)檫@類項(xiàng)目的協(xié)同成本太高了。這個(gè)成本高到什么程度呢?當(dāng)一個(gè)項(xiàng)目做得不錯(cuò),又發(fā)展成一個(gè)規(guī)模不小的社區(qū)時(shí),我們發(fā)現(xiàn),***的辦法是讓項(xiàng)目繼續(xù)龐大臃腫下去,而不是拆分成規(guī)模更小的項(xiàng)目。但這里面就會(huì)有這樣一個(gè)問(wèn)題,項(xiàng)目變得越大越復(fù)雜,個(gè)體就越難對(duì)其作出貢獻(xiàn)。所以就不得不有特定的一群會(huì)員,或者說(shuō)所謂的“委員會(huì)成員”,被任命專門管理和生產(chǎn)項(xiàng)目,這也經(jīng)常導(dǎo)致項(xiàng)目實(shí)際的消費(fèi)人群和項(xiàng)目創(chuàng)作者之間的信息裂縫和信息斷層。
但 GitHub 的“去中心化”開源模式則讓這種裂縫漸漸彌合,讓開源不再聚焦“項(xiàng)目”本身,而是越發(fā)彰顯個(gè)體特色。此話怎講?
GitHub 上的整個(gè)工作流程設(shè)計(jì)相當(dāng)個(gè)人化。每個(gè) GitHub 用戶都有一個(gè)自己的賬號(hào),而他們發(fā)布的所有資料都會(huì)隸屬于這個(gè)層級(jí)以下。假如某些人需要對(duì)某個(gè)項(xiàng)目做出修復(fù),他們只要“fork”(將項(xiàng)目分叉),即在自己的名下拷貝一個(gè)原項(xiàng)目的副本,進(jìn)行相應(yīng)的加工即可。
這種工作流程是非常強(qiáng)大的:因?yàn)樗膭?lì)了個(gè)體用戶去對(duì)一個(gè)他人已創(chuàng)建的項(xiàng)目做修修補(bǔ)補(bǔ),而他們對(duì)該項(xiàng)目的所有權(quán)和控制權(quán)絲毫不亞于一個(gè)由自己***創(chuàng)建的項(xiàng)目。在這種新式的開源文化下,所有用戶都能擁有自己的身份和定位。而 GitHub 實(shí)際上也已經(jīng)成為互聯(lián)網(wǎng)上協(xié)作式內(nèi)容生產(chǎn)(peer-based production)***的身份提供商,不僅僅是在代碼方面。
我自己就做了十多年的開源項(xiàng)目貢獻(xiàn)者,但現(xiàn)在的開源文化跟當(dāng)年的一個(gè)很大不同是——我不再是某個(gè)項(xiàng)目的“會(huì)員”——而僅僅是某個(gè)項(xiàng)目的使用者。使用者的一個(gè)很大特點(diǎn)就是,人人都可為項(xiàng)目貢獻(xiàn)“一點(diǎn)點(diǎn)”自己的力量。在我消費(fèi)、使用的各種各樣的小項(xiàng)目中,我就會(huì)跟項(xiàng)目維護(hù)者有一些更小層面的互動(dòng),而且保持一周幾次。
但更大的一種趨勢(shì)其實(shí)來(lái)自另一個(gè)方向:作為我自己的項(xiàng)目的發(fā)起者,現(xiàn)在我會(huì)收到有很多聞所未聞的人發(fā)來(lái)的關(guān)于這些項(xiàng)目的小代碼。
#p#
民主升起在“去中心化”
GitHub 的***版在一件事情上做得很好:他們讓個(gè)體發(fā)布代碼——而非雪藏代碼——變得比過(guò)去簡(jiǎn)單很多。這也使得很多很有影響力的項(xiàng)目,比如說(shuō) Ruby on Rails 的項(xiàng)目,可以很快地遷移到 GitHub 上來(lái)。
但接下來(lái)發(fā)生的事情實(shí)際更有趣:人們開始在 GitHub 上發(fā)布除代碼以外的其他東西,幾乎無(wú)所不包... 不夸張地說(shuō),在 GitHub 上推代碼就變得跟發(fā)微博一樣簡(jiǎn)單。通過(guò)降低用戶的進(jìn)入成本、并讓用戶在開源項(xiàng)目中更方便地展開協(xié)作、貢獻(xiàn)力量,GitHub 將“協(xié)作式生產(chǎn)”(peer production)的范圍擴(kuò)大到普通用戶。
所以,GitHub 式的開源文化降低了所有人的“創(chuàng)造門檻”——今天,對(duì)于那些富有創(chuàng)造力但又不具備深度技術(shù)知識(shí)的人來(lái)說(shuō),他們可以使用各類簡(jiǎn)單又易于理解的軟件實(shí)現(xiàn)創(chuàng)意。而在過(guò)去,他們必須、而且只能具備深度的技術(shù)知識(shí)以參與到大型開源項(xiàng)目中。
而平臺(tái)上發(fā)起者、貢獻(xiàn)者和消費(fèi)者這三類身份的日益彌合也使得那些更輕巧、更易懂的項(xiàng)目逐漸獲得更高的關(guān)注度——也催生了一批長(zhǎng)尾的內(nèi)容貢獻(xiàn)。舉個(gè)例子,在 2012 年 9 月全月,超過(guò)半數(shù)的 GitHub 活躍用戶都發(fā)布了 5 次以內(nèi)的更改,而有 22%(約 4.4 萬(wàn))用戶的更改次數(shù)只有一次(明顯的長(zhǎng)尾趨勢(shì))。
這種開源軟件“業(yè)余化、平民化”的趨勢(shì)也有明顯的好處,如下:
1. 讓軟件變得更易用
不能做到“傻瓜易用”(fit and finish)一直是開源軟件的一個(gè)問(wèn)題。這類軟件的說(shuō)明文檔和網(wǎng)頁(yè)設(shè)計(jì)通常都是亂糟糟的,產(chǎn)品的可用性也很差——尤其是跟很多專有的同類產(chǎn)品相比。
但現(xiàn)在,因?yàn)樨暙I(xiàn)門檻的逐步降低,那些對(duì)技術(shù)不那么在行的用戶就可將上述的幾個(gè)方面逐漸優(yōu)化,以方便自己對(duì)這類軟件的使用。而這就意味著那些原本詭異的報(bào)錯(cuò)消息現(xiàn)在變得越來(lái)越像人話,簡(jiǎn)單修改一兩行 CSS 就會(huì)讓網(wǎng)頁(yè)在一些更老的瀏覽器和手機(jī)上渲染。
所以說(shuō),在新的開源文化下,人們希望自己不用成為技術(shù)專家就可方便地使用技術(shù),“易用性”獲得了全所未有的關(guān)注和重視。
2. 規(guī)避過(guò)度“工程化”
工程師們往往樂于接受挑戰(zhàn),要是能給他們更多的機(jī)會(huì)解決問(wèn)題,他們就越有可能想到聰明的解決方案——假如這類解決方案的終端消費(fèi)者跟這些工程師一樣,對(duì)技術(shù)有很好的理解,又會(huì)像他們一樣因?yàn)橛懈斆鞯姆椒ń鉀Q老問(wèn)題而激動(dòng)不已,那一切都沒問(wèn)題。
但問(wèn)題是,業(yè)余愛好者只喜歡那些在他們眼中理所當(dāng)然、顯而易見的解決方案,一旦某個(gè)問(wèn)題已經(jīng)得到解決,他們就很少會(huì)回過(guò)頭去重新審視這個(gè)問(wèn)題。因?yàn)闃I(yè)余愛好者只會(huì)利用那些最顯而易見的解決方案做東西,這就迫使開發(fā)人員不得不去尋找簡(jiǎn)單而接地氣的解決方案來(lái)解決難題。
3. 支持一個(gè)更大的生態(tài)系統(tǒng)
以我自己頻繁使用的 Node.js 為例,這種編程語(yǔ)言定義了足夠簡(jiǎn)單的語(yǔ)法結(jié)構(gòu)(patterns),使得人人都可以編寫?yīng)毩⒌男⌒秃瘮?shù)庫(kù),并按自己的意愿發(fā)布。在這個(gè)生態(tài)系統(tǒng)中,每個(gè)人都可以獨(dú)立享受當(dāng)中的價(jià)值,無(wú)需協(xié)作。這就跟一些大型、垂直、擁有大量工具和功能、需要在特定環(huán)境下(比如說(shuō) Cocoa 和 iOS)使用的棧(比如像 ember, Dojo,YUI 這樣的集成的插件系統(tǒng))形成了鮮明對(duì)比。
但在開源環(huán)境下,如之前提到的 Node.js,我們就可以看到一些更小的 API 空間輕松使用該生態(tài)系統(tǒng)中的其他資源,避開協(xié)調(diào)(比如用 jQuery 或 node 的標(biāo)準(zhǔn)回調(diào)模式來(lái)回調(diào) API)。開發(fā)者與開發(fā)者、庫(kù)與庫(kù)之間的協(xié)調(diào)越少,就越利于我們創(chuàng)造價(jià)值。
總結(jié)下來(lái)就是,GitHub 讓新一代的年輕人更方便地協(xié)作、創(chuàng)造和生產(chǎn)。很多開發(fā)者可能會(huì)因?yàn)檫^(guò)去那種正規(guī)開源文化(如“委員會(huì)圈子”、需要糾結(jié)使用哪種授權(quán)模式)的消弭而大唱挽歌——但開源的未來(lái)已經(jīng)掌握在那群無(wú)所顧忌、大步向前的新一代人手中。
從這個(gè)角度來(lái)說(shuō),GitHub 不僅僅是一個(gè)工具,它在創(chuàng)造一種全新的文化。