本文由码农网– 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划!
又快到年底了,我们关于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比我预期的更受欢迎,我期待明年可以再次举行一个类似的调查。并且希望可以为大家呈现一个更加多样化更公平公正的结果。
如果这个调查有什么不尽人意之处,欢迎指正。