發表日期 2020-03-19T23:13:36+08:00
近日全球開源社群爆齣大新聞: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 消除軟體開發中交易成本的使命。
《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 的任何一傢公司都要開放得多。