從 Node.js 分裂出 Io.js 事件看開源軟體誰做主

edithfang發表於2014-12-18
Node.js 作為伺服器程式語言的後起之秀,常用來構建和執行 Web 應用,近日卻爆出其社群出現分裂。由於對官方運營商 Joyent 公司在 Node.js 管理上的長期不滿,多位核心開發者另立門戶,建立了分支 Io.js。從 GitHub 得知,Io.js 的第一個版本(1.0.0 alpha1 版)將於 2015 年 1 月 13 日釋出。

Node.js 開源社群組織者 Mikeal Rogers 也是“另立門戶”中的一員,他說:“我們不想被另外一家公司任命的管理人員牽著鼻子走,而是想讓 Node.js 的貢獻者擁有更多的控制權,並尋求更多的共識。”

Io.js 與 Node.js 的分離,再一次凸顯出開源專案贊助商與其開發、維護人員及公司之間的矛盾。之前也有類似的情形,CoreOS 與 Docker 分家繼而推出自己的容器引擎 Rocket,也是因為 Docker 的部分社群成員認為母公司的管理偏離了原來的方向,從而導致一個新的競爭對手產生。

一般情況下,商業公司通過免費提供開源軟體,鼓勵使用者測試、改進原始碼,可以獲取鉅額利潤。然而,這樣做的結果是,很難平衡商業公司與外部開發者、使用者間不同的需求。雲端計算公司 Joyent 是 Node 程式語言的主要使用者,在滿足其自身需求的前提下,還通過 Node.js 的廣泛傳播和推廣獲利。這樣便陷入了一個怪圈,Joyent 不可能讓每個使用者都滿意,於是便上演了前文提到的分裂。



但是問題的關鍵在於,Node 分裂後是否有助於讓更多的公司和開發者來使用這款產品呢?Node.js 是一個基於 Chrome JavaScript 執行時建立、流行、開源、跨平臺的執行時環境,這種執行時環境正在改變開發者構建新應用的模式。自五年前釋出以來,Node 便深受歡迎,現在已被諸多全球知名企業在其商業產品或服務軟體中採用,包括通用電氣公司、沃爾瑪這樣的企業巨頭,以及著名社交網站 LinkedIn、音樂應用 Rdio、叫車軟體 Uber 這些科技新創企業。

分裂的背後原因

Node 最初是由 Ryan Dahl 於 2010 年 11 月發起的開源專案,旨在用 JavaScript 語言構建和執行大規模網路服務及應用,而 JavaScript 是目前瀏覽器所使用的標準編碼語言。程式設計師之所以喜歡 JavaScript 語言,是因為它靈活易懂,只需使用一種語言便可實現瀏覽器與遠端伺服器之間的程式碼除錯。並且,還很適合構建需要支援眾多同時線上使用者的應用,比如線上遊戲。

而在 2009 年,Joynent 僱用了 Ryan Dahl 並讓其專職負責 Node.js 的發展,在此同時,還獲取了 Node 的品牌使用權。三年後,Ryan Dahl 卻走下了 Node.js 的專案負責崗,不久便淡出了公眾視野。

在此之後,Node.js 開源專案繼續執行,並吸取了來自於不同公司編碼員,來一同構建這個平臺。但是在去年的一次訪談中,Mikeal Rogers 提到,自從 Ryan Dahl 離開後,Node.js 開源社群的貢獻者和 Joyent 釋出的更新數量都在不斷縮減,甚至都有人發郵件過來詢問這個開源專案是不是已經不存在了。



這就是 Io.js 團隊決定和 Node 分道揚鑣的主要原因。這個專案創立之初便已經參與的五位重量級開發者,Io.js 分支囊括了其中四位。Joyent 目前維持的 Node.js 版本仍起著至關重要的作用,但是 Io.js 的開發團隊已經計劃在 2015 年初發布他們自己的平臺自定義版本,將使用全新的的谷歌 V8 JavaScript 引擎。

另一邊,Joyent 的技術長 Bryan Cantril 卻認為 Node 依然盛行,儘管其發展速度放緩。他解釋到,Joyent 將重點放在如何使 Node 的讀取速度更快、執行更加穩定上,而非一味的去增加新特徵。並且,一定要把控社群貢獻者的質量,而不是數量。

分裂後新的起點

當然,Mikeal Rogers 沒必要因為 Node 面臨的問題去譴責 Joyent。但是,Io.js 團隊堅持的理想是創造一個全新的、獨立的基礎,服務於這個開源專案,而不受任何外在公司或個人的控制。這同時也說明,Io.js 團隊還未真正建立起這個基礎,因為他們仍對獲得 Joyent 授權使用 Node.js 商標報以希望。

一個全新獨立的基礎具備十分重要的意義,包括諾維 NPM、NodeSource 和 Strongloop 等許多公司,都依靠 Node 開源語言,並且 Io.js 團隊中的許多成員還受僱於這些公司。歷史上流傳最廣泛的開源專案也多數具備獨立的基礎,而不是受控於個別公司,像世界排名第一的 Web 伺服器軟體 Apache,大資料處理平臺 Hadoop,作業系統 Linux 等。



但是近年來,隨著商業活動中開放原始碼日益被廣泛接受,Joyent 和 Docker 採取的這種單一公司控制模式也開始流行起來,並且有時候這種模式運轉良好。例如:大行其道的程式設計框架,Ruby on Rails,依然由它的締造者 Basecamp 進行管理。

Joyent 通過驅動決策過程中能達成共識,進一步提高 Node 的相容性,並且還成立了一個諮詢委員會,吸納了許多來自公司外部的開發者。但是對於許多人來說,這個諮詢委員會來得太慢、太遲了。

Source: Wired
來自:程式師
相關閱讀
評論(1)

相關文章