返學(xué)費(fèi)網(wǎng) > 培訓(xùn)機(jī)構(gòu) > 全國(guó)IT培訓(xùn)中心
想了解javascript就業(yè)率嗎?想了解JavaScript的發(fā)展前景與未來預(yù)測(cè)?? 嗎?......本文帶你一探究竟。
作者:Alejandro Hernandez 翻譯:瘋狂的技術(shù)宅 原文: 未經(jīng)允許嚴(yán)禁轉(zhuǎn)載 每個(gè)市場(chǎng)都受到某些常見概念的制約, 也不例外。產(chǎn)品生命周期就是其中的一個(gè)概念,它可用于多個(gè)不同的環(huán)境,用以了解和預(yù)測(cè)產(chǎn)品的行為。這是一個(gè)商業(yè)概念,能夠幫助我們了解產(chǎn)品在其生命中經(jīng)歷的階段,并解釋這些階段對(duì)其受歡迎程度的影響 —— 在大多數(shù)情況下以銷售情況來體現(xiàn)??梢酝ㄟ^觀察市場(chǎng)行為模式評(píng)估產(chǎn)品當(dāng)前所在的階段,從而對(duì)其受歡迎的程度做出一些預(yù)測(cè)。產(chǎn)品生命周期有四個(gè)階段:引入、增長(zhǎng)、成熟和下降,在上圖中,你可以看到每個(gè)階段對(duì)預(yù)期產(chǎn)品銷售的影響。例如智能手機(jī)的銷售額并沒有像五年前那樣增長(zhǎng) —— 實(shí)際情況恰恰相反,客觀地說智能手機(jī)正在進(jìn)入成熟階段。在過去幾年中,可以看到在 中引入了許多新技術(shù),但我們需要時(shí)間來了解市場(chǎng)將如何采用它們。沒有人想成為掌握無用技術(shù)的專家。在本文中,我將分析 的流行度,以及可能影響這種流行度的因素,并嘗試預(yù)測(cè) 的未來趨勢(shì)。 語言功能的未來自歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA)為 建立年度發(fā)布周期的機(jī)制以來,我們還沒有看到太多的新功能出現(xiàn)在語言中 —— 每年只有幾個(gè)。這可能是被編譯為 ES5 的語言增加的原因之一,如 或 ReasonML 都為社區(qū)高度要求的語言帶來了新功能。但這并不新鮮 —— 之前曾經(jīng)歷過這個(gè)過程(),這些功能最終會(huì)被合并到語言標(biāo)準(zhǔn)本身,這可能是我們未來可以期待的新類型的功能。但是我們開始看到隨著瀏覽器中 的可用性的增加,compile-to-js 的游戲規(guī)則發(fā)生了變化?,F(xiàn)在我們幾乎可以用任何一種語言,并將其編譯為在瀏覽器中以幾乎本機(jī)的速度運(yùn)行,更重要的是,我們已經(jīng)開始看到未來功能的支持,如線程支持,這將使我們能夠利用代表未來的的多處理器架構(gòu)設(shè)備。 的官方工具鏈能夠幫助你編譯 C/C++ 代碼,但是許多社區(qū)也提供了不同語言的編譯器,如 Rust,Python,Java 和 Blazor(C#)。特別是 Rust 社區(qū)非常活躍,我們開始看到完整的前端框架,如Yew 和 Dodrio。這為基于瀏覽器的應(yīng)用帶來了更多新的可能性,你只需要測(cè)試一些使用 構(gòu)建的優(yōu)秀應(yīng)用,就可以知道基于瀏覽器的近乎原生的應(yīng)用現(xiàn)在已經(jīng)成為現(xiàn)實(shí),例如 Sketchup 或 Magnum。編譯為 ES5 的類型語言已經(jīng)足夠成熟,玩家也已經(jīng)很成熟,并且在不久的將來這些語言并不會(huì)消失(或與ES合并),但我們會(huì)看到類型語言會(huì)緩慢的改變 。Web 端前端框架每年,我們都會(huì)在 web 前端框架市場(chǎng)上看到一場(chǎng)大戰(zhàn),由于 React 推出了他們的 game-changer、Virtual DOM 等技術(shù),在過去幾年里一直是無可爭(zhēng)議的贏家,可以看到它的競(jìng)爭(zhēng)者幾乎也用了類似的技術(shù),以便在戰(zhàn)斗中不被淘汰。幾年前,我們看到 Svelte(一種“編譯框架”)引入了一種全新的 Web 應(yīng)用開發(fā)方法: 依賴在編譯后消失,只留下小而高效的 代碼。然而這個(gè)功能還不足以說服社區(qū)轉(zhuǎn)移到 Svelte,但隨著最近推出的 Svelte 3.0 將實(shí)時(shí)響應(yīng)式編程引入框架并使社區(qū)激動(dòng)不已,所以也許我們正在見證前端框架中的下一個(gè)重大事件。靈感來自 destiny operator:var a = 10; var b <= a + 1; a = 20; Assert.AreEqual(21, b); Svelte 在編譯時(shí)指示代碼以拓?fù)漤樞驁?zhí)行,通過重載 label 語句,為 帶來響應(yīng)性:var a = 10; $: b = a + 1; a = 20; Assert.AreEqual(21, b); 這是一個(gè)激進(jìn)的新想法,可能會(huì)在不同的情況下有所幫助,因此 Svelte 的創(chuàng)建者也在 svelte-gl(一個(gè)編譯器框架)上工作,它將直接從 HTMLx 中聲明的 3D 場(chǎng)景圖生成低級(jí) WebGL 指令。不能說 React,Angular 和 Vue.js 將會(huì)在一夜之間消失,他們的社區(qū)非常龐大,并且將在未來幾年保持這種態(tài)勢(shì) —— 我們甚至不確定 Svelte 是否會(huì)成為真正的繼任者,但我們可以確定的是:我們遲早會(huì)使用不同的東西。WebXR 和沉浸式 Web 的未來虛擬現(xiàn)實(shí)在過去 60 年里一直在努力尋求成為主流,但這項(xiàng)技術(shù)還沒有準(zhǔn)備好。不到十年前,當(dāng) Jon Carmack 加入 Oculus VR(現(xiàn)在是 Facebook 的一部分, LLC)時(shí),新的 VR 浪潮開始興起,從那時(shí)起,我們已經(jīng)看到很多新設(shè)備支持不同類型的 VR,當(dāng)然還有支持 VR 的應(yīng)用程序的激增。瀏覽器供應(yīng)商不想失去這個(gè)機(jī)會(huì),因此他們加入了 WebVR 規(guī)范,允許使用 WebGL 在 中創(chuàng)建虛擬世界,并且出現(xiàn)了 three.js 之類知名的庫。然而擁有 6dof 設(shè)備的用戶的市場(chǎng)份額對(duì)于大規(guī)模 Web 部署來說仍然微不足道,但移動(dòng)網(wǎng)絡(luò)仍然能夠通過設(shè)備定位 API 提供 3D 體驗(yàn),所以我們能夠看到一堆實(shí)驗(yàn)性的應(yīng)用和很多全景視頻。2021年,隨著 ARKit 和 ARCore 的推出,新功能被引入移動(dòng)設(shè)備和帶有 AR 與 MR 體驗(yàn)的各種應(yīng)用程序。但是,當(dāng)你探索周圍的世界時(shí),為特定的 AR 體驗(yàn)下載一個(gè)特定的程序仍然感覺有點(diǎn)不自然。如果我們只用一個(gè)程序來探索不同的體驗(yàn)……這聽起來很熟悉。我們過去用瀏覽器解決了這個(gè)問題,為什么不再來一次?去年,Mozilla 將WebXR設(shè)備API規(guī)范(在撰寫本文時(shí),最后一份工作草案是在兩周前將 AR,VR 和 MR (ergo XR)功能引入了瀏覽器。一些最重要的瀏覽器供應(yīng)商緊隨其后,但有一個(gè)重要的例外:移動(dòng)版 Safari,所以為了證明自己的觀點(diǎn),Mozilla 發(fā)布了一個(gè)支持 WebXR 的iOS平臺(tái)瀏覽器 WebXR Viewer?,F(xiàn)在,這是一個(gè)重要的步驟,因?yàn)?AR 和 VR 的結(jié)合將 6dof 帶到了移動(dòng)設(shè)備和基于移動(dòng)設(shè)備的耳機(jī),如 Google Cardboard 或 Samsung Gear VR等,大幅提高了 6dof 設(shè)備的市場(chǎng)份額,并實(shí)現(xiàn)大規(guī)模 Web 部署的可能性。與此同時(shí),Mozilla 的工作人員一直致力于開發(fā)一個(gè)新的 Web 框架,用以促進(jìn)創(chuàng)建名為 A-Frame 的 3D 世界和應(yīng)用程序,這是一個(gè)基于組件的聲明框架,其 HTML 語法基于 three.js 和 WebGL,它只考慮一件事 —— 將樂趣和輕松帶到 Web 編程中。這是他們對(duì)沉浸式 Web 討伐的一部分,這是關(guān)于未來 Web 的一系列新構(gòu)想。幸運(yùn)的是他們并不孤單,我們將會(huì)看到越來越多的身臨其境的體驗(yàn)頁面。如果你想嘗試一下,請(qǐng)下載 WebXR Viewer 并訪問此站點(diǎn)了解沉浸式網(wǎng)絡(luò)的可能性。再次強(qiáng)調(diào),標(biāo)準(zhǔn)的基于瀏覽器的應(yīng)用不會(huì)在一兩年內(nèi)消失 —— 我們可能會(huì)一直使用它們。但 3D 應(yīng)用程序和 XR 體驗(yàn)正在增長(zhǎng),市場(chǎng)已經(jīng)準(zhǔn)備就緒并且渴望擁抱它們。ES6 的原生支持在過去十年中,幾乎所有用 發(fā)明的技術(shù)都是為了解決瀏覽器底層實(shí)現(xiàn)所產(chǎn)生的問題而創(chuàng)建的,但是過去幾年平臺(tái)本身已經(jīng)成熟了很多,而且大多數(shù)問題已經(jīng)消失了,我們可以看到其與 Lodash 一起統(tǒng)治了性能基準(zhǔn)。DOM 也是如此,其存在的問題曾經(jīng)是創(chuàng)建 Web 應(yīng)用框架的靈感?,F(xiàn)在它卻是成熟的API,你可以不用框架創(chuàng)建程序 —— 實(shí)際上這就是 web 。它們是創(chuàng)建基于組件的應(yīng)用程序平臺(tái)的“框架”。關(guān)于平臺(tái)演變的另一個(gè)有趣的部分是語言本身。過去幾年我們一直通過 Babel.js 來使用 的最新功能,但由于標(biāo)準(zhǔn)本身在最后一點(diǎn)開始停滯不前幾年,這足以讓瀏覽器廠商實(shí)現(xiàn)他們的大部分功能,包括靜態(tài)導(dǎo)入聲明的原生支持。所以現(xiàn)在我們可以開始考慮在沒有 Babel.js 或其他編譯器的情況下創(chuàng)建應(yīng)用程序,因?yàn)槲覀?再次)支持自己的平臺(tái)中的語言功能,以及由于 Node.js 使用了與 Google Chrome 相同的 V8 VM ,我們已經(jīng)看到 Node.js 對(duì) ES6 更強(qiáng)的支持。并不是說我們不會(huì)再看到專業(yè)級(jí)的應(yīng)用程序編譯,但是這意味著從基于瀏覽器的應(yīng)用開始將像以前一樣簡(jiǎn)單而有趣。服務(wù)器端 盡管 在 1995 年就可以基于 Netscape Server 開發(fā)服務(wù)器端,但直到 Ryan Dahl 在 2009 年的演示之后, 才開始被認(rèn)真的考慮用于服務(wù)器端應(yīng)用。在過去十年中,Node.js 發(fā)生了很多事情。它不斷發(fā)展和成熟,再次創(chuàng)造了突破新技術(shù)的機(jī)會(huì)。Node.js 的創(chuàng)作者 Ryan Dahl 一直致力于用 Deno 探索服務(wù)器端安全的應(yīng)用程序的新視角,這個(gè)平臺(tái)本身支持最新的語言功能 async/await,以及最受歡迎的能夠編譯為 js 語言的 ,由于他基于Rust的實(shí)現(xiàn)以及 Tokio 的使用,能夠達(dá)到最佳性能 。但更重要的是,新的安全哲學(xué)將其與大多數(shù)服務(wù)器端平臺(tái)區(qū)分開來,(如Python,Ruby 或 Java)。受瀏覽器安全模型的啟發(fā),Deno 只有在用戶明確授予進(jìn)程權(quán)限后才能使用主機(jī)的資源,這在開始時(shí)可能有點(diǎn)乏味。但是僅僅通過信任平臺(tái),允許我們?cè)诎踩沫h(huán)境中運(yùn)行不安全的代碼,可能會(huì)產(chǎn)生很多重要的影響。Node.js 的未來仍在那里,但我們可能會(huì)開始看到像 AWS Lambda 這樣的 服務(wù)和 Azure Functions 提供 Deno 功能的替代方案,在其系統(tǒng)上提供不安全的服務(wù)器端代碼執(zhí)行。結(jié)論這些都是 世界激動(dòng)人心的地方 —— 許多技術(shù)已經(jīng)成熟到足以為創(chuàng)新留出大量空間的地步,活躍的社區(qū)一只都在用令人驚嘆和難以置信的想法讓我們驚訝,而且我們期望有很多新的替代方法來建立成熟的工具,因?yàn)樗麄兊某墒祀A段很快就要到了;我們不會(huì)停止使用它們,因?yàn)樗鼈冎械拇蟛糠侄挤浅:茫⑶以趯?shí)際項(xiàng)目中有充足的證據(jù),但是令人興奮的新的市場(chǎng)將開始出現(xiàn),你最好做好準(zhǔn)備。隨著開發(fā)速度的提高,掌握最新的 動(dòng)態(tài)并不容易,但有一些資源可以提供幫助。首先在我看來,最重要的新聞來源是 Echo JS,每小時(shí)你都會(huì)獲得大量的新內(nèi)容。但是如果你沒有時(shí)間,那么 Weekly 時(shí)事通訊為你提供一周的 精彩摘要。除此之外,關(guān)注世界各地的會(huì)議以及 JSConf,React Conf 等 YouTube 頻道也很重要,Google Chrome 也非常有幫助。相反,如果你有興趣看到一些建設(shè)性的批評(píng) 的方向,我建議閱讀由 Justen Robertson 撰寫的作為一個(gè)JS開發(fā)人員,這是什么使我夜不能寐 一文。歡迎關(guān)注前端公眾號(hào):前端先鋒,領(lǐng)取前端工程化實(shí)用工具包。
上述文章了解到關(guān)于JavaScript的發(fā)展前景與未來預(yù)測(cè)?? ,讓我們對(duì)javascript就業(yè)率 有一個(gè)直觀的認(rèn)知。我們發(fā)現(xiàn),作為一個(gè)優(yōu)秀的Java程序員是多么的自豪。