最详细的 JavaScript 开发者调查报告

简介:

又快到年底了,我们关于JavaScript开发者的调查也已经结束。本次调查收到的答复超过预期。我很高兴能与大家分享成果!

答复超过5000,准确的说是5350,我已经迫不及待地想要分享调查的详细内容了。不过,在此之前,我要感谢各位的参与,这是JavaScript社区的一个伟大时刻,让我们一起期待吧!

我没有预料到会得到这么激烈的回应,下一次我会做一些改进。也就是说,我会先把调查放到GitHub上,这样社区就可以启动调查之前,用几个星期的时间来集合相关的问题和选项。这样一来,就可以产出更精确的结果,并避免类似“我很惊讶你居然没有包括Emacs!”的抱怨。

下面,轮到调查结果了。在公布结果的时候我会保持公正,以便于大家自己得出没有偏见的结论。

1.你写的是什么类型的JavaScript?

97.4%的受调查者编写适用于Web浏览器的JavaScript,这些人中的37%同时还写移动Web应用程序。超过3000人——大概 56.6%——编写服务器端的JavaScript。在这些人中,5.5%的人在某种嵌入式环境使用JavaScript,如Tessel或 Raspberry Pi。

一些参与者说他们在其他一些地方使用JavaScript,比较明显地是在开发CLI和桌面应用程序的时候。有几个还提到Pebble 和Apple TV。这些都被划分在Other类中,占了2.2%的投票。

2.你在哪里使用JavaScript?

不出所料,94.9%的投票者在工作中使用JavaScript。不过,统计中还有很大一部分——82.3%——在业余项目中也用JavaScript。其他的回复包括教学和学习,因为兴趣,或为非营利组织。

3.你写JavaScript有多久了?

超过33%的受调查者已经写了超过6年的JavaScript代码。此外,5.2%在一年前开始写JavaScript,12.4%两年前,15.1%三年前。也就是说有32.7%的人是近年来才开始写JavaScript的。

4.你使用哪种编译到JavaScript的语言?

85%的人答复说他们编译ES6到ES5。同时15%仍然使用CoffeeScript,15.2%使用TypeScript,还有少得可怜的1.1%使用Dart。

这是其中一个我希望能够有更多人参与合作的问题,因为有13.8%选择了“Other”的回答。在这13.8%中,绝大多数的答案是ClojureScript,elm,Flow和JSX。

5.你更喜欢什么JavaScript格式选择?

绝大多数投票的JavaScript开发人员似乎更喜欢分号,达到79.9%。与此相反,11%的人表示他们不喜欢使用分号。说到逗号,44.9% 的人赞成用在表达式后面,而4.9%的人希望使用逗号优先的语法。还有空格缩进,65.5%的人喜欢空格键,而29.1%更愿意使用tab。

6.你使用哪种ES5特性?

在79.2%的受调查者赞同函数的Array方法的同时,76.3%的人表示他们使用的是strict mode,30%采用Object.create,使用getter and setters的只有28%。

7.你使用哪种ES6特性?

值得注意的是,箭头功能是本次调查中最常用的ES6特性:79.6%。使用Let和const关键字的有77.8%,promise也很强劲,为 74.4%。不出所料,只有4%的受访者使用proxies。只有13.1%的用户表示他们使用的是symbols,超过30%的人说他们使用 iterators。

8.你是否写测试?

虽然有21.7%表示从来不写任何测试,但大多数人都写过一些测试,34.8%时常在写测试。

9.你是否运行连续集成测试?

CI也是如此,虽然不使用CI服务器的人更多——超过40%。近60%的受访者至少偶尔使用CI,其中32%时常在CI服务器上运行测试。

10.你如何运行测试?

59%喜欢用PhantomJS或类似运行自动化的浏览器测试,51.3%喜欢在web浏览器上执行手动测试。服务器端的自动化测试收获了53.5%的得票率。

11.你使用什么单元测试库?

似乎大多数受访者倾向于要么Mocha要么Jasmine来运行JavaScript测试,而Tape得到了9.8%的投票。

12.你使用什么代码质量工具?

似乎受调查者要么选ESLint,要么在JSHint阵营,但JSLint经过这么多年之后意外强劲,有近30%。

13.你怎么处理客户端的依赖?

npm以60%的投票成为了客户端依赖管理体系的首选。Bower依然有20%的份额,而旧的<script>下载和插入只有13.7%。

14.你的首选构建脚本解决方案是什么?

构建工具的选择不同,部分原因是因为选择多。Gulp最流行,投票超过40%。紧随其后的是npm run,为27.8%,而Grunt得到了18.5%的认可。

15.你首选的JavaScript模块加载工具是什么?

当前,似乎大多数人都在Browserify和Webpack之间犹豫不决,而后者领先前者近7个点。29%的用户表示,他们首选使用Babel模块,不过在此之前可以推测的是使用了上述两种工具中一种来一块打包自己的模块。

16.你使用什么库?

这是可从协作编辑中受益良多的问题之一。 jQuery依然强劲,得票50%以上。大部分JavaScript开发人员投给了Lodash或underscore,而xhr 微库只有8%的投票。

17.你使用什么框架?

毫不奇怪,React和Angular会领先群雄。Backbone位列第三,为22.8%。

18.你使用ES6的频率

在这个问题上大家的分歧很大,有近20%的人从未使用过ES6,只用ES6的人超过10%,接近30%的人皆有涉猎,近40%偶尔使用。

19.你知道ES2016会发生什么吗?

粗略地说,有一半的受调查者不知道什么ES2016会发生什么,而另一半则有所耳闻。

20.你理解ES6吗?

超过60%的受调查者了解基础知识,10%的人不知道ES6,还有超过25%的人认为他们相当了解ES6。

21.你是否认为ES6改善提高了?

近95%的受调查者认为ES6对语言进行了改进。

22.你的的首选文本编辑器是什么?

同样又有分歧。超过一半的受调查者喜欢Sublime Text,超过30%喜欢使用Atom,它的开源复制品。超过25%的受调查者支持WebStorm,支持vi / vim的也超过25%。

23.你的首选开发操作系统是什么?

超过60%的投票者使用的是Mac,而Linux和Windows的用户都接近于20%。

24.你如何找到可重用的代码、库和工具?

受调查者似乎更喜欢GitHub和搜索引擎,不过通过博客、Twitter和npm网站的也不少。

25.你是否参加JavaScript社交活动?

近60%的人至少参加过一次会议,而74%的人表示,他们喜欢参加聚会。

26.你的JavaScript应用程序支持什么浏览器?

答案五花八门,但幸运的是大多数人表示不在IE6上处理客户了。

27.你定期了解JavaScript的最新功能吗?

对于最新的JavaScript功能,大约有80%的受调查者会试着并保持最新的资讯。

28.你在哪里了解最新的JavaScript功能?

不出所料,一流的Mozilla Developer Network是获取JavaScript文档和新闻方面的领头羊。JavaScript Weekly,也是一个新闻和文章的来源,受近40%的受访者的欢迎。

29.你听说过哪些特性?

超过85%的投票者听说过ServiceWorker,不过我很想知道有多少人真正用过它!

30.除了JavaScript,你主要使用什么语言?

语言太多了,而且我肯定遗漏了一些,但是结果已经尽在不言中。

Thanks!

最后,我要感谢大家的参与。JavaScript比我预期的更受欢迎,我期待明年可以再次举行一个类似的调查。并且希望可以为大家呈现一个更加多样化更公平公正的结果。

如果这个调查有什么不尽人意之处,欢迎指正。


作者:小峰

来源:51CTO

相关文章
|
6月前
|
JSON JavaScript 前端开发
掌握 JavaScript:从初学者到高级开发者的完整指南之JavaScript对象(二)
掌握 JavaScript:从初学者到高级开发者的完整指南之JavaScript对象(二)
|
3月前
|
运维 JavaScript Serverless
Serverless革命:一键上云,Egg.js开发者的超级加速器!
【8月更文挑战第8天】本教程介绍如何结合Egg.js与Serverless技术简化Web应用部署。首先确保已安装Node.js及npm,并使用`egg-init`脚手架创建新应用。接着添加`egg-serverless`插件支持Serverless部署,编写基本的应用代码及路由规则。通过配置`fc.yml`文件集成阿里云Function Compute作为Serverless平台,并借助`@alicloud/fun`工具完成部署。最后,通过部署生成的URL验证应用是否成功上线。采用Serverless架构,开发者可以专注于业务逻辑,大幅提高部署效率和资源利用。
56 5
|
3月前
|
JavaScript 前端开发 测试技术
Vue.js开发者必看!Vue Test Utils携手端到端测试,打造无懈可击的应用体验,引领前端测试新风尚!
【8月更文挑战第30天】随着Vue.js的普及,构建可靠的Vue应用至关重要。测试不仅能确保应用质量,还能提升开发效率。Vue Test Utils作为官方测试库,方便进行单元测试,而结合端到端(E2E)测试,则能构建全面的测试体系,保障应用稳定性。本文将带你深入了解如何使用Vue Test Utils进行单元测试,通过具体示例展示如何测试组件行为;并通过Cypress进行E2E测试,确保整个应用流程的正确性。无论是单元测试还是E2E测试,都能显著提高Vue应用的质量,让你更加自信地交付高质量的应用。
66 0
|
3月前
|
JavaScript 开发者 UED
Vue.js组件库大对决:Element UI与Vuetify,开发者的罗密欧与朱丽叶!
【8月更文挑战第30天】Element UI和Vuetify是Vue.js开发中的热门组件库,前者简洁高效,后者遵循Material Design,国际化程度高。两者均提供丰富的组件支持,但Vuetify组件更多样,设计更灵活;Element UI在性能和中文支持上更优。文档方面,Element UI更直观易懂,而Vuetify配置灵活但学习成本稍高。选择时需综合考虑项目需求、团队背景及设计风格,以达到最佳开发效果。
171 0
|
5月前
|
JavaScript 前端开发 编译器
探讨TypeScript如何帮助JavaScript开发者避免这些常见错误,从而提高代码质量和开发效率
【6月更文挑战第13天】TypeScript,JavaScript的超集,通过添加静态类型检查和面向对象特性,帮助开发者避免常见错误,提升代码质量和开发效率。它能检测类型错误,防止运行时类型转变引发的问题;使用可选链和空值合并避免引用错误;通过枚举减少逻辑错误中的魔法数字;接口和泛型等特性提高代码可维护性。学习TypeScript对提升JavaScript开发质量有显著效果。
60 4
|
5月前
|
JavaScript Java 测试技术
基于ssm+vue.js+uniapp小程序的网上系统调查附带文章和源代码设计说明文档ppt
基于ssm+vue.js+uniapp小程序的网上系统调查附带文章和源代码设计说明文档ppt
21 0
|
6月前
|
JavaScript 前端开发 安全
【JavaScript与TypeScript技术专栏】TypeScript如何帮助JavaScript开发者避免常见错误
【4月更文挑战第30天】TypeScript,JavaScript的超集,通过静态类型检查和面向对象特性,帮助开发者避免类型错误、引用错误和逻辑错误,提升代码质量和可维护性。它引入类型注解、接口、可选链和空值合并,使代码更清晰、安全。对于大型项目,TypeScript的接口、类和泛型有助于代码结构化和模块化。学习TypeScript能提高JavaScript开发效率。
48 0
|
6月前
|
前端开发 JavaScript API
网页开发者必看!5种JS跳转页面技巧,提升用户交互体验
欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚开始学习前端的读者们打造的。无论你是初学者还是有一些基础的开发者,我们都会在这里为你提供一个系统而又亲切的学习平台。我们以问答形式更新,为大家呈现精选的前端知识点和最佳实践。通过深入浅出的解释概念,并提供实际案例和练习,让你逐步建立起一个扎实的基础。无论是HTML、CSS、JavaScript还是最新的前端框架和工具,我们都将为你提供丰富的内容和实用技巧,帮助你更好地理解并运用前端开发中的各种技术。
|
6月前
|
前端开发 JavaScript 安全
JavaScript 中的宿主对象和原生对象:开发者必知的基础知识(下)
JavaScript 中的宿主对象和原生对象:开发者必知的基础知识(下)
JavaScript 中的宿主对象和原生对象:开发者必知的基础知识(下)
|
6月前
|
XML 存储 JavaScript
JavaScript 中的宿主对象和原生对象:开发者必知的基础知识(上)
JavaScript 中的宿主对象和原生对象:开发者必知的基础知识(上)
JavaScript 中的宿主对象和原生对象:开发者必知的基础知识(上)