JavaScript 現狀:方言篇
JavaScript 和其他程式語言有一個很大的不同,它不像單純的一個語言,而像一個由眾多方言組成大家族。
從 2009 年 CoffeeScript 出現開始,近幾年出現了大量基於 JavaScript 語言,或者叫方言,例如 ES6、TypeScript、Elm 等等。它們都有自己的優勢,且都可以被完美編譯成標準 JavaScript。
所以,繼上週的前端框架篇,今天帶來 JavaScript 現狀之方言篇,看一下大家對於 JavaScript 的方言是怎麼選擇的。
宣告:下面的部分結論來自部分資料,這是在我想要展示完整資料時找到的最好的辦法,這便於我分享我的一些想法。
注意:如果你還沒有參與這個調查,現在就來參加吧,可以花十分鐘完成調查然後再回來看這篇文章。
認知度
首先,我想看一下參與問卷調查的人是否知道下面六種語言:
- 經典的 JavaScript: 97%
- ES6: 98%
- CoffeeScript: 99%
- TypeScript: 98%
- Elm: 66%
- ClojureScript: 77%
你可能覺得 100% 的人都應該知道『經典的 JavaScript 』,我想是有人無法抵抗在一個 JavaScript 調查中投『我從來沒有聽說過 JavaScript 』這個選項的強大誘惑吧……
幾乎所有人都知道 ES6、CoffeeScript 和 TypeScript 這三種語言,比較令我驚訝的是 TypeScript 竟然會稍微落後於 ES6 和 CoffeeScript。
另一方面,Elm 和 ClojureScript 得分就要低得多,當然這也有道理,因為它們跟自己的生態環境繫結的比較緊密,也很難在已有的 App 中進行使用。
興趣度
接下來,讓我們一起看一下,哪一種方言吸引新開發者的能力更強一些:
要注意,該表是統計該語言對從未使用過它們的使用者的吸引度,因為只有很少人沒有用過經典 JavaScript,所以『經典 JavaScript 』這一列的數值很低。
ES6的數值很有趣:已有很大比例的使用者在使用 ES6 了,沒有用過的人中的絕大部分(89%)也很想學習它。
TypeScript 和 Elm 的狀態差不多:用過的人不多,但感興趣的比例表現不錯,分別是 53% 和 58%。
如果讓我預測一下,那我覺得 TypeScript 和 Elm 都很難向普通的 JavaScript 開發者講明自己的優勢。畢竟如果開發者只懂 JavaScript 的話,你很難解釋清楚靜態型別的好處。
另外,只有很少開發者用過 CoffeeScript,而且很明顯幾乎沒人想去學。我覺得我該寫一本 12 卷厚的 CoffeeScript 百科全書了……
滿意度
現在是最重要的問題的時間了:有多少開發者用過這些語言,有多少人還想繼續使用這些方言呢?
雖然經典 JavaScript 擁有最多的使用者量,但就滿意度來說 ES6 才是大贏家,而且我想現在已經能安全的說,ES6 可以作為開發 JavaScript App 預設的語言。
TypeScript 和 Elm 有相似的高滿意度,都在 85% 上下。然後,只有可憐的 17% 的開發者會考慮繼續使用 CoffeeScript。
快樂度
最後一個問題,我問大家在用現在的方式寫 JavaScript 時是否感到快樂:
這個問題的答案和上一個問題的滿意度想匹配:平均分達到 3.96 分(1 - 5 分),大家在使用 JavaScript 時候確實是快樂的。
不過很難說高分是因為 JavaScript 最近的一些改進造成的呢,還是發現 JavaScript 可能(僅僅是可能)沒有大家認為的那麼討厭。總之,JavaScript 令人滿意。
總結
如果說上次的贏家是 React 和 Vue,那此次調查的冠軍毫無爭議是 ES6 了。 ES6 並帶來沒有開天闢地的變化,但整個社群都還是很認可當前 JavaScript 演進方向的。
我覺得一年之後我們再來一次這樣的調查,結果會很有趣。同時也可以關注一下 TypeScript、Elm 還有ClojureScript 有沒有繼續進步。
個人認為,當前 JavaScript 大家庭百花齊放的現象還只是一個開始,或許幾年之後 JavaScript 就會變得非常不同了。
結語 & 敬請期待
對於我這樣的調查來說資料越多就意味著資料越準確!越多人參加這個調查,那就越能代表整個 JavaScript 社群。
所以,我十分希望你能幫忙分享這個調查問卷:
另外,如果你想收到我下一個調查結果分析,前往 調查問卷主頁 並留下自己的郵箱吧。
via: https://medium.com/@sachagreif/the-state-of-javascript-javascript-flavors-1e02b0bfefb6
作者:Sacha Greif 譯者:eriwoon 校對:wxy
相關文章
- 學習韓語,一篇文章看懂韓國方言特點!原汁原味方言
- Wikipedia的方言版本
- javascript非同步程式設計(一)-現狀JavaScript非同步程式設計
- 原生 JavaScript 實現 state 狀態管理系統JavaScript
- 亞洲手機遊戲市場現狀之中國篇遊戲
- 《JavaScript設計模式與開發實踐》模式篇(13)—— 狀態模式JavaScript設計模式
- Hibernate SQL方言 (hibernate.dialect)SQL
- 分析亞洲手機遊戲市場現狀之中國篇(2)遊戲
- transqlate:將任何SQL轉換為PostgreSQL方言SQL
- 2017 年 JavaScript 現狀調查報告總結JavaScript
- JavaScript的設計失誤(歷史、現狀以及未來)JavaScript
- 一篇文章瞭解爬蟲技術現狀爬蟲
- 分析亞洲手機遊戲市場現狀之韓國篇(1)遊戲
- JavaScript介面畫柱狀圖JavaScript
- JavaScript 的狀態容器 ReduxJavaScriptRedux
- JavaScript字串引號巢狀JavaScript字串巢狀
- JavaScript與有限狀態機JavaScript
- StateOfJS:2019 年 JavaScript 現狀調查報告JSJavaScript
- JavaScript之物件篇JavaScript物件
- JavaScript之開篇JavaScript
- 模式現狀模式
- 使用瀚高資料庫hibernate方言報錯資料庫
- javascript設計模式狀態模式JavaScript設計模式
- Python現狀Python
- NoSQL的現狀SQL
- JavaScript巢狀物件的全新方式JavaScript巢狀物件
- 從狀態模式看 JavaScript 與 Java模式JavaScript
- Flutter | 狀態管理指南篇——ProviderFlutterIDE
- Flutter | 狀態管理探索篇——Redux(二)FlutterRedux
- Flutter | 狀態管理探索篇——BLoC(三)FlutterBloC
- [翻譯] Javascript中函式反編譯的歷史,現狀和未來JavaScript函式編譯
- 面向面試之 JavaScript 篇(一)面試JavaScript
- 前端效能優化JavaScript篇前端優化JavaScript
- Javascript篇之Prototype的原型JavaScript原型
- 三端易用的現代跨平臺JavaScript Bridge之 IOS篇JavaScriptiOS
- Flutter 開發現狀Flutter
- 全球半導體現狀分析
- javascript中如何設定滑鼠的形狀JavaScript