深度解读 2018 JavaScript 趋势报告(含视频)

avatar
花呗借呗前端团队 @蚂蚁集团

原文作者:UC 国际研发 Randy


写在最前:欢迎你来到“UC国际技术”公众号,我们将为大家提供与客户端、服务端、算法、测试、数据、前端等相关的高质量技术文章,不限于原创与翻译。


好像掘金不能发布视频,那就贴上 B 站链接🔗叭~

http://www.bilibili.com/video/av36543409


文字版

Hello 我是 Randy. 🤣今天在这个视频里,我要带大家一起看看 The State of JavaScript 2018 的调查结果。

The State of JavaScript 是一个由 Raphaël Benitte Sacha Greif, 以及 Michael Rambeau 从 2016 年开始每年都会发起的一个针对 JavaScript 开发者的调查。调查包括对 JavaScript 社区整体走向的满意度、对流行的框架或技术的评价、JavaScript 程序员的薪资情况等等一系列问题。每年都在年底提前几个月开放调查问卷,然后在新年之前以数据可视化的形式,公布调查结果。

你可以在 https://stateofjs.com/ 上浏览今年以及往年的调查结果。

今年(2018 年)一共有两万多人参加了这次的调查,值得留意的是,这两万人当中,参与人数最多的国家是美国 🇺🇸,总共有 4929 个。而参与调查的中国 🇨🇳开发者只有 75 个。本人就是这 75 人之中的其中一个。

所以,我建议看到这次调查的中国开发者,下一年也参与其中。你可以在 stateofjs.com 的首页上,填写你的 Email 地址,下一年开始接受问卷填写时,就会收到邮件通知啦💡。


接下来我不会把所有调查结果逐个讲,而是只讲我个人认为比较有意思的那一部分。

这些编译到 JS 的语言,不算 ES6, 综合来看,TypeScript 是最受欢迎的。最多人表示会再次使用,也最多人表示愿意去学习他。而和 TypeScript 同样为 JS 增加类型检查的 Flow, 就显得不是那么多人愿意去学他,也许大部分人会认为 TypeScript 是更好的选择,而且 TypeScript 不仅仅只有类型检查。

令我意外的是,很多人没有听说过 Reason. 但 Reason 在这次调查中,被认为是最有潜力的。我认为 Reason 借助强大成熟的 OCaml 🐫, 以及对 JS 程序员友好的语法,是值得被更多人使用的。我相信当前端社区越来越接受函数式编程的时候,Reason 会和 TypeScript 一样成功。

大多数人没有兴趣去学习 CloujureScript. 有趣的是,喜欢 cljs 的人最喜欢的是它的代码风格,而不喜欢它的人,最不喜欢的也是它的代码风格。

至于前端框架,毋庸置疑,最流行的是 React. 但很多人也愿意去学 Vue. 最惨的是 Angular, 相当多的人表示不想再使用他,并且不想再用他的人在逐年增加。而大家不喜欢他的原因主要是太臃肿,太复杂。


至于状态管理,Redux 依然有大量的用户。GraphQL 和 Apollo 虽然用户不算太多,但有非常多的人想要学。

值得注意的是,Vue 官方的状态管理工具 VueX 也被很多人提到。大概是因为用 Vue 的人都是用 VueX 来做状态管理。

在后端,Express 依然是最多人的选择,最大的原因是他本身已经做了很多预设,开发的时候很省心。至于 Next.js, 相信已经是做 React 服务器端渲染的首选框架。

在测试工具的对比当中,Jest 和 Mocha ☕️可谓是平分秋色,但 Jest 的上升趋势十分惊人。选择 Jest 的原因是不用任何配置,你就可以用 Jest 做测试和断言。而且通过官方的文档,你几乎可以很清楚地学会怎么在各种各样的场景里面使用 Jest 对你的程序进行测试。

我个人测试 React 程序的时候,也喜欢用 Jest 配合 Enzyme.


至于用 JS 来写手机应用和桌面程序,Electron 和 React Native 毫无悬念是最多的人的选择。对 Electron 的批评主要是性能差和臃肿,毕竟一个 Electron 打包的应用 gzip 后也有 50 多 MB. 根据调查结果来看,React Native 比其它 JS 开发手机应用的方案优胜的地方在于丰富的生态,和使用 React 的优势。但他实在是太 buggy 了。Airbnb 曾经也是 React Native 的重度使用者,但在早前也在博客称计划放弃 React Native 以及放弃的原因. 我会把链接放在视频的简介里。

我推荐大家关注 Carlo 和 Flutter. Carlo 基于 puppeteer, 可以运行在装有 Chrome 的电脑,是替代 Electron 的一个不错的选择。Flutter 使用 Dart 编译成原生代码,如果你不介意使用 Dart, 那么不妨试试他。在国内,闲鱼也在一部份的页面实践了 Flutter.


最后是开发工具,VS Code 可以说是超高票数绝对领先于其它编辑器,远远高于 Sublime Text 和 Atom. 我自己也是从 Sublime Text 转到 VS Code 的,因为 VS Code 既像编辑器那么轻量,又有 IDE 一样强大的功能。

总的来说,大家都认为 JS 社区在往正确的方向走,很多人也愿意使用 JS 作为自己的主力语言。事实上我在这个问题上是投了 disagree 的。因为我觉得 使用 JS 编写严肃的、大规模的应用是很危险的,我更愿意选择用 TypeScript 或者 Reason 作为主力语言。


我个人认为 2019 年前端社区会流行的技术有两个,一个是 GraphQL, 因为使用 GraphQL 写 CRUD 应用的时候,配合 Apollo 🚀可以降低很多工作量。如果大家对 GraphQL 和 Apollo 有兴趣,不妨读一读我的这篇文章,你会对他们有个大概的印象。另一个是 React Hooks. React Hooks 可以让你把状态逻辑独立于你的组件,复用给其它的组件。这样一来,基于 React Hooks 可以建立起一个新的 React 生态。


这就是本次视频的所有内容,喜欢这个节目的朋友不妨把它分享出去,顺便点个关注和赞哦!欢迎留言讨论。


>> 相关链接 <<


高效的 GraphQL:

https://gist.github.com/djyde/955aa3f8f46116d648d44a743970b089


React Native at Airbnb:

https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c


好文推荐:

2018 JavaScript 趋势报告来啦!


“UC国际技术”致力于与你共享高质量的技术文章

欢迎关注我们的公众号、将文章分享给你的好友