npm 是 2009 年开始的一个 javascript 模块管理工具,也是最流行的代码共享平台之一。2013 年 npm 的模块总数是 4 万,2014 年就升到 8 万以上,超过全部其余同类平台。javascript
(数据来源: http://www.modulecounts.com )java
截止如今 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。
相似的工具能够分析出将来热门的领域,能够看出不一样技术应用方向的进化程度,能够看到每一个方向人群的技术水平进而预测进化周期。从几十万茫茫模块中几十亿下载量中,它能计算出最佳选择,为每种应用场景提供稳定优质的模块组合。这简直就是编程行业的智能时代,而对开发者来讲,这样的时代也许并不须要个体很长期复杂的积累,编写出可靠的应用程序会是一件轻松简单的事情。