微信号:frontshow

介绍:关注前端发展,分享一线技术.不断学习,不断进步,登上前端之巅!

2017 JavaScript生态圈调查报告

2018-01-02 22:11 覃云
我们的周报作者阿熊说他去结婚了,所以本周没有周报了。好吧,祝他新婚快乐,百年好合!~

你知道 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 ModernApollo 等库的发展。

中美对各个库的使用率对比

调查结果显示,美国对这些库的使用率和世界平均水平相差不大,而中国则有很大差异,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 库与工具

在新的 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

在 Code Linters 上,基本上可以一枝独秀来形容 ESLint,不过 Prettier 也不容小觑,它的一大特点就是能够支持命令行、API 等多种形式调用,可以让团队保持代码风格一致,现在包括 React 在内的很多项目都已经开始使用了。

开发者在 JavaScript 应用程序中最看重哪些功能?
服务端渲染

大部分人觉得是锦上添花的东西,没有也没啥。

代码拆分

代码拆分在某些场景还是很实用的。

积极的界面更新

Optimistic update,Metor 提出的理念,接受的人也不多。

热模块重载

现在用 Webpack 不配个保存自动刷新感觉跟上个世纪一样。

Time-Travel 调试

不明觉厉。

实时特性

各种绑定,各种改这儿变那儿,最后还不是要各种监听,各种擦屁股。

消除无用代码

很实用,但就怕删错了。

渐进式增强

优雅降级的另一种说法,这个比例是如此对称,仿佛看到了正态分布。

Service Workers

Safari 已经支持 Service Worker 拉!

离线使用

革命尚未成功,PWA 仍需努力。

开发者对 JavaScript 的看法

有 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

 
前端之巅 更多文章 现在的JavaScript框架教程 利用Webpack插件进行前端code-splitting 前端每周清单: Safari支持Service Worker, 2017 前端大事件 浏览器user-agent简史 Safari支持Service Worker了!
猜您喜欢 惠普(HPE)裁员从CEO开始——惠特曼裁员5000后宣布辞职 不懂技术的人不要对懂技术的人说这很容易实现 运用点线面做好设计(二) Ctrip·Tech——架构师一席谈(3)把异步架构延伸到客户端 亲历亚马逊早期岁月 | Early Amazon: boy-am-i-hard-to-please