你知道 JavaScript 的现状吗?你知道 JavaScript 中哪些库最受欢迎吗?你知道使用哪些库的开发者工资最高吗?(国外的工资看了引人严重不适,已经去掉了)
最近 JS 开发团队对前端到后端相关的主题向全世界超过 28000 名开发者提出了的 100 多个问题进行问卷调查,现在我们在这里和大家分享这个调查结果,相信大家看完全文会对 JavaScript 有自己的思考。
当谈论 JavaScript 时,你不仅仅是在谈论单一的语言,而是要明白这是一系列的工具类型汇集到同一个目标,虽然 ES6 现在已经是一个行之有效的标准,但是仍然需要推广,TypeScript 的崛起可能会对其产生挑战,而 TypeScript 正迅速成为 JavaScript 领域的领导者。
根据对 JavaScript 的语言使用情况调查,发现使用人数 top5 从大到小的顺序为:ES6>原生 JavaScript(ES5)> TypeScript>Flow>Elm>ClojureScript>Reason,虽然 ES5 的使用率很高,但是我们注意到它的满意度很低,将近有一半使用过它的开发者表示不会再用,而 Tyscrip 由于正在使用和对其有兴趣的开发者较多,在今后可能会进一步发展,正如上文说,它可能会对 ES6 的地位造成威胁。
而根据调查,开发者对这些库打了 4 分(5 分制,下同),说明无论多么冷门(没错,我说的就是你,Reason!),开发者对自己使用的语言还是很满意。
根据对中美对这些库的使用率和世界平均水平进行对比,发现中国开发者更倾向使用 ES6 和 Flow,而美国开发者更偏好 ES5。(猜测可能是调查偏差,参与这个调查的国人平均水平较高)
JavaScript 上的斗争主要是由前端框架主导的,使用量 top5(从高到低)为:React、Angular 1、Vue.JS、Angular 2、Backbone,其中,React 仍然是这方面的主要玩家,Vue 发展很迅猛,已经超越 Angular 2 成为了使用量第三高的框架,Vue 在 Angular 的流行度下降之后获得了巨大的收益 ,也许到了明年,这张图表会变得很不一样。(另外, 其实还有很多勇士不用任何框架!)
再来看各个框架在中美的使用情况,可以发现 Vue 在中国的使用率远高于世界平均水平的,包括阿里巴巴和百度在内的公司都在使用 Vue,据 Vue 的作者尤雨溪的说法:“Vue 有非常完备的中文文档,所以大大促进了 Vue 在中国的应用。”
最后,开发者对这些库整体打了 3.8 分(5 分制)。
除了上面的主要框架,还有其他一些在前端领域使用量较少的框架,排在前三的是 Preact、Elm 和 Knockout,前阵子 React 闹专利纠纷时,很多人鼓吹 Preact 作为 React 的开源替代产品,这个库拥有最轻量级的框架和最优秀的性能,使其成为 React 的诱人替代品。
状态管理重组了客户端和服务器上数据管理的解决方案,在客户端上,Redux 仍然是无可争议的领导者,但是 GraphQL 的兴起可能会动摇 REST API 的地位,它产生的巨大吸引力可能会在不久的将来推动 Relay Modern 和 Apollo 等库的发展。
调查结果显示,美国对这些库的使用率和世界平均水平相差不大,而中国则有很大差异,Redux 和 MobX 相对而言在中国更受欢迎。(Firebase 在中国能用?这不科学!)
开发人员对这些库的总体打分为 3.5 分。
在被提及的其他状态管理库中,各种库的使用量都不算高,呈两级分化模式,VueX 作为 Vue 的官方库,使用量这么高无可厚非,MongoDB 则因为 JSON 通用的原因非常受前端开发者欢迎。除了 VueX 和 MongoDB,其他的基本都在 100 以下,说明开发者使用的状态管理库集中度比较高,用的基本都是主流的那几种库。
不放这么大 VueX 都看不见了。
在后端上,使用量排在前三的的是 Express、Koa 和 Meteor,但很明显,Express 几乎是处于霸主地位,能够与 Express 竞争的很少,Koa 虽然号称要取代 Express,但目前还待发展。另外,尽管多年来 Moteor 也一直在发展,但可惜的是,我们似乎还并不能充分利用它。据调查,开发者对这些库的整体打分为 3.5 分(5 分制)。
根据对中美开发者的调查对比发现,中国开发者相对其他国家来说十分偏爱 Koa,但 Exprss 的使用率是却远低于世界平均水平。(国内几个后端框架不约而同选择了 Koa 作为其核心引擎,走在世界前列,给它们点个赞!)
在语言和环境的排名中,数据相差不大,最高的 Node.js 使用量也不过一百多,看到这么多人选择.NET,微软欣慰的一笑。(国外的基准了)
Express 胖到不行。
和 Javascript 界的其他领域一样,测试领域的竞争也很激烈,版本更新快,功能和性能常被拿来做比较,框架之间的“战争”也是水深火热,根据上图,毫无疑问,Mocha 和 Jasmine 现在是测试领域主流的框架,但同时 Jest 和 Enzyme 也从测试封装工具中脱颖而出,获得了非常高的评价,未来可期。
调查结果显示,中国在 Jest、Ava 和 Mocha 的使用量是高于世界水平的,Jasmine 低于世界平均水平,相反,美国开发者却比较偏好 Jasmine。最后开发者对这些库打了 3.2 分,相对其他领域的库来说,分数较低。
前几名为 Karma、Qunit、Chai。
前几名不分胜负了。
在新的 CSS-in-JS 方法如样式组件中已经做了很多的工作,尤其是在 React 生态系统中。但是结果显示,目前开发者仍然更信赖如 SASS/SCSS、纯 CSS 这些主流方法的安全性。
上图显示,在 CSS 对各种库的使用上都是与世界平均水平相接近的,但是中国几乎在每一种库上都和世界平均水平存在差异:中国开发者更偏爱 LESS,在 SASS/SCSS 上却远低于世界平均水平。
同时,开发者对这些库打了 3.8 分。
在 CSS 领域,除了上面主流的几种库,其他的小众类型库的使用量也不低,尤其是 PostCSS、Bulma 和 semantic UI。(某大佬向我安利了好几波 PostCSS)
除了 NPM 之外,Webpack 仍然是构建工具的王者,这无疑是 Create-React-App 和 Next.js 这样的已经帮你把配置写好的 Webpack 封装工具的使用量上升导致的。这也可能是把双刃剑:如果有更好的选择,这些库会毫不迟疑地转向它。(我没有在说 Parcel,嗯!)
除了 Webpack,在其他几种主流库上,中美和世界平均水平差异不大。
同时,开发者对这些库打了 3.7 分。
由图易知,在其它工具的使用中,开发者基本上用的是 yarn,实际上我觉得可以把它列入主流了,甩开其它非主流太远了。
PhoneGap/Cordova 的使用率高,但满意度很低,这绝对不是好兆头。React Native 最终可能会破坏当前的顺序,而且不管怎么样,原生 App 总会是最可靠的解决方案。
然而,中国的开发者比较倾向于选择 Electron 和 React Native,美国开发者却喜欢原生应用。(感觉又是调查偏差)
在移动开发领域,在其他非主流型的库中,PWA、Weex、nw.js 排名前三,他们各自的特点在这里就不详说了,PWA 还有 iOS 这块骨头要啃,Weex 仍需努力,nw.js 自从被英特尔收购,一下子连布道它的文章都没了,这是什么现象?
以下是不太适合放在以上类别里的库。
在包管理工具中,开发者主要用的 Yarn、npm 和 Bower,在这里 yarn 已经超过 npm 成为了王者,其原因是 Yarn 有很多 npm 没有的优点,主要表现在:Yarn 的速度较快,支持并行安装、支持离线模式和安装版本统一等,所以 Yarn 也被认为是为了弥补 npm 的缺陷而生。
报告显示 lodash 的使用量是远远高于其他库的,它的使用量甚至是 underscore 的 7 倍之多,而 4700 多名开发者表示仍然在使用 jQuery。
在文本编辑器方面,微软的 VS Code 使用量最高,其次是 Atom 和 Sublime Text,它们分别位居第 2 位和第 3 位。
在 Code Linters 上,基本上可以一枝独秀来形容 ESLint,不过 Prettier 也不容小觑,它的一大特点就是能够支持命令行、API 等多种形式调用,可以让团队保持代码风格一致,现在包括 React 在内的很多项目都已经开始使用了。
大部分人觉得是锦上添花的东西,没有也没啥。
代码拆分在某些场景还是很实用的。
Optimistic update,Metor 提出的理念,接受的人也不多。
现在用 Webpack 不配个保存自动刷新感觉跟上个世纪一样。
不明觉厉。
各种绑定,各种改这儿变那儿,最后还不是要各种监听,各种擦屁股。
很实用,但就怕删错了。
优雅降级的另一种说法,这个比例是如此对称,仿佛看到了正态分布。
Safari 已经支持 Service Worker 拉!
革命尚未成功,PWA 仍需努力。
有 81% 的受访者表示 JavaScript 正朝着正确的方向前进,仍有 57% 的受访者表示构建 JavaScript 应用过于复杂,不过有 82% 的受访者表示喜欢 JavaScript 构建应用,并有 65% 的受访者将 JavaScript 当成其主要编程语言。
在这个调查中,我们提到的的每个库和工具都可以进一步细分为插件、安装包和其他扩展的列表。
我们还可以用已有的数据做更多的事情,例如,我们还没有分析哪些应用程序功能可以发挥最大价值,以及开发者对开发语言现状的看法,我们将在未来几周内处理这些结果。
总而言之,我们的结论和去年一样:JavaScript 在不断地改进和发展中,这足够令人兴奋,因为你知道学习 JavaScript 永远不会让你感到无聊!
那未来会怎么样呢?JavaScript 会成为主流吗?GraphQL 真的会接管世界吗?JavaScript、Reason 或 Elm 会成为默认的编程方式吗?只用一种方法可以找到答案:明年的年终调查——《2018 JS 生态分析》。
「前端之巅」是 InfoQ 旗下关注前端技术的垂直社群,加入前端之巅学习群请关注「前端之巅」公众号后回复 “ 加群 ”。投稿请发邮件到 editors@cn.infoq.com,注明 “ 前端之巅投稿 ”。
活动推荐:
2018 年 1 月 13-14,AICon 将于北京盛大开幕,InfoQ 中国团队为大家梳理了目前机器学习领域的最新动态,并邀请到了来自 Google、Amazon、Snap、Etsy、BAT、360、小米、京东等 40+ 公司 AI 技术负责人前来分享他们的落地实践经验。相约 2018 年最值得期待的 AI 与机器学习技术盛宴,赶紧上车!目前大会倒计时 10 天进行中,更多精彩可点击“阅读原文”详细了解!有任何问题,敬请咨询票务经理豆包,电话:18514549229,微信:18514549229,QQ:209463896