GitHub引起開(kāi)源“平民化”變革
GitHub作為一個(gè)協(xié)作平臺(tái)已經(jīng)逐漸成為國(guó)內(nèi)外開(kāi)源社區(qū)的首選,最近,開(kāi)源社區(qū)的元老、Getable公司的首席技術(shù)官M(fèi)ikeal撰文分析了GitHub帶來(lái)的開(kāi)源變革,強(qiáng)調(diào)了平民化的重要性,并指出這種價(jià)值觀下誕生的軟件通常都易于客戶使用、不會(huì)過(guò)度“工程化”,并且支撐了較大的軟件生態(tài)系統(tǒng)。
Mikeal指出,在GitHub誕生之前,開(kāi)源軟件并不如大家預(yù)期的那樣民主和平等:
| 事實(shí)并非如此,大多數(shù)開(kāi)源軟件都有一些享有特權(quán)的一少部分開(kāi)發(fā)人員來(lái)創(chuàng)建和維護(hù)的,這些人只是和同一級(jí)別的少數(shù)的圈內(nèi)人打交道。
在GitHub出現(xiàn)以前,我會(huì)想盡辦法如何更好地管理和維護(hù)開(kāi)源項(xiàng)目,因?yàn)檫@種開(kāi)源項(xiàng)目的協(xié)作成本比較高。例如,當(dāng)一個(gè)項(xiàng)目做的挺好,又發(fā)展到一個(gè)不小規(guī)模的社區(qū)時(shí),我們就會(huì)發(fā)現(xiàn),最好的辦法就是繼續(xù)維護(hù)臃腫的項(xiàng)目存在下去,而無(wú)法分拆成小范圍的子項(xiàng)目。隨之而來(lái)的問(wèn)題是,項(xiàng)目變得越來(lái)越復(fù)雜,單個(gè)開(kāi)發(fā)者很難對(duì)此作出想做的貢獻(xiàn)。所以,就像我剛才說(shuō)的,只有一小部分人來(lái)專門管理和維護(hù)開(kāi)源項(xiàng)目,這也導(dǎo)致在項(xiàng)目的實(shí)際使用者和維護(hù)者之間存在的信息鴻溝。 |
但GitHub的“平民化”模式讓這個(gè)問(wèn)題得到了很好的解決,讓更多的開(kāi)發(fā)者獲得了貢獻(xiàn)的機(jī)會(huì)和可能。原因在于:
| GitHub的流程設(shè)計(jì)非常人性化。每個(gè)開(kāi)發(fā)者都可以在GitHub上注冊(cè)自己的賬號(hào),其中包括自己的所有資料。如果有人想修復(fù)某個(gè)項(xiàng)目,只需要執(zhí)行Fork操作,即在自己的工作目錄下拷貝一個(gè)原項(xiàng)目副本,然后修改代碼即可。
這種工作流程非常強(qiáng)大:因?yàn)樗膭?lì)了個(gè)體開(kāi)發(fā)者去對(duì)一個(gè)他人已創(chuàng)建的項(xiàng)目做修改,而他們對(duì)該項(xiàng)目的所有權(quán)和控制權(quán)絲毫不亞于一個(gè)由自己首先創(chuàng)建的項(xiàng)目。在這種新穎的開(kāi)源文化下,所有開(kāi)發(fā)者都能擁有自己的地位和肯定。而 GitHub 實(shí)際上也已經(jīng)成為互聯(lián)網(wǎng)協(xié)作開(kāi)發(fā)最大的服務(wù)商。 |
Mikeal自己做了十多年的開(kāi)源項(xiàng)目貢獻(xiàn)者,但現(xiàn)在的開(kāi)源文化跟當(dāng)年的一個(gè)很大不同是——他不再是某個(gè)項(xiàng)目的“特定成員”——而僅僅是某個(gè)項(xiàng)目的使用者。使用者的一個(gè)很大特點(diǎn)就是,人人都可為項(xiàng)目貢獻(xiàn)“一份”自己的力量。在Mikeal消費(fèi)、使用的各種各樣的小項(xiàng)目中,他會(huì)跟項(xiàng)目維護(hù)者有一些更具體的互動(dòng),而且保持一周幾次。 但更多的一種趨勢(shì)其實(shí)來(lái)自另一個(gè)方向:作為Mikeal自己的項(xiàng)目的發(fā)起者,現(xiàn)在他會(huì)收到很多陌生開(kāi)發(fā)者發(fā)來(lái)的關(guān)于這些項(xiàng)目的代碼變更。
Mikeal認(rèn)為GitHub 的第一版在一件事情上做得不錯(cuò):它讓個(gè)人開(kāi)發(fā)者發(fā)布代碼變得比過(guò)去簡(jiǎn)單很多。這也使得許多很有影響力的項(xiàng)目,比如說(shuō)Ruby on Rails的項(xiàng)目,可以很快地遷移到GitHub上來(lái)。但接下來(lái)發(fā)生的事情實(shí)際更有趣:人們開(kāi)始在GitHub上發(fā)布除源代碼以外的其他東西,幾乎無(wú)所不包……不夸張地說(shuō),在GitHub上發(fā)布代碼就變得跟發(fā)Twitter一樣簡(jiǎn)單。通過(guò)降低用戶的進(jìn)入門檻并讓用戶在開(kāi)源項(xiàng)目中更方便地展開(kāi)協(xié)作、貢獻(xiàn)力量,GitHub 將協(xié)作開(kāi)發(fā)的范圍擴(kuò)大到普通開(kāi)發(fā)者。
GitHub模式下的開(kāi)源軟件具備哪些優(yōu)點(diǎn)呢?Mikeal認(rèn)為主要有以下三點(diǎn):
軟件更加易用
長(zhǎng)期以來(lái),開(kāi)源軟件的一個(gè)主要問(wèn)題是“見(jiàn)好就收”,相比許多同類商業(yè)軟件來(lái)說(shuō),開(kāi)源軟件的文檔說(shuō)明、網(wǎng)站設(shè)計(jì)和通用性都比較糟糕。
但是現(xiàn)在,隨著貢獻(xiàn)門檻的降低,技術(shù)水平不高的用戶可以在使用開(kāi)源軟件的同時(shí)改善這些問(wèn)題(這就意味著那些原本詭異的報(bào)錯(cuò)消息現(xiàn)在變得越來(lái)越人性化,簡(jiǎn)單修改一兩行CSS就會(huì)讓網(wǎng)頁(yè)在一些更老的瀏覽器和移動(dòng)平臺(tái)上可用)。在新的開(kāi)源軟件模式下,大家可以使用技術(shù),而且不一定要成為專家。易用性永遠(yuǎn)是最重要的。
避免過(guò)度“工程化”
工程師們總是樂(lè)于接受挑戰(zhàn),要是能給他們更多的機(jī)會(huì)解決問(wèn)題,他們就越有可能想到更完美的解決方案——假如這類解決方案的用戶跟這些工程師一樣,對(duì)技術(shù)有很好的掌握,又會(huì)像他們一樣因?yàn)橛懈斆鞯姆椒ń鉀Q老問(wèn)題而感到興奮,那一切都沒(méi)問(wèn)題。
但問(wèn)題在于,業(yè)余愛(ài)好者只喜歡那些在他們眼中理所當(dāng)然、顯而易見(jiàn)的解決方案,一旦某個(gè)問(wèn)題已經(jīng)得到解決,他們就很少會(huì)回過(guò)頭去重新審視這個(gè)問(wèn)題。因?yàn)闃I(yè)余愛(ài)好者只會(huì)利用那些最顯而易見(jiàn)的解決方案做東西,這就迫使開(kāi)發(fā)人員不得不去尋找簡(jiǎn)單而接地氣的解決方案來(lái)解決難題。
支撐較大的軟件生態(tài)系統(tǒng)
以Mikeal自己經(jīng)常參與的Node.js項(xiàng)目為例,Node.js定義了足夠簡(jiǎn)單的模式,使得人人都可以編寫?yīng)毩⒌男⌒秃瘮?shù)庫(kù),并按自己的意愿發(fā)布。在這個(gè)生態(tài)系統(tǒng)中,每個(gè)人都可以利用其中的價(jià)值,無(wú)需協(xié)作。這就跟一些大型的、擁有大量工具和功能、需要在特定商業(yè)軟件環(huán)境下(比如說(shuō)Cocoa )使用的軟件項(xiàng)目形成了鮮明對(duì)比。
在開(kāi)源環(huán)境下,比如GitHub上的Node.js項(xiàng)目,我們就可以看到一些更低的API門檻,讓開(kāi)發(fā)者能夠利用生態(tài)系統(tǒng)的其他價(jià)值。
Mikeal最后總結(jié)說(shuō):
| GitHub讓新一代的開(kāi)發(fā)者更加協(xié)作、更具創(chuàng)造性和生產(chǎn)力。許多開(kāi)發(fā)者可能會(huì)懷念過(guò)去那種正式的開(kāi)源小組或者委員會(huì),但是新的開(kāi)源模式已經(jīng)到來(lái),新一代的開(kāi)源參與者已經(jīng)發(fā)展壯大,讓我們擁抱這種全新的文化吧。 |
編后語(yǔ):GitHub在國(guó)內(nèi)開(kāi)源、開(kāi)發(fā)社區(qū)的影響力也日趨強(qiáng)大,許多國(guó)內(nèi)技術(shù)專家或者互聯(lián)網(wǎng)公司在GitHub上都有自己的開(kāi)源項(xiàng)目,包括代碼或者著作。甚至從某種程度上講,開(kāi)源項(xiàng)目的參與度體現(xiàn)了一位開(kāi)發(fā)人員的真正技術(shù)水平和協(xié)作能力。君不見(jiàn),現(xiàn)在許多招聘條件上都寫著“參與開(kāi)源項(xiàng)目者優(yōu)先”等類似的語(yǔ)句。這種現(xiàn)象的出現(xiàn)恰恰說(shuō)明國(guó)內(nèi)技術(shù)社區(qū)對(duì)開(kāi)源項(xiàng)目和開(kāi)源參與者的重視和肯定。開(kāi)源將成為一種身份的象征,你GitHub了嗎?
【編輯推薦】
【責(zé)任編輯:黃丹 TEL:(010)68476606】






















