【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

Aemple發表於2019-01-29

譯者:Aemple

原文作者:Eric Elliott

原文地址: medium.com/javascript-…

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

概述

白駒過隙,忽然而已。轉眼又到了一年的這個時候,舊的一年的結束和新的一年的開始,我們照常對過去的一年做一些總結並對未來的一年做一些展望:我們的目標是尋找出在工作最具有ROI(投資回報率)的學習主題和技術。人們在勞工作中使用了什麼?趨勢是什麼樣的?我們並沒有試圖挑選最好的東西,而是採用資料驅動的方法來幫助你回答面試官分問題(例如:“你知道__(填空)__嗎?)並以此來提高你對技術發展學習的認知。

我們不會去考慮哪些是最快的效能最好的,或者哪些具有最佳的程式碼質量。我們假設他們都是快速度高效能的,他們都足以支撐完成工作。剩下最重要的重點就是:實際上大規模使用了什麼?

元件框架

我們首先看到的一個重要的問題是元件框架的當前狀態,我們將主要關注三大問題:React,Angular和Vue.js,主要是因為它們的使用度都遠遠超過了其餘框架,是工作中主要採用的技術。

去年我注意到Vue.js增長的速度十分迅猛,並提到它可能會在2018年超越Angular(詳細請看:medium.com/javascript-… Top JavaScript Libraries & Tech to Learn in 2018)。 但這種情況並沒有發生,但它仍在快速增長。我還預測轉換React使用者會相比Angular困難許多,因為React的使用者滿意度比Angular強得多 - React使用者根本沒有令人信服的理由進行切換。這與2018年的預期一致.React在2018年牢牢控制其領先優勢。

有趣的是,這三個框架仍然呈指數級增長,同比增長。

預測:React在2019年將繼續占主導地位

在我留意React的第三年裡,React仍然比Angular有更高的滿意度(詳細可檢視:2018.stateofjs.com/cn/front-en…

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題
說到React,它在不斷變得更好。自React 0.14以來,新的React hooks API取代了class我自己最難容忍的API。(class API仍然有效,但鉤子API真的好多了)。React還有許多優秀API改進,比如更好地支援程式碼拆分和併發渲染(具體請參閱 reactjs.org/blog/2018/1… 這都是將使它在2019年難以被擊敗的理由。現在,React毫無疑問是該領域最具吸引力的前端框架。(譯者PS:借用尤大的話 我們應該去關注怎麼把一個框架學好,而不是一味的去比較那個更強)

資料展示

我們將檢視一些關鍵資料來衡量行業的興趣和用途:

1、Google搜尋趨勢。不是我最喜歡的指標,但有利於大局觀。

2、包的下載量。這裡的目的是在使用框架的過程中捕獲真實使用者。

3、來自Indeed.com的工作板釋出。使用前幾年的相同方法來保持一致性。

Google搜尋趨勢(2014年1月 - 2018年12月)

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

React在2018年1月的搜尋趨勢中超越了Angular,並在今年年底保持領先地位。Vue.js現在在圖表上保持可見位置,但仍然是搜尋趨勢中的一個小因素。比較去年的圖表(2014年1月 - 2017年12月):

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

包的下載量

軟體包下載為我們提供了實際使用內容的公平指示,因為開發人員經常在工作時下載所需的軟體包。

過於聰明的讀者會注意到,有時候他們會從他們內部的公司包裝回購中下載這些東西,我回答說:“為什麼是,這確實發生了 - 對所有三個框架都有效。”他們都在企業中建立了立足點,並且我對大規模資料的平均功率充滿信心。

React月度下載:2014-2018

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

Angular月度下載:2014-2018

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

Vue每月下載:2014-2018

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

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

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

“但你忘記了Angular 1.0的全部內容!它在企業中仍然很大。“

不,我沒忘記。Angular 1.0在企業中仍然使用的方式與Windows XP在企業中仍然使用的方式相同。肯定會有足夠多的人注意到這一點,但新版本早已相形見絀,現在它已經不如其他框架重要了。

為什麼?因為整個軟體行業,以及在所有部門(包括企業)中使用JavaScript的速度都在快速增長,以至於即使舊版應用程式從未升級,新安裝也會使舊版安裝變得相形見絀。

有關證據,請再看一下這些下載圖表。2018年的下載量比前幾年的總和還要多。

招聘委員會發布

Indeed.com彙總了各種職位委員會的職位釋出。每年,我們都會在工作崗位上提及每個框架,以便更好地瞭解人們的招聘情況。這是今年的樣子(2018年12月按框架劃分的職位釋出):

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

  • React:24,640

  • Angular:19,032

  • jQuery:14,272

  • Vue:2,816

  • Ember(未圖示):2,397

同樣,今年的就業崗位比上一年多得多。我放棄了Ember,因為它顯然沒有以其他一切的速度增長。我不建議學習它來為將來的工作安排做準備。jQuery和Ember的工作變化不大,但其他一切都增長了很多。

值得慶幸的是,加入軟體工程領域的新人數量在2018年也增長了很多,但我們需要繼續僱用和培訓初級開發人員(這意味著我們需要合格的高階開發人員來指導他們),否則我們將不會保留與爆炸性的就業增長同步。相比之下,這是去年的圖表:

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

平均工資在2018年再次攀升,從每年110,000美元攀升至每年11.1萬美元。有趣的是,薪資清單落後於新的僱傭預期,如果招聘經理不調整開發商的市場並提供更大的加薪,他們將難以僱用和留住開發人員。保留和偷獵在2018年仍然是一個巨大的問題,因為員工在其他地方跳槽以獲得高薪工作。

保證資料儘量準確的方法:在Indeed.com上進行求職。為了消除誤報,我將搜尋與關鍵字“軟體”配對以增強相關性的機會,然後乘以~1.5(大致是使用“軟體”一詞​​的程式設計工作列表與不使用“軟體”的程式設計工作列表之間的差異。 )所有SERPS按日期排序,並檢查相關性。結果數字不是100%準確,但它們足以滿足本文中使用的相對近似值。

下面是譯者對框架這塊選擇的一些評論 有興趣的可以看看

from:Evan You

免責宣告:我是Vue的作者。

總的來說,我確實認為React將在2019年繼續保持強勢,但本文邏輯中存在一些根本性缺陷:

1、我對你的“滿意度評分”的定義感到困惑。來自JS狀態調查的滿意度評級應該計算為使用框架並將再次使用該框架的使用者的比例(兩者都將使用和不再使用)。在使用過React的14417位使用者中,13062會再次使用它,這是90.6%的滿意度。對於Vue來說,6374中的5810 = 91.2%。我不確定這是如何轉化為React的“使用者滿意度更高”。

2、我在其他地方已經提到了這一點,但谷歌趨勢和NPM下載是非常不準確的指標,有太多變數在起作用。Google Trends關鍵字的誤報是巨大的,無法擺脫; NPM下載與FB / Google的內部使用以及使用NPM /通過CDN /使用CI(具有依賴性快取與否)的框架的使用者百分比有很大關係。與當前使用情況相比,工作計數是延遲曲線。老實說,我已經在框架比較文章中看到過相同的問題方法,所以我只需要在這裡指出它。更相關的使用者數指標是Chrome devtools擴充套件的每週活躍使用者(React,Vue,Angular)) - React團隊還選擇在其ReactConf主題演講中使用它作為使用者計數指示器,但由於副檔名不是“官方”,因此Angular數字的準確性要低得多。

3、再一次,我厭倦了看到像這樣的文章宣傳“學習最主要的框架”,以便人們可以購買作者的指導服務 - 這是一個有興趣的派對的公然營銷。對於讀這篇文章的人:不要根據思想領袖的觀點選擇框架來學習。全部嘗試,權衡您的優先順序(技術要求,符合您的品味的API,獲得工作的重要性等)並做出自己的決定

作者回復:

Hi Evan

感謝您的深思熟慮,並祝賀您在Vue.js取得的巨大進步。

1、對不起。我在這些句子中談論的是React vs Angular,並不打算貶低Vue的出色使用者滿意度。保持偉大的工作!我澄清了有問題的句子。

2、我沒有使用“關鍵字”搜尋趨勢,因為你是對的。他們提供了許多誤報。但是,當你切換到主題時,那些誤報幾乎消失了,資料變得足夠乾淨,可以用於像這樣的高階概述。RE:npm計數 - 一旦專案變得足夠大,使用量就會在整個生態系統中分散,並且這些影響會更均勻地應用於所有頂級框架。如果你的人數不足,那只是因為它的使用尚未充分分散,無法從平均效應中受益 - 這隻能加強其他人佔有優勢的地步。至於“與FB /谷歌的內部使用有很多關係”的其他數字 - 你有沒有提到支援這種說法?Re:工作計數,是的,它是一個延遲曲線,Vue.js是塊上的新孩子,所以是的,近期,而不是2020年.RE:devtools,這是一個非常冒險的指標,因為許多使用者根本不使用它們,而且有些專案比其他專案更好地傳授他們的devtools。我們可以整天討論各種指標的相對優點,但本文的底線是工作規則,其他一切只是“哦,這裡有一些其他有趣的資料,所以我們可以證實相對的工作列表數字”。你提出了一些讀者應該記住的有趣觀點,但為了本文的目的,我堅持使用我的數字。

3、如果Vue.js繼續增長並設法趕上,我也會報告。事實上,如果主導框架非常好,(在這種情況下),首先學習它對求職者來說是一個非常好的高投資回報率策略。這只是一個事實,沒有任何個人偏見會改變它。如果您對我的培訓有所瞭解,您會發現我的風格是教授超越特定框架的原則,甚至適用於使用完全不同的語言。我對React生態系統沒有強烈的既得利益,我堅持這裡的建議。

JavaScript基礎知識

我每年都這麼說:關注基本原理。今年你將得到一些額外的幫助。所有軟體開發都是組合:將複雜問題分解為更小問題的行為,併為這些較小問題組成解決方案以形成您的應用程式。

但是當我向JavaScript受訪者詢問軟體工程中最基本的問題,“什麼是函式組合?”和“什麼是物件組合?”時,他們幾乎總是無法回答問題,即使他們每天都這樣做。

我一直以為這是一個非常嚴重的問題必須解決,所以我寫了一本關於這個主題的書:“Composing Software”(leanpub.com/composingso…

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

TypeScript

TypeScript在2018年繼續增長,並且它繼續被高估,因為型別安全似乎不是真實的東西(似乎沒有太多減少生產錯誤密度),並且在沒有TypeScript幫助的情況下在JavaScript中進行型別推斷確實非常好。您甚至可以使用TypeScript引擎使用Visual Studio Code在普通JavaScript中獲取型別推斷。或者為您喜歡的編輯器安裝Tern.js外掛。

對於大多數高階函式,TypeScript在其表面上繼續平坦。也許我只是不知道如何正確使用它(經過多年的定期生活 - 在這種情況下,他們真的需要提高可用性,文件,或兩者兼而有之),但我仍然不知道如何正確使用它在TypeScript中輸入地圖操作,它似乎無視感測器中發生的任何事情。它無法捕獲錯誤,並經常抱怨根本不是錯誤的錯誤。

它不夠靈活或功能不足以支援我對軟體的看法。但我仍然抱有希望,有一天它會新增我們需要的功能,因為在嘗試將它用於真實專案時,儘管它的缺點令我感到沮喪,但我也很喜歡能夠正確(和有選擇地)使用它的潛力當它真的有用時輸入東西。

我目前的評價:在非常有限的使用案例中非常酷,但對於大型製作應用程式而言,高估,笨拙且投資回報率非常低。具有諷刺意味的是,因為TypeScript將自己稱為“可擴充套件的JavaScript”。也許他們應該新增一個詞:“笨拙地擴充套件的JavaScript。”

我們對JavaScript的需求是在Haskell之後建模的型別系統,而在Java之後則更少。

其他組要學習的JavaScript技術

  • GraphQL來查詢服務
  • Redux管理應用程式狀態
  • redux-saga可以隔離副作用
  • react-feature-toggles可以輕鬆實現持續交付和測試
  • RITEway用於精美可讀的單元測試

加密行業的崛起

去年我預測區塊鏈和fin-tech技術將成為2018年值得關注的重要技術。這一預測很明顯。2017-2018的主要主題之一是加密的興起和建立價值網際網路的基礎。記住這句話。很快你就會聽到很多。

如果你像我一樣,自從P2P爆炸以來你一直在關注分散的應用程式,這已經很長時間了。現在,比特幣點燃了導火索並展示了分散式應用程式如何使用加密貨幣自我維持,爆炸是不可阻擋的。

比特幣在短短几年內增長了幾個數量級。你可能聽說2018年是一個“加密的冬天”,並且認為加密行業遇到了一些麻煩。這完全是胡說八道。真正發生的事情是在2017年底,比特幣在史詩般的指數增長曲線中再次觸及10倍,並且市場有所回落,每當比特幣市值增長10倍時就會出現這種情況。

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

在此圖表中,每個箭頭從另一個10倍點開始,並指向價格修正的低點。

加密ICO(初始硬幣產品)的籌款在2018年初達到頂峰,2017-2018融資泡沫帶來了新的就業機會湧入生態系統,在2018年1月達到了超過1萬個空缺職位。它已經恢復到大約2,400個(根據Indeed.com),但我們還很早,這個派對剛剛開始。

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

關於新興的加密行業還有很多話要說,但那是另一篇部落格文章。如果您有興趣,請閱讀“Blockchain Platforms and Tech to Watch in 2019”(medium.com/the-challen….

其他技術觀察

正如去年預測的那樣,這些技術在2018年繼續爆炸:

人工智慧/機器學習正在全面展開2018年結束時的30,000個開放式工作,深度假貨,令人難以置信的生成藝術,來自Adobe等公司研究團隊的驚人視訊編輯功能 - 從未有過更激動人心的時間來探索AI。

漸進式Web應用程式正在迅速成為現代Web應用程式的正確構建方式 - 增加了Google,Apple,Microsoft,Amazon等的功能和支援。令人難以置信的是,我將手機上的PWA視為理所當然。例如,我的手機上沒有安裝Twitter Android應用程式了。我專門使用Twitter PWA。

AR(擴增實境)VR(虛擬現實)MR(混合現實)全部聚集在一起,像Voltron一樣成為XR(eXtended Realty)。全職XR沉浸的未來即將來臨。我預計在5到10年內大規模採用消費者XR眼鏡。內部隱形眼鏡2018年開闢了數千個新工作崗位,這個行業將在2019年繼續爆發。

有興趣的可以觀看此視訊:youtu.be/JaiLJSyKQHk

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

機器人,無人駕駛飛機和自動駕駛汽車自主飛行無人機已經在這裡,自動機器人不斷改進,更多的自動駕駛汽車在2018年底與我們分享道路。這些技術將繼續發展並重塑我們周圍的世界到2019年並進入未來20年。

正如預測的那樣,量子計算在2018年取得了令人欽佩的進展,而且正如預測的那樣,它還沒有成為主流。事實上,我的預測,“它可能是2019年或之前的中斷真正開始”可能非常樂觀。

密碼空間的研究人員對量子安全加密演算法給予了額外的關注(量子計算將使今天許多關於計算費用昂貴的假設失效,而加密依賴於計算費用昂貴的東西),但儘管不斷湧現有趣的研究進展在2018年,最近的報告提出了一些觀點:

“量子計算在2000年至2017年期間已經在Gartner的炒作名單上進行了11次,每次都在炒作週期的最早階段列出,並且每次都被稱為超過十年。”

這讓我想起早期的人工智慧工作,這種工作在20世紀50年代開始升溫,在1980年代和1990年代取得了有限但有趣的成功,但僅僅在2010年開始變得非常令人興奮。

【譯】2019年值得學習的頂尖JavaScript框架和要學習的主題

相關文章