歡迎來到 npm 智慧星球

npm 是 2009 年開始的一個 javascript 模塊管理工具,也是最流行的代碼共享平臺之一。2013 年 npm 的模塊總數是 4 萬,2014 年就升到 8 萬以上,超過全部其餘同類平臺。javascript


(數據來源: http://www.modulecounts.comjava

截止如今 npm 的模塊總數量是 31 萬個,6 月份的總下載量超過 49 億(由於有些狀況下 npm 安裝模塊從緩存讀取時不會被算入下載統計,因此總安裝量遠遠超過這個數)。node

今年 4 月 npm 官方(http://blog.npmjs.org/post/143451680695/how-many-npm-users-are-there )發了一份統計,截止 4 月全球估計有 4 百萬用戶使用 npm,而且這個數字每一年會翻一倍。npm

做爲一個 npm 的重度依賴者,我近 2 年的十幾個項目都在使用 npm,我還把本身的多個模塊發佈到 npm,而且推薦朋友使用。編程

最近一位朋友跟我吐槽 npm 上不少模塊不嚴謹,都沒有測試過,不少坑。確實如此,不只代碼質量有問題,還有不少模塊是重複的,好比在 npm.com 搜索 requestAnimationFrame 的 polyfill 能夠看到一整頁 20 多個功能重複的模塊。緩存

這些問題只能用「林子大了什麼鳥都有」來解釋,npm 如今就像一個天然生態,它靠最簡單的規則讓原子化的個體造成進化羣體,依託羣體的」快速應用->大量反饋->快速迭代發佈->快速應用「模式,讓整個 npm 生態快速迭代進化起來。sass

目前在 npm 上發佈模塊的人數超過了 8 萬,這些人發佈了超過 31 萬個模塊,其中有 3 萬模塊是被用戶大量下載使用的。咱們來簡單篩選一下有多少合格的模塊(數據來自https://unpm.nodesource.com 網站):less

按照全部模塊爲 100% 來算
減去沒 readme 文件的模塊,剩下 89.0%
再減去缺乏 license 的模塊,剩下 58.4%
再減去沒配置對應 Github 倉庫地址的模塊,剩下 53.7%
再減去沒測試代碼的模塊,剩下 42.3%工具

因此這麼多模塊中只有 42.3% 即 1 萬可能是有各類必備配置的「合格」的模塊。但剩下更多的是不「合格」的有些連 readme 都沒有的模塊,這些 npm 竟然也容許發佈。post

其實,npm 能有如此大的活力也是得益於容許不完美的模塊存在着,它給發佈者很大的權利,只需很簡單的步驟就能夠發佈模塊,沒人審覈你的代碼。就這麼簡單的規則,造就天天 440 多個模塊的發佈量。

截止目前 npm 只有 25 個員工,他們沒去設計完備的發佈措施讓模塊「合格」的上線。相反,他們「聽任」大量不完美的模塊發佈出來讓用戶本身甄別篩選,用戶之間造成的進化羣體在」快速應用->大量反饋->快速迭代發佈->快速應用「的模式下,模塊趨於完善。

我常常看到有雷同的模塊其中一個做者自認爲不如另外一個模塊作得好,建議你們去用另外一個。而那些如今依然「有坑」的模塊就是提示你它剛剛開始進化,你能夠參與它的進化羣體,它會與你一同完善。

從更大的視角看,npm 能夠用大數據分析看到整個開發者生態的情況。

好比經過 http://npmcharts.com 這張圖能夠看出 2016 年 sass 的用戶數量超過了 less。

相似的工具能夠分析出將來熱門的領域,能夠看出不一樣技術應用方向的進化程度,能夠看到每一個方向人羣的技術水平進而預測進化週期。從幾十萬茫茫模塊中幾十億下載量中,它能計算出最佳選擇,爲每種應用場景提供穩定優質的模塊組合。這簡直就是編程行業的智能時代,而對開發者來講,這樣的時代也許並不須要個體很長期複雜的積累,編寫出可靠的應用程序會是一件輕鬆簡單的事情。

本文同步發佈在我博客:http://zaishanda.com/post/%E6%AC%A2%E8%BF%8E%E6%9D%A5%E5%88%B0%20npm%20%E6%99%BA%E6%85%A7%E6%98%9F%E7%90%83

相關文章
相關標籤/搜索