天下開源是一家,GitHub 收購 npm

作者 | 發布日期 2020 年 03 月 19 日 7:45 | 分類 Microsoft , 軟體、系統 , 開放資料 follow us in feedly


近日全球開源社群爆出大新聞:GitHub 宣布收購 npm 。npm 是什麼?JavaScript 世界的軟體套件管理器。它的規模有多大?大約有 1,200 萬開發人員使用,共提供了 130 萬個軟體套件,每月下載次數達到 750 億次。

相比 Github 的 4,000 萬開發人員,1 億個託管的程式碼,npm 按開發者人數來看,也有超過四分之一的規模。

具體收購的金額並沒有透露。不過這兩大開發者社群宣布「結婚」的方式也很特別,就是兩位老大各自發了一篇文章,從中可以窺見不同的心情。

興奮又善感

GitHub 的 CEO 納特·弗里德曼(Nat Friedman),對於收購顯然已不陌生,自 2018 年 6 月微軟 75 億美元收購 GitHub ,10 月物色納特擔任 CEO 之後,如今已快 1 年半。

▲ GitHub CEO 納特‧弗里德曼。(Source:微軟

這期間,納特就在不停地收購和屯貨,先是 Dependabot ,一款幫助開發人員監測依賴關係的工具;然後是 Pull Panda ,團隊協作開發工具;再接著是 Semmle,透過社群驅動來辨識安全漏洞的語義分析引擎。算到 npm ,已經是第 4 個標的。

當然,npm 不僅只是個工具,它已然是 JavaScript 這個世界最大的開發者生態系統裡最重要的組成部分。納特承諾,對於這個每天有數百萬開發人員使用的工具,npm 將始終可用且始終免費。交易完成之後,GitHub 還要加大投資,確保 npm 的快速、可靠和可擴展。

有了富爸爸,從此兩家變一家。Github 託管的是正在開發中的程式碼,npm 則是打包好的穩定程式碼,兩者是絕配。納特說,這涉及了開源安全這個重要的全球性問題,透過更好地整合,可以提高開源供應鏈的安全性,使得開發者能夠追蹤從 GitHub 拉取請求到修復它的 npm 軟體套件版本的更改。

對於付費用戶,npm 有高級版、團隊版、企業版客戶,而 Github 則有自己的多語言套件管理器 Github Packages,今年晚些時候,兩者將進行融合。

相比納特博文,npm 創始人艾薩克‧施呂特(Isaac Z. Schlueter)則發表了一篇既興奮又善感的網誌。

▲ npm 創始人艾薩克‧施呂特。(Source:increment

他回顧了 2009 年以來的創業歷程,早先受到 PHP 的 PEAR、Perl 的 CPAN 的啟發,艾薩克寫了個套件管理器共享到社群,伴隨著 Node.js 的興起,JavaScript 從前端向伺服器端演進,npm 做為默認的軟體套件管理器,方便開發者簡化庫的安裝、更新和解除安裝,自身也逐漸壯大。

甚至在 2012 年,Node.js 的創始人瑞安‧達爾(Ryan Dahl)離開,艾薩克還幫忙管理了一段時間。他們兩人當時都是位於舊金山的 Joyent 公司的同事。

一邊上班,一邊維護開源社群的確不容易。2013 年底,npm 陷入困境,社群靠捐贈無法生存,艾薩克在 2014 年成立了 npm,Inc. 公司,以支援社群和 1,000 多萬用戶。

種子輪之後,npm 在 2015 年又融了 800 萬美元的 A 輪。團隊從 1 人增加到 35 人。艾薩克說,經營公司很難,錢一直不夠花。

但 npm 的使命一直沒變:減少 JavaScript 軟體開發中的摩擦。直到 Github Packages 的 beta 版出來,艾薩克主動問 GitHub:「你為什麼不嘗試收購我們?」

收購完成以後,npm 將繼續改進,並將成為 GitHub 這家世界上最大的開發者社群的戰略資產,服務於 GitHub 消除軟體開發中交易成本的使命。

JavaScript 生態

《WIRED》雜誌評論說,微軟很快會控制更多的開源軟體開發生態系統。

(Source:pixabay

開源世界裡,各種生態、工具和社群複雜纏繞在一起,畢竟誰都不想重新造輪子。開發人員通常將程式和開源軟體套件組合在一起,處理常見功能,比如驗證密碼或者網路通信。

npm 的客戶裡,既包括個人開發者也包括 500 強企業,比如 Netflix、VISA、Adobe、salesforce 以及 Nike。

只要有網路和網站的地方,就會有 JavaScript 。它隨著 Netscape 瀏覽器在 1995 年誕生,最終成為適合 Firefox、Chrome 等幾乎所有瀏覽器的 Web 網站的客戶端手稿語言的標準。

2008 年,Google 推出了 JavaScript 引擎 V8,採用即時編譯,大大縮短了執行時間。Node.js 在 2009 年誕生,它結合了 V8 引擎,把 JavaScript 帶到了伺服器端的環境。

Node.js 提供了事件驅動,多條命令可以同時被執行,可用於編寫高並發的程式,把 JavaScript 的易學易用和 Unix 網路編程的強大結合在一起。

Node.js 的開源庫,大多數都託管在 npm,並形成了強大的開發者生態,包括 NodeConf 等社群活動。

JavaScript 開發者可以很方便地用 npm 共享程式碼,把軟體套件發布到 npm,也很容易使用別人的開源程式碼,形成了一個龐大的相互依存的開源開發生態系統。

這是 JavaScript 開發人員每天需要使用的東西,每個人都希望它更加可靠、方便。

天下開源是一家,如今爸爸叫微軟。

在 Reddit 論壇上,各種評論也炸開了鍋。

有網友認為,這對於微軟和開源都是雙贏,微軟的 Azure 可以藉此提供更好的服務。微軟錯失了行動平台,而雲端計算是下一個計算平台。微軟擁有 40 年吸引開發人員的紀錄。

而也有網友認為,手頭上一半以上的開發工具箱都是微軟提供的,包括 GitHub、npm、VS Code、TypeScript,一家公司壟斷開發者世界並不是一件好事。

還有網友認為,對微軟的負面印象時間太長,而這已經過時,微軟現在是開源軟體最大的貢獻者,比包括 Google、亞馬遜、蘋果、甲骨文、IBM 的任何一家公司都要開放得多。

(本文由 雷鋒網 授權轉載;首圖來源:The GitHub Blog