最詳細(xì)的 JavaScript 開發(fā)者調(diào)查報(bào)告
又快到年底了,我們關(guān)于JavaScript開發(fā)者的調(diào)查也已經(jīng)結(jié)束。本次調(diào)查收到的答復(fù)超過預(yù)期。我很高興能與大家分享成果!
答復(fù)超過5000,準(zhǔn)確的說是5350,我已經(jīng)迫不及待地想要分享調(diào)查的詳細(xì)內(nèi)容了。不過,在此之前,我要感謝各位的參與,這是JavaScript社區(qū)的一個(gè)偉大時(shí)刻,讓我們一起期待吧!
我沒有預(yù)料到會得到這么激烈的回應(yīng),下一次我會做一些改進(jìn)。也就是說,我會先把調(diào)查放到GitHub上,這樣社區(qū)就可以啟動(dòng)調(diào)查之前,用幾個(gè)星期的時(shí)間來集合相關(guān)的問題和選項(xiàng)。這樣一來,就可以產(chǎn)出更精確的結(jié)果,并避免類似“我很驚訝你居然沒有包括Emacs!”的抱怨。
下面,輪到調(diào)查結(jié)果了。在公布結(jié)果的時(shí)候我會保持公正,以便于大家自己得出沒有偏見的結(jié)論。
1.你寫的是什么類型的JavaScript?
97.4%的受調(diào)查者編寫適用于Web瀏覽器的JavaScript,這些人中的37%同時(shí)還寫移動(dòng)Web應(yīng)用程序。超過3000人——大概 56.6%——編寫服務(wù)器端的JavaScript。在這些人中,5.5%的人在某種嵌入式環(huán)境使用JavaScript,如Tessel或 Raspberry Pi。
一些參與者說他們在其他一些地方使用JavaScript,比較明顯地是在開發(fā)CLI和桌面應(yīng)用程序的時(shí)候。有幾個(gè)還提到Pebble 和Apple TV。這些都被劃分在Other類中,占了2.2%的投票。
2.你在哪里使用JavaScript?
不出所料,94.9%的投票者在工作中使用JavaScript。不過,統(tǒng)計(jì)中還有很大一部分——82.3%——在業(yè)余項(xiàng)目中也用JavaScript。其他的回復(fù)包括教學(xué)和學(xué)習(xí),因?yàn)榕d趣,或?yàn)榉菭I利組織。
3.你寫JavaScript有多久了?
超過33%的受調(diào)查者已經(jīng)寫了超過6年的JavaScript代碼。此外,5.2%在一年前開始寫JavaScript,12.4%兩年前,15.1%三年前。也就是說有32.7%的人是近年來才開始寫JavaScript的。
4.你使用哪種編譯到JavaScript的語言?
85%的人答復(fù)說他們編譯ES6到ES5。同時(shí)15%仍然使用CoffeeScript,15.2%使用TypeScript,還有少得可憐的1.1%使用Dart。
這是其中一個(gè)我希望能夠有更多人參與合作的問題,因?yàn)橛?3.8%選擇了“Other”的回答。在這13.8%中,絕大多數(shù)的答案是ClojureScript,elm,F(xiàn)low和JSX。
5.你更喜歡什么JavaScript格式選擇?
絕大多數(shù)投票的JavaScript開發(fā)人員似乎更喜歡分號,達(dá)到79.9%。與此相反,11%的人表示他們不喜歡使用分號。說到逗號,44.9% 的人贊成用在表達(dá)式后面,而4.9%的人希望使用逗號優(yōu)先的語法。還有空格縮進(jìn),65.5%的人喜歡空格鍵,而29.1%更愿意使用tab。
6.你使用哪種ES5特性?
在79.2%的受調(diào)查者贊同函數(shù)的Array方法的同時(shí),76.3%的人表示他們使用的是strict mode,30%采用Object.create,使用getter and setters的只有28%。
7.你使用哪種ES6特性?
值得注意的是,箭頭功能是本次調(diào)查中最常用的ES6特性:79.6%。使用Let和const關(guān)鍵字的有77.8%,promise也很強(qiáng)勁,為 74.4%。不出所料,只有4%的受訪者使用proxies。只有13.1%的用戶表示他們使用的是symbols,超過30%的人說他們使用 iterators。
8.你是否寫測試?
雖然有21.7%表示從來不寫任何測試,但大多數(shù)人都寫過一些測試,34.8%時(shí)常在寫測試。
9.你是否運(yùn)行連續(xù)集成測試?
CI也是如此,雖然不使用CI服務(wù)器的人更多——超過40%。近60%的受訪者至少偶爾使用CI,其中32%時(shí)常在CI服務(wù)器上運(yùn)行測試。
10.你如何運(yùn)行測試?
59%喜歡用PhantomJS或類似運(yùn)行自動(dòng)化的瀏覽器測試,51.3%喜歡在web瀏覽器上執(zhí)行手動(dòng)測試。服務(wù)器端的自動(dòng)化測試收獲了53.5%的得票率。
11.你使用什么單元測試庫?
似乎大多數(shù)受訪者傾向于要么Mocha要么Jasmine來運(yùn)行JavaScript測試,而Tape得到了9.8%的投票。
12.你使用什么代碼質(zhì)量工具?
似乎受調(diào)查者要么選ESLint,要么在JSHint陣營,但JSLint經(jīng)過這么多年之后意外強(qiáng)勁,有近30%。
13.你怎么處理客戶端的依賴?
npm以60%的投票成為了客戶端依賴管理體系的***。Bower依然有20%的份額,而舊的<script>下載和插入只有13.7%。
14.你的***構(gòu)建腳本解決方案是什么?
構(gòu)建工具的選擇不同,部分原因是因?yàn)檫x擇多。Gulp***,投票超過40%。緊隨其后的是npm run,為27.8%,而Grunt得到了18.5%的認(rèn)可。
15.你***的JavaScript模塊加載工具是什么?
當(dāng)前,似乎大多數(shù)人都在Browserify和Webpack之間猶豫不決,而后者領(lǐng)先前者近7個(gè)點(diǎn)。29%的用戶表示,他們***使用Babel模塊,不過在此之前可以推測的是使用了上述兩種工具中一種來一塊打包自己的模塊。
16.你使用什么庫?
這是可從協(xié)作編輯中受益良多的問題之一。 jQuery依然強(qiáng)勁,得票50%以上。大部分JavaScript開發(fā)人員投給了Lodash或underscore,而xhr
微庫只有8%的投票。
17.你使用什么框架?
毫不奇怪,React和Angular會領(lǐng)先群雄。Backbone位列第三,為22.8%。
18.你使用ES6的頻率
在這個(gè)問題上大家的分歧很大,有近20%的人從未使用過ES6,只用ES6的人超過10%,接近30%的人皆有涉獵,近40%偶爾使用。
19.你知道ES2016會發(fā)生什么嗎?
粗略地說,有一半的受調(diào)查者不知道什么ES2016會發(fā)生什么,而另一半則有所耳聞。
20.你理解ES6嗎?
超過60%的受調(diào)查者了解基礎(chǔ)知識,10%的人不知道ES6,還有超過25%的人認(rèn)為他們相當(dāng)了解ES6。
21.你是否認(rèn)為ES6改善提高了?
近95%的受調(diào)查者認(rèn)為ES6對語言進(jìn)行了改進(jìn)。
22.你的的***文本編輯器是什么?
同樣又有分歧。超過一半的受調(diào)查者喜歡Sublime Text,超過30%喜歡使用Atom,它的開源復(fù)制品。超過25%的受調(diào)查者支持WebStorm,支持vi / vim的也超過25%。
23.你的***開發(fā)操作系統(tǒng)是什么?
超過60%的投票者使用的是Mac,而Linux和Windows的用戶都接近于20%。
24.你如何找到可重用的代碼、庫和工具?
受調(diào)查者似乎更喜歡GitHub和搜索引擎,不過通過博客、Twitter和npm網(wǎng)站的也不少。
25.你是否參加JavaScript社交活動(dòng)?
近60%的人至少參加過一次會議,而74%的人表示,他們喜歡參加聚會。
26.你的JavaScript應(yīng)用程序支持什么瀏覽器?
答案五花八門,但幸運(yùn)的是大多數(shù)人表示不在IE6上處理客戶了。
27.你定期了解JavaScript的***功能嗎?
對于***的JavaScript功能,大約有80%的受調(diào)查者會試著并保持***的資訊。
28.你在哪里了解***的JavaScript功能?
不出所料,***的Mozilla Developer Network是獲取JavaScript文檔和新聞方面的領(lǐng)頭羊。JavaScript Weekly,也是一個(gè)新聞和文章的來源,受近40%的受訪者的歡迎。
29.你聽說過哪些特性?
超過85%的投票者聽說過ServiceWorker,不過我很想知道有多少人真正用過它!
30.除了JavaScript,你主要使用什么語言?
語言太多了,而且我肯定遺漏了一些,但是結(jié)果已經(jīng)盡在不言中。
Thanks!
***,我要感謝大家的參與。JavaScript比我預(yù)期的更受歡迎,我期待明年可以再次舉行一個(gè)類似的調(diào)查。并且希望可以為大家呈現(xiàn)一個(gè)更加多樣化更公平公正的結(jié)果。
如果這個(gè)調(diào)查有什么不盡人意之處,歡迎指正。
譯文鏈接:http://www.codeceo.com/article/javascript-survey.html
英文原文:JavaScript Developer Survey Results