NPM 2018年回顾与2019年预测

近日,npm发布了2018年npm上的一些数据,以及对2019年的JavaScript生态圈进行了预测。数据显示,npm每月有超过1000万个用户进行超过300亿次的下载。在某个周二,也就是npm最繁忙的一天,用户下载JavaScript包的次数超过13亿。

除了这些数据之外,今年,npm还与Node.js基金会和JS基金会合作,对超过16000名开发人员进行问卷调查,了解他们的最新动态,这将有助开发者在2019年更好地做出技术选择,目前这份调查报告还尚未发布。

JavaScript是最流行的编程语言

JavaScript越来越受欢迎,这已经不是什么新鲜事了。Stack Overflow的2018年开发人员调查报告已经将JavaScript视为当下最流行的编程语言(HTML和CSS分列第2和第3位)。GitHub最新的Octoverse信息图根据拉取请求的数量对编程语言进行排名,JavaScript也是最高的。

\"\"

JavaScript开发者的总数很难估计。Slashdata的2018年调查报告显示,到2017年底有970万人,而且增长速度很快,这意味着到目前可能有超过1000万人。根据npm自己的估算,npm用户可能已经超过1000万。有些JavaScript开发者尚未使用npm,但这部分开发者的比例较小,可能不到10%。

npm Registry促进了JS的普及

毫无疑问,JavaScript的普及是因为它作为唯一一门可直接用于开发Web应用程序的编程语言。不过,Berkeley实验室的Leo Meyerovich和Ariel Rabkin对有助于编程语言采用的因素进行了研究,并发表了一篇论文,论文中提到,总的来说与手头任务相关的开源库的可用性才是选择编程语言的最重要因素。

\"\"

npm的调查数据与上述两位学者的观点基本吻合。受访者选择JavaScript的最常见原因是可用库的数量。

\"\"

npm目前拥有超过836,000个库,是世界上最大的开源库集合。虽然JavaScript的库通常都很小,这意味着这种比较并不完全具有同等意义,但不管怎样,这个庞大的开源代码库意味着JavaScript和npm的流行是相互作用的:编程语言因为Registry而受欢迎,反过来也是。

\"\"

npm被用于构建各种应用程序

问卷调查中有一个问题是JavaScript开发者在哪些地方会用到JavaScript。93%的受访者表示他们使用JavaScript开发Web应用程序,仍然有70%的受访者表示他们编写的是运行在服务器端的JavaScript,即Node.js。不过,包括物联网(IoT)、桌面应用程序、原生移动应用程序在内的很多其他应用领域也有大量JavaScript用户。

\"\"

对于我们这些在npm工作并维护npm命令行工具的人来说,这是一个重大变化。npm的初衷是为了满足服务器端应用程序开发者的需求,而Web开发者的需求是不一样的。转变成为以Web为主的平台意味着我们需要改变优先级,于是有了包锁定(package locking)等新功能。

npm对于Web开发来说至关重要

在2014年npm刚成立时,一些树通常只包含几十个JavaScript包。而到了现在,普通的现代Web应用程序通常会有1000多个模块,包含超过2000个模块的树也并不少见。实际上,现代Web应用程序中有97%的代码来自npm。一个开发者只负责最终的3%代码,它们是应用程序独有的代码。

从代码重用方面来看,这是一个巨大的成功。数千个模块不需要重新发明轮子,为数百万开发者节省了数亿个小时的编码时间。

2018年,npm专注于安全

对于很多开发者来说,npm已经成为构建网站的一种方式。在我们的调查中,77%的开发者表示他们担心他们所使用的开源库的质量和安全,而其中有52%的开发者表示目前缺少可用的安全工具。

4月份,npm宣布收购Lift Security及其产品Node Security Platform(NSP)。现在,NSP直接被集成到npm中,每次npm安装都会进行安全审计,通知用户他们是否正在安装不安全的模块。npm还提供了工具,通过自动安装安全的模块来修正这些漏洞。此外,npm企业版和付费的npm企业用户会收到尚未被公开的漏洞通知。

npm用户的分布情况

  1. npm用户大多数是新手。25%的人使用JavaScript的时间不到2年,51%的人使用npm的时间不到2年。

  2. npm用户大多是自学的。69%的npm用户自学JavaScript,有22%是在工作中学习。

\"\"

这些开发者不只是编写JavaScript代码。使用npm的人并不总是严格意义上的JavaScript开发者——Java、PHP和Python开发者占了30%,还有少部分其他语言的开发者。

他们不在“科技”公司工作。55%的npm用户称自己是在不被视为“技术”公司的公司工作。

在某些方面,npm用户与一般软件开发者没有区别,这本身就很有趣。例如,npm用户在各种规模的公司工作,与这些公司存在的比例大致相同。JavaScript并不是只有“大公司”或“小公司”才会采用的技术。npm用户平均分布在每个行业,在年龄和教育水平等方面的分布也比较平均。

人们希望能够简化工具

2018年的JavaScript开发需要使用大量的工具,这一点来说显得有点臭名昭著,这与2014年的情况完全相反,当时Node.js被认为是一个“包含一切”的框架。而到了现在,大多数开发者根本不会将Node视为一个框架。所有的受访者都希望工具能够得到简化,配置项更少一些,并提供更好的文档。

读者有必要了解一下我们的“Registry份额”指标:“平面”图表示强劲的增长,但不是相对于Registry的增长,因为Registry总是增长得非常快。

React的增长放缓

\"\"

React继续主宰Web开发领域。超过60%的受访者表示他们正在使用React。不过,2018年的增长速度低于2017年。

Angular的下载量趋于平稳

\"\"

Angular的市场份额基本保持不变。

Ember的受欢迎程度有所回升

\"\"

Ember的受欢迎程度先是下降,然后强劲反弹,这是一个非常不寻常的现象。截至今年9月,使用Ember的开发者数量是年初的两倍多。npm将密切关注这个现象,不过npm认为,Ember的复苏可以用来解释为什么React增长放缓。

Vue继续强劲增长

\"\"

Vue增长迅速,增长势头在2018年继续。很多Vue用户说他们之所以选择Vue而不是React,是因为他们认为在保持可扩展性的同时更容易上手。npm认为,React的增长速度放缓是因为很多新用户选择了Vue。

GraphQL继续高速增长

\"\"

GraphQL的受欢迎程度继续爆棚,npm认为它将成为2019年的一股强大的技术力量。

Babel和TypeScript

\"\"

React用户对Babel都很熟悉,他们用它将React的下一代JavaScript转换为当前受支持的JavaScript。65%的npm用户表示在使用Babel,与React的60%市场份额几乎保持一致。

不过,令人感到惊讶的是TypeScript,46%的受访者表示他们使用微软的TypeScript,可能标志着开发者编写JavaScript的方式发生了巨大变化。npm表示他们肯定会在下一版本的问卷调查中问到更多有关TypeScript的使用情况。

npm对2019年的预测

对像JavaScript如此庞大、多变和快速变化的生态系统做出预测是很难的,不过基于npm的数据,我们还是能够对2019年做出一些具有一定说服力的预测。

1.你将放弃当前使用的某些工具。JavaScript生态系统中的框架和工具不会长存。一般的框架具有3到5年的流行期,随后几年随着进入应用程序的进入维护期,框架的流行度缓慢下降,然后转向新的框架。所以,准备好学习新的框架,而不是紧紧地抓住当前的工具不放。

2.尽管增长放缓,React仍然将成为2019年的主导框架。一个Web框架能够占据60%的市场份额是闻所未闻的,部分原因是因为React不是一个完整的框架,它只是一个核心,因为可以灵活地覆盖更多的用例。2019年,为了能够构建Web应用程序,更多人将使用React,这将在教程、建议和错误修复方面带来巨大优势。

3.你需要学习GraphQL。将GraphQL投入生产环境可能为时尚早,但2019年你应该要考虑了解GraphQL概念,因为很有可能在2019年晚些时候或2020年的新项目中使用它。

4.你的团队将会引入TypeScript。46%的采用率意味着TypeScript不仅仅是爱好者的工具,它的类型安全将带来真正的价值,特别是如果你所在的团队是个大团队,那么请考虑在2019年的项目中采用TypeScript。

英文原文:
https://blog.npmjs.org/post/180868064080/this-year-in-javascript-2018-in-review-and-npms

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值