[譯] 2019 年值得學習的頂級 JavaScript 框架與主題

 

 

圖:Jon Glittenberg Happy New Year 2019 (CC BY 2.0)

又到了一年的這個時候:JavaScript 年度技術生態回顧。我們的目標是找出最有職業投資回報率的主題和技術。在實際生產中大家都在用什麼呢?現在的趨勢是什麼樣的呢?我們不會試圖去找出最佳,但是會使用數據驅動的方法,來幫助大家着重關注那些能幫助你在求職面試中回答“你知道 ____ 嗎?”的主題與技術。

我們不會去分析哪些是最快的,哪個有最好的代碼質量。我們會假設它們都是速度惡魔(speed demons),並且它們都很棒,足以完成你的工作。而主要的關注點在於:什麼是被大規模使用的?

組件框架

我們要關注的大問題是當前組件框架的狀況。我們會主要關注三巨頭:React、Angular 和 Vue.js,主要因爲在工作中,它們的使用遠遠超過了其他的框架。

去年,我注意到了 Vue.js 的(使用量)增長並提到了它可能在 2018 年趕上 Angular。事實上它沒有發生,但 Vue.js 的增長仍然非常快。我也預測了將 React 用戶轉化爲其他框架用戶將會更加困難,因爲 React 比 Angular 有更高的用戶滿意度 — React 用戶並不會有充分的理由去切換框架。與我對 2018年的預期一致。React 在 2018 年牢牢佔據了頭把交椅。

但有趣的是,三個框架每年仍持續着指數級的增長。

預測:React 在 2019 將繼續領先

在我們關注 React 的第三年,它 相比 Angular 仍有更高的滿意度,而且對於挑戰者,它不會放棄任何優勢。目前看來我認爲在 2019 沒有能夠挑戰它地位的框架。除非有超級強大的東西出現並且擾亂了 React(社區),React 將會在 2019 年底繼續領先。

說到 React,它一直在變得更好。最新的 React hooks API 取代了我從 0.14 版本開始就幾乎不能忍受的 class API。(class API 仍然可以繼續使用,但是 hooks API 真的 更好)。React 的 API 改進如更好的代碼分割和併發渲染(詳情)將使它在 2019 年更難被打敗。不用懷疑,React 現在是目前對開發者最友好的前端框架。我沒有理由不推薦它。

數據來源

我們會關注一些關鍵點來評估在(這些框架)實際生產中的興趣和使用情況:

  1. Google 搜索的趨勢。這並不是我最喜歡的指標,但是它是個不錯的宏觀視角。
  2. 包下載量。這裏的目的是獲取使用框架的真實用戶(數據)。
  3. Indeed.com 上的招聘廣告。用和去年相同的方法論來保持結果的一致性。

Google 搜索趨勢

 

 

 

框架搜索趨勢:2014 年 1 月 — 2018 年 12 月

在搜索趨勢上,React 在 2018 年 1 月超越了 Angular,並且在這一整年剩餘的時間裏保持了領先的位置。Vue.js 在圖裏保持了一個可見的位置,但是仍然是搜索趨勢中的一個小因子。對比:去年的趨勢圖:

 

 

 

框架搜索趨勢:2014 年 1 月 — 2017 年 12 月

包下載量

包下載量是一個衡量實際使用情況的公平指標,因爲開發者在工作是會頻繁地下載那些他們需要的包。

睿智的讀者會發現有時候他們從他們公司內部源的下載包,對於這種情況,我的回答是:“那確實會發生 — 對於這三個框架來說。”它們都可以在企業中立足,而我對這個大規模的數據的平均能力有信心。

React 每月下載量:2014–2018

 

 

 

Angular 每月下載量:2014–2018

 

 

 

Vue 每月下載量:2014–2018

 

 

 

讓我們看一下下載份額的快速可視化比較:

 

 

 

“但你忘記了 Angular 1.0!它在企業中仍然很重要。”

不,我沒有。Angular 1.0 仍然在企業中被廣泛使用,這和 Windows XP 在企業中仍被廣泛使用是相似的。這個數量絕對足夠引起注意,但是新版本的 Angular 早已使 Angular 1.0 相形見絀,Angular 1.0 的重要性已經不如其他的框架了。

爲什麼?因爲整個軟件行業和 所有部門(包括企業) 的 JavaScript 的使用增長得很快,新的框架會使舊的框架變得很渺小,即使它是 永不升級 的遺產應用。

證據就是,看看這些下載量統計圖。2018 年單年的下載量就比之前幾年的 總和 都要多。

招聘廣告投放數

Indeed.com 集合了許多招聘部門的招聘廣告。每年 我們都會統計提到每個框架的招聘廣告¹ 來給大家提供關於企業在招什麼樣的人的更好的觀點。這是今年的形勢:

 

 

 

2018 年 12 月有關每個框架的招聘廣告統計

  • React:24,640
  • Angular:19,032
  • jQuery:14,272
  • Vue:2,816
  • Ember(不在圖中):2,397

再說一次,今年投放的職位總數比去年要多。我把 Ember 剔除了,因爲它顯然沒有像其他框架一樣按比例增長。我不推薦爲了未來找工作而去學它。jQuery 和 Ember 相關的崗位並沒有多大的變化,但其他的崗位都有很大的增長。

令人感激的是,加入軟件工程領域的新人在 2018 年也增長了很多,但這也意味着我們也需要持續聘用並培訓初級開發者(意味着我們需要 合格的高級開發者來指導他們),否則我們將無法跟上爆炸性的就業增長。作爲對比,這裏有去年的圖表:

 

 

 

平均薪資在 2018 年也攀升了,從每年 $110k 到每年 $111k。有傳聞說,薪資列表落後於新員工的預期,並且如果招聘經理不去適應開發者的市場,不給出更多的加薪,他們會更難僱傭和留住開發者。留人和物色人才在 2018 仍然會是一個巨大的問題,因爲僱員們會跳槽到別處有更高工資的職位。

  1. 方法論:職位搜索是在 Indeed.com 上進行的。爲了去除誤報,我把它們和搜索詞 “software” 組合在一起來加強相關度,然後乘以 1.5(粗略地說,就是使用關鍵詞 “software” 和不用這個關鍵詞搜索到的編程崗位列表的區別)。所有 SERPS 都按照日期排序並檢查相關性。結果數據並不是 100% 準確的,但它們對於在本文中使用的相對近似值足夠好了。

JavaScript 基礎

我每年都在說:關注基礎。今年你會得到更多的幫助。所有的軟件開發都是這樣組合的過程:把複雜的問題拆解成多個小問題,並將那些小問題組合起來,組成你的應用。

但當我問 JavaScript 的面試者那些軟件工程最基本的問題,如“什麼是函數組合”和“什麼是對象組合”,他們幾乎總是回答不出這些問題,儘管他們每天都在做這些事。

我一直認爲這是一個需要解決的嚴重問題,所以我寫了這個主題:“Composing Software”

如果你在 2019 年沒有要學的了,那麼就去學組合式編程吧。

TypeScript

TypeScript 在 2018 年持續增長,並且它會被持續高估,因爲 類型安全並不是什麼大問題(並沒有很好地減少產品的 bug 密度),並且在 JavaScript 中,類型推斷 不需要 TypeScript 的幫助也可以做得很好。你甚至可以在使用 Visual Studio Code 時,通過 TypeScript 引擎在普通的 JavaScript 中進行類型推斷。或者爲你喜愛的編輯器安裝 Tern.js 插件。

對於大部分高階函數而言,TypeScript 會繼續一敗塗地。大概是因爲我不知道怎樣正確使用它(在與它日常相伴多年後 — 在這種情況下,他們真的需要提高可用性或者文檔,或者兩者都要),但我仍然不知道在 TypeScript 中如何定義 map 操作的類型,而它似乎在 transducer 中很清晰明瞭。捕獲錯誤經常失敗,並且經常報明明不是錯誤的錯誤。

可能對於支持我所認爲的軟件,它僅僅是不夠靈活或者功能不夠完善。但我仍然對有一天它會加入我們需要的功能抱有希望,因爲它的缺點在我嘗試在真實項目中使用它時令我失望,但我仍然喜歡它在有用的時候能夠合適地(並且可選擇地)定義類型的潛力。

我目前的評價:非常酷的選擇,有限的使用場景,但被高估了,笨拙,並且在大型生產應用中的投資回報率很低。這非常諷刺,因爲 TypeScript 自稱是 “JavaScript 的超集”。可能他們要加入一個詞:“笨拙的 JavaScript 超集”。

在 JavaScript 裏我們需要的是一個比 Haskell 更強大但是比 Java 更輕量的類型系統。(PS:這句翻譯不確定,麻煩校對看下)

其他值得學習的 JavaScript 技術

加密行業的崛起

去年我預測區塊鏈和金融會計將會成爲 2018 年值得觀察的重要技術。這個預測是正確的。2017 - 2018 的一個主要的主題是加密行業的崛起和構建價值網絡的基礎。記住這個階段。你很快將會多次聽到它。

如果你和我一樣自從 P2P 爆炸性增長後關注那些去中心化應用,這已經持續很久了。由於比特幣點燃了導火索,並展示了去中心化應用通過加密貨幣自我維持的方式,這種爆炸性增長是不可阻擋的了。

比特幣在幾年內增長了若干個量級。你可能聽說過 2018 年是“加密寒冬”,並且有“加密行業處於掙扎中”的想法。這完全是無稽之談。實際的情況是,在 2017 年底,比特幣以史詩般的指數增長曲線增長到之前的 10 倍,但市場有所回落,這種回落會發生在每次比特幣增長到之前的 10 倍。

 

 

 

比特幣 10 倍拐點

在這個圖表中,每個箭頭始於 10 倍點,指向價格修正後的最低點。

加密貨幣的 ICO(首次代幣發行)的資金募集在 2018 年初達到頂峯。2017-2018 的資金泡沫帶來了生態系統中大量新的職位空缺,在 2018 年 1 月達到了頂峯,有超過 10k 的職位空缺。這種趨勢已經回落到大概 2400 個職位空缺了(根究 Indeed.com 的數據),但是我們現在仍處於(這個行業的)早期階段,這場派對纔剛開始。

 

 

 

關於迅猛增長的加密行業有很多可以討論的地方,但是這可以另寫一篇博文了。如果你感興趣的話,可以閱讀:“Blockchain Platforms and Tech to Watch in 2019”

其他值得觀察的技術

和去年預測的一樣,這些技術在 2018 持續爆炸性增長:

人工智能/機器學習 正如火如荼,在 2018 年末有 30k 的職位空缺。deep fakes,令人難以置信的生成藝術,來自 Adobe 這樣的公司的研究團隊研發的令人驚訝的視頻編輯能力 — 從來沒有更激動人心的去探索人工智能時刻。

漸進式 Web 應用(PWA) 迅速成爲了構建現代應用的方式 — 增加的新特性與有 Google、Apple、Microsoft、Amazon 等公司的支持。令我難以置信的是,我將手機上的 PWA 視爲理所當然。例如,我在我的手機上不再需要安裝 Twitter 的原生應用。我僅僅使用 Twitter 的 PWA 來替代它。

AR(增強現實)、VR(虛擬現實)、MR(混合現實)像戰神金剛一樣合體成 XR(eXtended Realty)。未來的全時 XR 沉浸即將到來。我預測在 5-10 年內會出現大規模的消費級 XR 眼鏡產品。隱形眼鏡會在 20 年內推出。這個行業在 2018 年有數以千計的新職位空缺,並且在 2019 仍會持續爆炸性增長。

機器人、無人機和自動駕駛汽車:在 2018 年末,自動飛行的無人機已經被研發出來了,自動機器人仍在持續優化中,並且有更多自動駕駛汽車上路了。2019 年,以及未來的 20 年,這些技術會持續增長並重塑我們周圍的世界。

量子計算 和預期的一樣在 2018 發展得極好,並且和預期的一樣,它仍然沒有成爲主流。事實上,我的預測“它會在 2019 或者在真正中斷之前成爲主流”可能太樂觀了。

加密領域的研究者已經集中更多的注意力在量子安全加密算法上(量子計算會打破今天的計算成本昂貴的假設,而加密正是依賴於這些成本昂貴的計算),但儘管在 2018 年不斷涌現出有趣的研究進展,最近有一篇報道 換了個角度看待這個問題

“在 2000 到 2017 年間,量子計算已經 11 次上了 Gartner 的 hype list,每次都在 hype cycle 的最早階段就被列出,並且每次都說已經距離我們有十年之遙。”

這讓我想起了早期人工智能的努力,它在 1950 年代開始升溫,在 1980 和 1990 年代有了有限的但是有趣的成果,但是在 2010 年左右的成果纔開始變得令人興奮。


我們正在構建未來的名人數字藏品:cryptobling


Eric Elliott“編寫 JavaScript 應用”(O’Reilly)以及“跟着 Eric Elliott 學 Javascript” 兩書的作者。他爲許多公司和組織作過貢獻,例如 Adobe SystemsZumba FitnessThe Wall Street JournalESPNBBC 等,也是很多機構的頂級藝術家,包括但不限於 UsherFrank Ocean 以及 Metallica

大多數時間,他都在 San Francisco Bay Area,同這世上最美麗的女子在一起。

感謝 JS_Cheerleader

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章