- 原文地址:Top JavaScript Frameworks and Topics to Learn in 2019
- 原文做者:Eric Elliott
- 譯文出自:掘金翻譯計劃
- 本文永久連接:github.com/xitu/gold-m…
- 譯者:ElizurHz
- 校對者:KarthusLorin, wuzhengyan2015
圖:Jon Glittenberg Happy New Year 2019 (CC BY 2.0)javascript
又到了一年的這個時候:JavaScript 年度技術生態回顧。咱們的目標是找出最有職業投資回報率的主題和技術。在實際生產中你們都在用什麼呢?如今的趨勢是什麼樣的呢?咱們不會試圖去找出最佳,可是會使用數據驅動的方法,來幫助你們着重關注那些能幫助你在求職面試中回答「你知道 ____ 嗎?」的主題與技術。html
咱們不會去分析哪些是最快的,哪一個有最好的代碼質量。咱們會假設它們都是速度惡魔(speed demons),而且它們都很棒,足以完成你的工做。而主要的關注點在於:什麼是被大規模使用的?前端
咱們要關注的大問題是當前組件框架的情況。咱們會主要關注三巨頭:React、Angular 和 Vue.js,主要由於在工做中,它們的使用遠遠超過了其餘的框架。java
去年,我注意到了 Vue.js 的(使用量)增加並提到了它可能在 2018 年遇上 Angular。事實上它沒有發生,但 Vue.js 的增加仍然很是快。我也預測了將 React 用戶轉化爲其餘框架用戶將會更加困難,由於 React 比 Angular 有更高的用戶滿意度 — React 用戶並不會有充分的理由去切換框架。與我對 2018年的預期一致。React 在 2018 年緊緊佔據了頭把交椅。react
但有趣的是,三個框架每一年仍持續着指數級的增加。android
在咱們關注 React 的第三年,它 相比 Angular 仍有更高的滿意度,並且對於挑戰者,它不會放棄任何優點。目前看來我認爲在 2019 沒有可以挑戰它地位的框架。除非有超級強大的東西出現而且擾亂了 React(社區),React 將會在 2019 年末繼續領先。ios
說到 React,它一直在變得更好。最新的 React hooks API 取代了我從 0.14 版本開始就幾乎不能忍受的 class
API。(class
API 仍然能夠繼續使用,可是 hooks API 真的 更好)。React 的 API 改進如更好的代碼分割和併發渲染(詳情)將使它在 2019 年更難被戰勝。不用懷疑,React 如今是目前對開發者最友好的前端框架。我沒有理由不推薦它。git
咱們會關注一些關鍵點來評估在(這些框架)實際生產中的興趣和使用狀況:github
框架搜索趨勢: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 月有關每一個框架的招聘廣告統計
再說一次,今年投放的職位總數比去年要多。我把 Ember 剔除了,由於它顯然沒有像其餘框架同樣按比例增加。我不推薦爲了將來找工做而去學它。jQuery 和 Ember 相關的崗位並無多大的變化,但其餘的崗位都有很大的增加。
使人感激的是,加入軟件工程領域的新人在 2018 年也增加了不少,但這也意味着咱們也須要持續聘用並培訓初級開發者(意味着咱們須要 合格的高級開發者來指導他們),不然咱們將沒法跟上爆炸性的就業增加。做爲對比,這裏有去年的圖表:
平均薪資在 2018 年也攀升了,從每一年 $110k 到每一年 $111k。有傳聞說,薪資列表落後於新員工的預期,而且若是招聘經理不去適應開發者的市場,不給出更多的加薪,他們會更難僱傭和留住開發者。留人和物色人才在 2018 仍然會是一個巨大的問題,由於僱員們會跳槽到別處有更高工資的職位。
我每一年都在說:關注基礎。今年你會獲得更多的幫助。全部的軟件開發都是這樣組合的過程:把複雜的問題拆解成多個小問題,並將那些小問題組合起來,組成你的應用。
但當我問 JavaScript 的面試者那些軟件工程最基本的問題,如「什麼是函數組合」和「什麼是對象組合」,他們幾乎老是回答不出這些問題,儘管他們天天都在作這些事。
我一直認爲這是一個須要解決的嚴重問題,因此我寫了這個主題:「Composing Software」。
若是你在 2019 年沒有要學的了,那麼就去學組合式編程吧。
TypeScript 在 2018 年持續增加,而且它會被持續高估,由於 類型安全並非什麼大問題(並無很好地減小產品的 bug 密度),而且在 JavaScript 中,類型推斷 不須要 TypeScript 的幫助也能夠作得很好。你甚至能夠在使用 Visual Studio Code 時,經過 TypeScript 引擎在普通的 JavaScript 中進行類型推斷。或者爲你喜好的編輯器安裝 Tern.js 插件。
對於大部分高階函數而言,TypeScript 會繼續一敗塗地。大概是由於我不知道怎樣正確使用它(在與它平常相伴多年後 — 在這種狀況下,他們真的須要提升可用性或者文檔,或者二者都要),但我仍然不知道在 TypeScript 中如何定義 map 操做的類型,而它彷佛在 transducer 中很清晰明瞭。捕獲錯誤常常失敗,而且常常報明明不是錯誤的錯誤。
可能對於支持我所認爲的軟件,它僅僅是不夠靈活或者功能不夠完善。但我仍然對有一天它會加入咱們須要的功能抱有但願,由於它的缺點在我嘗試在真實項目中使用它時令我失望,但我仍然喜歡它在有用的時候可以合適地(而且可選擇地)定義類型的潛力。
我目前的評價:很是酷的選擇,有限的使用場景,但被高估了,笨拙,而且在大型生產應用中的投資回報率很低。這很是諷刺,由於 TypeScript 自稱是 「JavaScript 的超集」。可能他們要加入一個詞:「笨拙的 JavaScript 超集」。
在 JavaScript 裏咱們須要的是一個更靠近 Haskell 而不是 Java 類型系統。
去年我預測區塊鏈和金融會計將會成爲 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 Systems、Zumba Fitness、The Wall Street Journal、ESPN 和 BBC 等,也是不少機構的頂級藝術家,包括但不限於 Usher、Frank Ocean 以及 Metallica。
大多數時間,他都在 San Francisco Bay Area,同這世上最美麗的女子在一塊兒。
感謝 JS_Cheerleader。
若是發現譯文存在錯誤或其餘須要改進的地方,歡迎到 掘金翻譯計劃 對譯文進行修改並 PR,也可得到相應獎勵積分。文章開頭的 本文永久連接 即爲本文在 GitHub 上的 MarkDown 連接。
掘金翻譯計劃 是一個翻譯優質互聯網技術文章的社區,文章來源爲 掘金 上的英文分享文章。內容覆蓋 Android、iOS、前端、後端、區塊鏈、產品、設計、人工智能等領域,想要查看更多優質譯文請持續關注 掘金翻譯計劃、官方微博、知乎專欄。