原文作者:UC 國際研發 Randy
寫在最前:歡迎你來到“UC國際技術”公眾號,我們將為大家提供與客戶端、服務端、演算法、測試、資料、前端等相關的高質量技術文章,不限於原創與翻譯。
好像掘金不能釋出視訊,那就貼上 B 站連結?叭~
http://www.bilibili.com/video/av36543409
文字版
Hello 我是 Randy. ?今天在這個視訊裡,我要帶大家一起看看 The State of JavaScript 2018 的調查結果。
The State of JavaScript 是一個由 Raphaël Benitte 和 Sacha Greif, 以及 Michael Rambeau 從 2016 年開始每年都會發起的一個針對 JavaScript 開發者的調查。調查包括對 JavaScript 社群整體走向的滿意度、對流行的框架或技術的評價、JavaScript 程式設計師的薪資情況等等一系列問題。每年都在年底提前幾個月開放調查問卷,然後在新年之前以資料視覺化的形式,公佈調查結果。
你可以在 https://stateofjs.com/ 上瀏覽今年以及往年的調查結果。
今年(2018 年)一共有兩萬多人蔘加了這次的調查,值得留意的是,這兩萬人當中,參與人數最多的國家是美國 ??,總共有 4929 個。而參與調查的中國 ??開發者只有 75 個。本人就是這 75 人之中的其中一個。
所以,我建議看到這次調查的中國開發者,下一年也參與其中。你可以在 stateofjs.com 的首頁上,填寫你的 Email 地址,下一年開始接受問卷填寫時,就會收到郵件通知啦?。
接下來我不會把所有調查結果逐個講,而是隻講我個人認為比較有意思的那一部分。
這些編譯到 JS 的語言,不算 ES6, 綜合來看,TypeScript 是最受歡迎的。最多人表示會再次使用,也最多人表示願意去學習他。而和 TypeScript 同樣為 JS 增加型別檢查的 Flow, 就顯得不是那麼多人願意去學他,也許大部分人會認為 TypeScript 是更好的選擇,而且 TypeScript 不僅僅只有型別檢查。
令我意外的是,很多人沒有聽說過 Reason. 但 Reason 在這次調查中,被認為是最有潛力的。我認為 Reason 藉助強大成熟的 OCaml ?, 以及對 JS 程式設計師友好的語法,是值得被更多人使用的。我相信當前端社群越來越接受函數語言程式設計的時候,Reason 會和 TypeScript 一樣成功。
大多數人沒有興趣去學習 CloujureScript. 有趣的是,喜歡 cljs 的人最喜歡的是它的程式碼風格,而不喜歡它的人,最不喜歡的也是它的程式碼風格。
至於前端框架,毋庸置疑,最流行的是 React. 但很多人也願意去學 Vue. 最慘的是 Angular, 相當多的人表示不想再使用他,並且不想再用他的人在逐年增加。而大家不喜歡他的原因主要是太臃腫,太複雜。
至於狀態管理,Redux 依然有大量的使用者。GraphQL 和 Apollo 雖然使用者不算太多,但有非常多的人想要學。
值得注意的是,Vue 官方的狀態管理工具 VueX 也被很多人提到。大概是因為用 Vue 的人都是用 VueX 來做狀態管理。
在後端,Express 依然是最多人的選擇,最大的原因是他本身已經做了很多預設,開發的時候很省心。至於 Next.js, 相信已經是做 React 伺服器端渲染的首選框架。
在測試工具的對比當中,Jest 和 Mocha ☕️可謂是平分秋色,但 Jest 的上升趨勢十分驚人。選擇 Jest 的原因是不用任何配置,你就可以用 Jest 做測試和斷言。而且通過官方的文件,你幾乎可以很清楚地學會怎麼在各種各樣的場景裡面使用 Jest 對你的程式進行測試。
我個人測試 React 程式的時候,也喜歡用 Jest 配合 Enzyme.
至於用 JS 來寫手機應用和桌面程式,Electron 和 React Native 毫無懸念是最多的人的選擇。對 Electron 的批評主要是效能差和臃腫,畢竟一個 Electron 打包的應用 gzip 後也有 50 多 MB. 根據調查結果來看,React Native 比其它 JS 開發手機應用的方案優勝的地方在於豐富的生態,和使用 React 的優勢。但他實在是太 buggy 了。Airbnb 曾經也是 React Native 的重度使用者,但在早前也在部落格稱計劃放棄 React Native 以及放棄的原因. 我會把連結放在視訊的簡介裡。
我推薦大家關注 Carlo 和 Flutter. Carlo 基於 puppeteer, 可以執行在裝有 Chrome 的電腦,是替代 Electron 的一個不錯的選擇。Flutter 使用 Dart 編譯成原生程式碼,如果你不介意使用 Dart, 那麼不妨試試他。在國內,閒魚也在一部份的頁面實踐了 Flutter.
最後是開發工具,VS Code 可以說是超高票數絕對領先於其它編輯器,遠遠高於 Sublime Text 和 Atom. 我自己也是從 Sublime Text 轉到 VS Code 的,因為 VS Code 既像編輯器那麼輕量,又有 IDE 一樣強大的功能。
總的來說,大家都認為 JS 社群在往正確的方向走,很多人也願意使用 JS 作為自己的主力語言。事實上我在這個問題上是投了 disagree 的。因為我覺得 使用 JS 編寫嚴肅的、大規模的應用是很危險的,我更願意選擇用 TypeScript 或者 Reason 作為主力語言。
我個人認為 2019 年前端社群會流行的技術有兩個,一個是 GraphQL, 因為使用 GraphQL 寫 CRUD 應用的時候,配合 Apollo ?可以降低很多工作量。如果大家對 GraphQL 和 Apollo 有興趣,不妨讀一讀我的這篇文章,你會對他們有個大概的印象。另一個是 React Hooks. React Hooks 可以讓你把狀態邏輯獨立於你的元件,複用給其它的元件。這樣一來,基於 React Hooks 可以建立起一個新的 React 生態。
這就是本次視訊的所有內容,喜歡這個節目的朋友不妨把它分享出去,順便點個關注和贊哦!歡迎留言討論。
>> 相關連結 <<
高效的 GraphQL:
https://gist.github.com/djyde/955aa3f8f46116d648d44a743970b089
React Native at Airbnb:
https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c
好文推薦:
“UC國際技術”致力於與你共享高質量的技術文章
歡迎關注我們的公眾號、將文章分享給你的好友