这是一篇长篇调查报告,限于篇幅分为三次推送,今天推送上篇。


目录

  • 介绍

  • 统计样本

  • 关联度

  • JavaScript特色

    • 总揽

    • ES6

    • TypeScript

    • Flow

    • Reason

    • Elm

    • ClojureScript

    • 其它
  • 结论

  • 前端框架

  • 数据层

  • 后端框架

  • 测试

  • 移动和桌面

  • 其他工具

  • 意见

  • 奖项

  • 结论

介绍

JavaScript一直都在不停的变化。源源不断的产生新的库、框架、语法……探索这些是充满乐趣的,不过也会使人感到压力。

这就是“JavaScript状态调查”的用武之地:今年我们调查了超过20,000名JavaScript开发人员,以确定他们正在使用什么,对什么感到满意,以及他们想要学习什么。调查结果是一系列独特的统计数据和见解,希望这些能够帮你在JavaScript生态系统中实现自己的目标。

如果想要了解更多有关今年新功能的信息,请查看我们网站的公告了解更多详情。

资源

我们认为很多人都想查看这项调查的结果,来帮助自己找到接下来要学习的内容。因此,我们在整个调查过程中都包含了相关资源的链接,以帮你指明正确的方向。

披露:其中一些是付费赞助,我们对这些高质量项目资源的支持表示感谢和尊重。

团队

JavaScript状态调查由以下人员创建和维护:

  • Sacha Greif(作者):设计,写作,编码

  • Raphael Benitte:数据分析,可视化

  • Michael Rambeau:写作,补充统计数据

最后请关注我的React/GraphQL JavaScript框架 Vulcan.js(http://vulcanjs.org/),Raphael的React数据可视化库 Nivo.js (https://nivo.rocks/)以及 Michael 的 JavaScript 库目录 Best of JS(https://bestofjs.org/)。

其它资源

  • State of JavaScript Homepage(https://stateofjs.com/)

  • 2016(https://2016.stateofjs.com/)

  • 2017(https://2017.stateofjs.com/)

现在,让我们来看看今年的JavaScript是什么!

统计样本

今年我们统计了153个不同国家的开发商。 虽然美国有24%的受访者,在调查中占主导地位,但德国和澳大利亚的代表性也很高,受访者的比例超过5%。

注意:使我们的调查能够覆盖更广泛,具有更多国际受众的一个前提是用多种语言翻译调查问卷和调查结果。 如果你可以提供帮助,请通过github项目中的issues告诉我们!(https://github.com/StateOfJS/StateOfJS/issues/87)

参与国家

工资水平

每个国家的平均工资

工作经验年限

公司规模

性别构成

关 联

有多少React用户也使用Redux? GraphQL粉也喜欢Jest吗? Express开发人员也加入了Ember吗?

每个部分的大小对应于使用每个库并愿意再次使用它的受访者的数量。

技术之间的联系

JavaScript特色 - 概述

随着JavaScript的成熟,开发人员开始越过其边界,创建各种语言和方言,并转译为JavaScript。

总体结果

总体JavaScript特色结果。

薪资细分

对于给定选项选择“使用它,并将再次使用”的开发人员的工资细分。

每个单元格显示给定工资范围内的用户百分比,较暗表示较高的使用率。

公司规模细分

针对特定选项选择“使用它,并将再次使用”的开发人员的公司规模细分。

每个单元格显示给定公司大小范围内的用户百分比,较暗表示较高的使用率。

工作经验年限细分

对于选择“使用它,并将再次使用”的开发人员,对于给定选项的工作经验年限细分。

每个单元格显示给定年份经验范围内的用户百分比,较暗表示较高的使用率。

整体满意度

在一分(非常不满意)到五分(非常满意)的范围内,开发人员的整体满意度如何?

ES6

ES6及其后续版本是JavaScript的新版本,通常通过Babel运行。

ES6随时间的流行度

ES6最受欢迎的特性

大多数开发者喜欢并选择“使用它并将再次使用”的ES6特性。

ES6最不受欢迎的方面

开发人员不喜欢并选择“使用过并且不会再次使用”的ES6特性。

哪些工具与ES6一起使用?

用于ES6的开发人员使用的库。 颜色越深意味着相关性越强。

ES6的国家使用情况

平均而言,85.9%的受访者使用过ES6,并愿意再次使用它。

比率较高的国家和地区显示为红色,较低的国家/地区显示为蓝色(调查受访者总数少于20的国家和地区将被省略)。

TypeScript

GitHub 41k start
TypeScript是JavaScript的超集,可转译为JavaScript。

TypeScript随时间的流行度

TypeScript最受喜欢的方面

TypeScript最不受欢迎的方面

哪些工具与TypeScript一起使用?

使用TypeScript的国家情况

平均而言,46.5%的受访者使用过TypeScript,并乐于再次使用它。

比率较高的国家和地区显示为红色,较低的国家/地区显示为蓝色(调查受访者总数少于20的国家和地区将被省略)。

Flow


GitHub 18k start
向JavaScript添加静态类型以提高开发人员的工作效率和代码质量。

Flow 随时间的流行度

vFlow 最受喜欢的方面

vFlow 最不受欢迎的方面

v哪些工具与 Flow 一起使用?

v使用 Flow 的国家情况

平均而言,10.2%的受访者使用过 Flow ,并乐于再次使用它。

比率较高的国家和地区显示为红色,较低的国家/地区显示为蓝色(调查受访者总数少于20的国家和地区将被省略)。

Reason

GitHub 6.7k start
简单,快速和类型安全的代码,利用JavaScript和OCaml生态系统

Reason 随时间的流行度

Reason 最受喜欢的方面

Reason 最不受欢迎的方面

哪些工具与 Reason 一起使用?

使用 Reason 的国家情况

平均而言,5.5%的受访者使用过 Reason ,并乐于再次使用它。

比率较高的国家和地区显示为红色,较低的国家/地区显示为蓝色(调查受访者总数少于20的国家和地区将被省略)。

Elm

GitHub 4.9k start
一种可靠的webapps的功能语言。

Elm 随时间的流行度

Elm 最受喜欢的方面

Elm 最不受欢迎的方面

哪些工具与 Elm 一起使用?

使用 Elm 的国家情况

平均而言,4.3%的受访者使用过 Elm ,并乐于再次使用它。

比率较高的国家和地区显示为红色,较低的国家/地区显示为蓝色(调查受访者总数少于20的国家和地区将被省略)。

ClojureScript

GitHub 7.9k start
一种可靠的webapps的功能语言。

ClojureScript 随时间的流行度

ClojureScript 最受喜欢的方面

ClojureScript 最不受欢迎的方面

哪些工具与 ClojureScript 一起使用?

使用 ClojureScript 的国家情况

平均而言,2.3%的受访者使用过 ClojureScript ,并乐于再次使用它。

比率较高的国家和地区显示为红色,较低的国家/地区显示为蓝色(调查受访者总数少于20的国家和地区将被省略)。

其它

调查受访者提到的其他答案,按提及计数排名。

结论

象限图

此图表显示了每种技术的满意度与其总使用量之比。

ASSESS(评估):低使用率,高满意度。 技术值得关注。

ADOPT(采用):高使用率,高满意度。 采用安全技术。

AVOID(避免):低使用率,低满意度。 技术目前最好避免。

ANALYZE(分析):高使用率,低满意度。 如果您正在使用这些技术,请重新评估这些技术。

结论
使用可以编译成JavaScript的语言,或者语言变体编写代码的想法现在看起来很火,但很容易忽略它的真实情况。

在很长的时间里,CoffeeScript是该策略的唯一支持者,但今天它已被ES6及其后续版本TypeScript,Flow,甚至是具有不同语法的语言(如Elm和Reason)所取代。

有充分的理由认为这是整个JavaScript的未来。 随着像Web Assembly这样的项目到达现场,直接在JavaScript中编写代码可能很快就会变得古怪,因为开发人员会使用像Rust这样的语言。

但在那之前,这里的两位大赢家是ES6和TypeScript。 要密切关注Reason,它得到了Facebook的支持,并且拥有非常高的满意度和关注度。

©著作权归作者所有:来自51CTO博客作者mb5ff980b461ced的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 根据网址上的国家/地区将用户重定向到正确的数据库,我使用i18n fo
  2. 世界国家 的数据库sql

随机推荐

  1. 【android】通过handle,looper实现多线程
  2. Android(安卓)联系人按中文拼音排序
  3. Android标题栏各种设置
  4. Android FrameLayout的显示效果
  5. Dagger2在Android studio中的配置与简单
  6. android 一些小功能实现
  7. 跑马灯效果
  8. 编译cubieboard android 源码过程详解之(
  9. android 模拟器常用命令
  10. Android实现启动页停留几秒然后自动跳转