您好,登錄后才能下訂單哦!
npm 是啥?JavaScript 世界的軟件包管理器。它的體量有多大?大約有 1200 萬(wàn)開發(fā)人員使用,共提供了 130 萬(wàn)個(gè)軟件包,每月下載次數(shù)達(dá)到 750 億次。 |
2020 年 3 月 ,全球開源社區(qū)爆出大新聞:GitHub 宣布收購(gòu) npm 。
npm 是啥?JavaScript 世界的軟件包管理器。它的體量有多大?大約有 1200 萬(wàn)開發(fā)人員使用,共提供了 130 萬(wàn)個(gè)軟件包,每月下載次數(shù)達(dá)到 750 億次。
相比 Github 的 4000 萬(wàn)開發(fā)人員,1 億個(gè)托管的代碼,npm 按開發(fā)者人數(shù)來(lái)看,也有超過(guò) 1/4 的規(guī)模。
具體收購(gòu)的金額并沒(méi)有透露。不過(guò)這兩大開發(fā)者社區(qū)宣布“結(jié)婚”的方式也很特別,就是兩位老大各自發(fā)了一篇博客,從中可以窺見不同的心情。
興奮又善感
GitHub 的 CEO 納特·弗里德曼(Nat Friedman),對(duì)于收購(gòu)顯然已不陌生,自 2018 年 6 月微軟 75 億美元收購(gòu) GitHub ,10 月物色納特?fù)?dān)任 CEO 之后,如今已快一年半。
這期間,納特就在不停地收購(gòu)和屯貨,先是 Dependabot ,一款幫助開發(fā)人員監(jiān)測(cè)依賴關(guān)系的工具;然后是 Pull Panda ,團(tuán)隊(duì)協(xié)作開發(fā)工具;再接著是 Semmle,通過(guò)社區(qū)驅(qū)動(dòng)來(lái)識(shí)別安全漏洞的語(yǔ)義分析引擎。算到 npm ,已經(jīng)是第四個(gè)標(biāo)的。
當(dāng)然,npm 不僅僅只是個(gè)工具,它已然是 JavaScript 這個(gè)世界最大的開發(fā)者生態(tài)系統(tǒng)里,最重要的組成部分。納特承諾,對(duì)于這個(gè)每天有數(shù)百萬(wàn)開發(fā)人員使用的工具,npm 將始終可用且始終免費(fèi)。交易完成之后,GitHub 還要加大投資,確保 npm 的快速、可靠和可擴(kuò)展。[1]
有了富爸爸,從此兩家變一家。Github 托管的是正在開發(fā)中的代碼,npm 則是打包好的穩(wěn)定代碼,兩者是絕配。納特說(shuō),這涉及了開源安全這個(gè)重要的全球性問(wèn)題,通過(guò)更好地集成,可以提高開源供應(yīng)鏈的安全性,使得開發(fā)者能夠跟蹤從 GitHub 拉取請(qǐng)求到修復(fù)它的 npm 軟件包版本的更改。
對(duì)于付費(fèi)用戶,npm 有高級(jí)版、團(tuán)隊(duì)版、企業(yè)版客戶,而 Github 則有自己的多語(yǔ)言包管理器 Github Packages,今年晚些時(shí)候,兩者將進(jìn)行融合。
相比納特博文,npm 創(chuàng)始人艾薩克·施呂特(Isaac Z. Schlueter)則發(fā)表了一篇既興奮又善感的博客。
他回顧了 2009 年以來(lái)的創(chuàng)業(yè)歷程,早先受到 PHP 的 PEAR、Perl 的 CPAN 的啟發(fā),艾薩克寫了個(gè)包管理器共享到社區(qū),伴隨著 Node.js 的興起,JavaScript 從前端向著服務(wù)器端演進(jìn),npm 作為默認(rèn)的軟件包管理器,方便開發(fā)者簡(jiǎn)化庫(kù)的安裝、更新和卸載,自身也逐漸壯大。
甚至在 2012 年,Node.js 的創(chuàng)始人瑞安·達(dá)爾(Ryan Dahl)離開,艾薩克還幫著管理了一段時(shí)間。他們兩人當(dāng)時(shí)都是位于舊金山的 Joyent 公司的同事。
一邊上班,一邊維護(hù)開源社區(qū)的確不容易。2013 年底,npm 陷入困境,社區(qū)靠捐贈(zèng)無(wú)法生存,艾薩克在 2014 年成立了 npm,Inc. 公司,以支持社區(qū)和 1000 多萬(wàn)用戶。
種子輪之后,npm 在 2015 年又融了 800 萬(wàn)美元的 A 輪。團(tuán)隊(duì)從 1 人增加到 35 人。艾薩克說(shuō),運(yùn)營(yíng)公司很難,錢一直不夠花。
但 npm 的使命一直沒(méi)變:減少 JavaScript 軟件開發(fā)中的摩擦。直到 Github Packages 的 beta 版出來(lái),艾薩克主動(dòng)問(wèn) GitHub:“你為什么不嘗試收購(gòu)我們?”
收購(gòu)?fù)瓿梢院?,npm 將繼續(xù)改進(jìn),并將成為 GitHub 這家世界上最大的開發(fā)者社區(qū)的戰(zhàn)略資產(chǎn),服務(wù)于 GitHub 消除軟件開發(fā)中交易成本的使命。
JavaScript 生態(tài)
《連線》雜志評(píng)論說(shuō),微軟很快會(huì)控制更多的開源軟件開發(fā)生態(tài)系統(tǒng)。
開源世界里,各種生態(tài)、工具和社區(qū)是復(fù)雜纏繞在一起的,畢竟誰(shuí)都不想重新造輪子。開發(fā)人員通常將程序和開源軟件包組合在一起,處理常見功能,比如驗(yàn)證密碼或者網(wǎng)絡(luò)通信。
npm 的客戶里,既包括個(gè)人開發(fā)者,也包括 500 強(qiáng)企業(yè),比如 Netflix、VISA、Adobe、salesforce 以及耐克。
只要有互聯(lián)網(wǎng)和網(wǎng)站的地方,就會(huì)有 JavaScript 。它隨著 Netscape 瀏覽器在 1995 年誕生,最終成為適合 Firefox、Chrome 等幾乎所有瀏覽器的 Web 網(wǎng)站的客戶端 腳本語(yǔ)言的標(biāo)準(zhǔn)。
2008 年,Google 推出了 JavaScript 引擎 V8,采用即時(shí)編譯,大大縮短了執(zhí)行時(shí)間。Node.js 在 2009 年誕生,它結(jié)合了 V8 引擎,把 JavaScript 帶到了服務(wù)器端的環(huán)境。
Node.js 提供了事件驅(qū)動(dòng),多條 命令可以同時(shí)被運(yùn)行,可用于編寫高并發(fā)的程序,把 JavaScript 的易學(xué)易用和 Unix 網(wǎng)絡(luò)編程的強(qiáng)大結(jié)合到了一起。
Node.js 的開源庫(kù),大多數(shù)都托管在 npm,并形成了強(qiáng)大的開發(fā)者生態(tài),包括 NodeConf 等社區(qū)活動(dòng)。
JavaScript 開發(fā)者可以很方便地用 npm 共享代碼,把軟件包發(fā)布到 npm,也很容易使用別人的開源代碼,形成了一個(gè)龐大的相互依存的開源開發(fā)生態(tài)系統(tǒng)。
這是 JavaScript 開發(fā)人員每天需要使用的東西,每個(gè)人都希望它更加可靠、方便。
微軟全家桶
天下開源是一家,如今爸爸叫微軟。
在 Reddit 論壇上,各種評(píng)論也炸開了鍋。[3]
有網(wǎng)友認(rèn)為,這對(duì)于微軟和開源都是雙贏,微軟的 Azure 可以借此提供更好的服務(wù)。微軟錯(cuò)失了移動(dòng)平臺(tái),而云計(jì)算是下一個(gè)計(jì)算平臺(tái)。微軟擁有 40 年吸引開發(fā)人員的記錄。
而也有網(wǎng)友認(rèn)為,手頭上一半以上的開發(fā)工具箱都是微軟提供的,包括 GitHub、npm、VS Code、TypeScript,一家公司壟斷開發(fā)者世界并不是一件好事。
還有網(wǎng)友認(rèn)為,對(duì)微軟的負(fù)面印象時(shí)間太長(zhǎng),而這已經(jīng)過(guò)時(shí),微軟現(xiàn)在是開源軟件最大的貢獻(xiàn)者,比包括谷歌、亞馬遜、蘋果、甲骨文、IBM 的任何一家公司都要開放得多。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。