JavaScript 生態系統複雜多變,各類框架讓人眼花繚亂。究竟孰優孰劣,現在的發展趨勢是怎樣的,用人單位又須要怎樣的人才?本文站在一箇中立者的角度,客觀分析了當前這場「框架的遊戲」中,JavaScript 的流行趨勢。javascript
Javascript 的生態環境讓我想到了戰場。TypeScript 對戰 ES6,React 對戰 Angular,Jest 對戰 Mocha……就像在看熱播的電視劇同樣,這些激烈的衝突讓 JS 的粉絲們焦急地等待着更新,並不由捫心自問:我下一步究竟該學什麼?與此同時,每種技術的粉絲軍團僅僅是在火上澆油而已。html
咱們在 CV Compiler 平臺每週幫助幾十個 JS 開發者完善他們的簡歷,因此咱們也在持續跟進着「框架的遊戲」,按期分析着用人單位的需求。但在這篇文章中,我不會去支持或反對任何一種技術——只會站在一箇中立的角度,來分析一下當前 JavaScript 的流行趨勢。前端
咱們從 AngleList、StackOverflow、LinkedIn 和一些全世界範圍內發展很快的科技公司的招聘頁面等多個平臺上選取了 300 個 JavaScript 開發崗的招聘要求。咱們利用本身的文本分析工具,計算出了這些要求中最常提到的一些術語,以下圖所示(圖中數字表示各術語被說起的頻率)。java
在咱們的評級中沒有被展現出的非 JS 語言中,說起頻率最高的是 C#和 PHP。至於數據庫管理系統,MySQL 和 MongoDB 也立刻要衝進評級榜單了。使人驚訝的是,常見的 Express.js 被說起的頻率較低,Flow 也是如此。node
雖然圖表中沒有提到 Agile(敏捷)這個術語,但它比 Git 或 Redux 被說起的頻率更高,這說明 JS 開發者們除了要得到開發崗位必須的硬技能,軟技能一樣不可忽視。UX 也是如此。固然,你沒有必要爲此專門參加一個高級的 UX(User experience)課程(若是能夠參加的話天然就更好了),但做爲一個前端開發者,你須要知道如何在技術層面爲用戶提供更流暢的體驗,而不是在設計層面。git
咱們還遇到了可擴展性(Scalability)、雲計算(Cloud Computing)和安全性(Security)這樣的術語。這一事實代表,JS 繼承了開發人員行業的趨勢。github
你可能已經注意到,在咱們的技能評級中,Vue.js 的排名並不高。我估計這有幾點緣由。首先,不少公司尚未準備好將產品遷移到 Vue.js 而放棄他們目前很穩定、常規的前端解決方案。其次,可能有些用人單位想要讓員工在工做過程當中學習 Vue.js,因此他們在招聘要求裏並無提到這個詞。數據庫
不管如何,基於全球範圍內的調研,Vue.js 是十分流行的——28.8% 的受試者在 JavaScript 2018 問卷調查中使用 Vue.js,並表示願意再次使用它。另一個有趣的結論是:34% 的受試者在同一份問卷中表示使用過 Angular,但不肯意再次使用。然而,這並不表示這三種技術(React,Angular 或 Vue.js)中的任意一個會舉手投降。選擇哪一種前端框架取決於不少因素,如項目的規模、架構以及企業特徵。後端
對於 GraphQL 來講一樣如此。雖然它在表中排名並不靠前,但確實增加飛快。在 2018 年 Node.js 用戶調查問卷中,21% 的受試者已經在工做中使用它了。2018 年 4 月 30 日,52 個用戶下載了 Apollo(GraphQL 的客戶端)。而在此後正好一年的時間裏,有 10794 個用戶下載了它。瀏覽器
在編譯工具方面,也有一個頗有趣的競爭關係:Parcel 和 Webpack。2018 年 JavaScript 新星調查中顯示,Parcel 愈來愈流行,其熱度已經逐漸超過了 Webpack。然而,雖然 Parcel 具備幾個頗有吸引力的內置功能,如開箱即用的配置、開發服務器和熱模塊替換,它仍然沒有取代優秀的 Webpack。在 JS 2018 問卷調查中,超過 16000 名受試者使用 Webpack 來編譯他們的項目。而在咱們的調查中,300 份招聘說明中沒有見到 Parcel 的影子。
調查連接:
對我來講,React 將在將來幾年保持強勢地位。 GraphQL 也是如此,而 REST API 將會降低。另外,TypeScript 可能超過 ECMAScript。至於新術語,我認爲最終可以看到 ReasonML、Parcel 和 Design Systems 的技能等級。 (但也許不到 2020 年就能看到)。
還有一個觀察 - 我認爲 Redux 將在將來五年內降低,由於開發人員正在積極研究前端的替代方法。
——JuhoVepsäläinen,SurviveJS、React Finland 創始人,藍箭獎得主。 Twitter:twitter.com/bebraw 我的網站:survivejs.com/
此列表顯示了 JavaScript 生態系統中 React、Angular 和 Node.js 等前端框架的持續優點。優點極可能會持續下去,而且我建議開發人員深刻學習這些框架中的至少一個。TypeScript 和 GraphQL 也在不斷增加,而且可能會繼續增加。
對於後端工程師,Node.js 的普及率持續上升。可是,許多公司仍然但願 JavaScript 開發人員可以使用 Java 和 Python 等語言來處理多語言環境。列表的其他部分證實將 JavaScript 做爲一種語言是不夠的。另外,使用 Git、CI 和 TDD 等常見的行業慣例是必須的。
——Kevin Ball,Web 前端顧問、培訓師,ZenDev 創始人。 Twitter:twitter.com/kbal11 博客:zendev.com/blog.html
Express.js 竟然沒有在這個圖表中排名靠前,我很驚訝,怎麼說它也是編寫 Node.js 後端應用程序的主要框架。也許這是由於大多數 JavaScript 的職位都是針對前端開發人員的,但技術自己絕對不是不受歡迎的。
至於前端領域,我認爲 React 將長期保持其主導地位。該框架能夠快速響應用戶的需求,按期將新想法推向市場,並獲得了 Facebook 的大力支持。 TypeScript 是另外一個大趨勢——我想在 3 年內,若是不使用 TS,咱們將看不到任何大項目。因爲它與 React 密切相關,所以這兩種技術將繼續繁榮發展。
如今亟待改變的是項目建設過程的複雜性。更有可能的是,咱們很快就會看到這個問題的有效解決方案,例如 codesandbox 或 Parcel。
總的來講,JavaScript 已經成爲一種「成熟」且穩定的語言,因此我認爲咱們不會在很近的未來觀察到激烈的「技術戰」。
——Denis Radin,FocusReactive 技術主管。 Twitter:twitter.com/pixelscomma… GitHub:github.com/pixelscomma…
JavaScript 號稱「快速移動的語言」,擁有極高聲譽,每週都會有一個新的框架出現。雖然這曾經是真實的,但它確定會放慢速度,儘管最近咱們已經看到了更多像 Gatsby 這樣的「框架的框架」。
深刻理解 ES6 中的基礎語法很是重要。瞭解 JavaScript 的解釋方式以及各類瀏覽器的侷限性也很重要。最後,PWA 和服務工做者的崛起也值得關注。 JavaScript 應用程序的潛在市場遍及全球,瞭解如何爲這些客戶構建是相當重要的。
——Laurie Barth,演講家、博主、教師,Ten Mile Square Technologies 顧問。 Twitter:twitter.com/laurieontec… 博客:dev.to/laurieontec… 我的網站:laurieontech.com/
從咱們在 Cypress.io 的需求來看,GraphQL + TypeScript 佔據了 2020 年所需技能的列表。另外,我預測像 Next.js、Nuxt.js 和 Gatsby.js 這樣的混合框架將佔據很大一部分項目,所以 JavaScript 開發人員必須瞭解這些工具。
——Gleb Bahmutov,Cypress.io 工程副總裁。 Twitter:twitter.com/bahmutov 我的網站:gleb.dev/
JavaScript 生態系統不斷增加,並且可能會讓人不堪重負。可是,我認爲這是學習和擴展本身知識的好機會。同時,它是語言演變的一個重要標誌。擁有 React.js 和 Node.js 對你的簡從來說是一個巨大的優點,也是得到體面工做的關鍵點之一。
——Tanya Butenko,Hireup(澳大利亞)軟件工程師,Muses Code JS Inc. 創始人兼首席執行官。 Twitter:twitter.com/ButenkoMe 我的網站:musescodejs.org/
總的來講,如今是成爲 JavaScript 開發者的最佳時機。 JS 及其框架位於全球最受歡迎、使用最普遍的技術榜榜首。雖然框架之間的戰鬥異常激烈,JS 的經常使用工具集卻很是穩定,所以你能夠專一於利用喜歡的技術,而不用非要選擇相似框架。