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