返學(xué)費網(wǎng) > 培訓(xùn)機構(gòu) > 全國IT培訓(xùn)中心
想了解學(xué)javascript有前途嗎嗎?想了解JavaScript的發(fā)展前景與未來預(yù)測,JavaScript能應(yīng)用在哪些方向?未來前景怎么樣?,為什么這么多程序員覺得前端開發(fā)很難做下去??? 嗎?......本文帶你一探究竟。
作者:Alejandro Hernandez 翻譯:瘋狂的技術(shù)宅 原文: 未經(jīng)允許嚴禁轉(zhuǎn)載 每個市場都受到某些常見概念的制約, 也不例外。產(chǎn)品生命周期就是其中的一個概念,它可用于多個不同的環(huán)境,用以了解和預(yù)測產(chǎn)品的行為。這是一個商業(yè)概念,能夠幫助我們了解產(chǎn)品在其生命中經(jīng)歷的階段,并解釋這些階段對其受歡迎程度的影響 —— 在大多數(shù)情況下以銷售情況來體現(xiàn)。可以通過觀察市場行為模式評估產(chǎn)品當(dāng)前所在的階段,從而對其受歡迎的程度做出一些預(yù)測。產(chǎn)品生命周期有四個階段:引入、增長、成熟和下降,在上圖中,你可以看到每個階段對預(yù)期產(chǎn)品銷售的影響。例如智能手機的銷售額并沒有像五年前那樣增長 —— 實際情況恰恰相反,客觀地說智能手機正在進入成熟階段。在過去幾年中,可以看到在 中引入了許多新技術(shù),但我們需要時間來了解市場將如何采用它們。沒有人想成為掌握無用技術(shù)的專家。在本文中,我將分析 的流行度,以及可能影響這種流行度的因素,并嘗試預(yù)測 的未來趨勢。 語言功能的未來自歐洲計算機制造商協(xié)會(ECMA)為 建立年度發(fā)布周期的機制以來,我們還沒有看到太多的新功能出現(xiàn)在語言中 —— 每年只有幾個。這可能是被編譯為 ES5 的語言增加的原因之一,如 或 ReasonML 都為社區(qū)高度要求的語言帶來了新功能。但這并不新鮮 —— 之前曾經(jīng)歷過這個過程(),這些功能最終會被合并到語言標準本身,這可能是我們未來可以期待的新類型的功能。但是我們開始看到隨著瀏覽器中 的可用性的增加,compile-to-js 的游戲規(guī)則發(fā)生了變化?,F(xiàn)在我們幾乎可以用任何一種語言,并將其編譯為在瀏覽器中以幾乎本機的速度運行,更重要的是,我們已經(jīng)開始看到未來功能的支持,如線程支持,這將使我們能夠利用代表未來的的多處理器架構(gòu)設(shè)備。 的官方工具鏈能夠幫助你編譯 C/C++ 代碼,但是許多社區(qū)也提供了不同語言的編譯器,如 Rust,Python,Java 和 Blazor(C#)。特別是 Rust 社區(qū)非常活躍,我們開始看到完整的前端框架,如Yew 和 Dodrio。這為基于瀏覽器的應(yīng)用帶來了更多新的可能性,你只需要測試一些使用 構(gòu)建的優(yōu)秀應(yīng)用,就可以知道基于瀏覽器的近乎原生的應(yīng)用現(xiàn)在已經(jīng)成為現(xiàn)實,例如 Sketchup 或 Magnum。編譯為 ES5 的類型語言已經(jīng)足夠成熟,玩家也已經(jīng)很成熟,并且在不久的將來這些語言并不會消失(或與ES合并),但我們會看到類型語言會緩慢的改變 。Web 端前端框架每年,我們都會在 web 前端框架市場上看到一場大戰(zhàn),由于 React 推出了他們的 game-changer、Virtual DOM 等技術(shù),在過去幾年里一直是無可爭議的贏家,可以看到它的競爭者幾乎也用了類似的技術(shù),以便在戰(zhàn)斗中不被淘汰。幾年前,我們看到 Svelte(一種“編譯框架”)引入了一種全新的 Web 應(yīng)用開發(fā)方法: 依賴在編譯后消失,只留下小而高效的 代碼。然而這個功能還不足以說服社區(qū)轉(zhuǎn)移到 Svelte,但隨著最近推出的 Svelte 3.0 將實時響應(yīng)式編程引入框架并使社區(qū)激動不已,所以也許我們正在見證前端框架中的下一個重大事件。靈感來自 destiny operator:var a = 10; var b <= a + 1; a = 20; Assert.AreEqual(21, b); Svelte 在編譯時指示代碼以拓撲順序執(zhí)行,通過重載 label 語句,為 帶來響應(yīng)性:var a = 10; $: b = a + 1; a = 20; Assert.AreEqual(21, b); 這是一個激進的新想法,可能會在不同的情況下有所幫助,因此 Svelte 的創(chuàng)建者也在 svelte-gl(一個編譯器框架)上工作,它將直接從 HTMLx 中聲明的 3D 場景圖生成低級 WebGL 指令。不能說 React,Angular 和 Vue.js 將會在一夜之間消失,他們的社區(qū)非常龐大,并且將在未來幾年保持這種態(tài)勢 —— 我們甚至不確定 Svelte 是否會成為真正的繼任者,但我們可以確定的是:我們遲早會使用不同的東西。WebXR 和沉浸式 Web 的未來虛擬現(xiàn)實在過去 60 年里一直在努力尋求成為主流,但這項技術(shù)還沒有準備好。不到十年前,當(dāng) Jon Carmack 加入 Oculus VR(現(xiàn)在是 Facebook 的一部分, LLC)時,新的 VR 浪潮開始興起,從那時起,我們已經(jīng)看到很多新設(shè)備支持不同類型的 VR,當(dāng)然還有支持 VR 的應(yīng)用程序的激增。瀏覽器供應(yīng)商不想失去這個機會,因此他們加入了 WebVR 規(guī)范,允許使用 WebGL 在 中創(chuàng)建虛擬世界,并且出現(xiàn)了 three.js 之類知名的庫。然而擁有 6dof 設(shè)備的用戶的市場份額對于大規(guī)模 Web 部署來說仍然微不足道,但移動網(wǎng)絡(luò)仍然能夠通過設(shè)備定位 API 提供 3D 體驗,所以我們能夠看到一堆實驗性的應(yīng)用和很多全景視頻。2021年,隨著 ARKit 和 ARCore 的推出,新功能被引入移動設(shè)備和帶有 AR 與 MR 體驗的各種應(yīng)用程序。但是,當(dāng)你探索周圍的世界時,為特定的 AR 體驗下載一個特定的程序仍然感覺有點不自然。如果我們只用一個程序來探索不同的體驗……這聽起來很熟悉。我們過去用瀏覽器解決了這個問題,為什么不再來一次?去年,Mozilla 將WebXR設(shè)備API規(guī)范(在撰寫本文時,最后一份工作草案是在兩周前將 AR,VR 和 MR (ergo XR)功能引入了瀏覽器。一些最重要的瀏覽器供應(yīng)商緊隨其后,但有一個重要的例外:移動版 Safari,所以為了證明自己的觀點,Mozilla 發(fā)布了一個支持 WebXR 的iOS平臺瀏覽器 WebXR Viewer?,F(xiàn)在,這是一個重要的步驟,因為 AR 和 VR 的結(jié)合將 6dof 帶到了移動設(shè)備和基于移動設(shè)備的耳機,如 Google Cardboard 或 Samsung Gear VR等,大幅提高了 6dof 設(shè)備的市場份額,并實現(xiàn)大規(guī)模 Web 部署的可能性。與此同時,Mozilla 的工作人員一直致力于開發(fā)一個新的 Web 框架,用以促進創(chuàng)建名為 A-Frame 的 3D 世界和應(yīng)用程序,這是一個基于組件的聲明框架,其 HTML 語法基于 three.js 和 WebGL,它只考慮一件事 —— 將樂趣和輕松帶到 Web 編程中。這是他們對沉浸式 Web 討伐的一部分,這是關(guān)于未來 Web 的一系列新構(gòu)想。幸運的是他們并不孤單,我們將會看到越來越多的身臨其境的體驗頁面。如果你想嘗試一下,請下載 WebXR Viewer 并訪問此站點了解沉浸式網(wǎng)絡(luò)的可能性。再次強調(diào),標準的基于瀏覽器的應(yīng)用不會在一兩年內(nèi)消失 —— 我們可能會一直使用它們。但 3D 應(yīng)用程序和 XR 體驗正在增長,市場已經(jīng)準備就緒并且渴望擁抱它們。ES6 的原生支持在過去十年中,幾乎所有用 發(fā)明的技術(shù)都是為了解決瀏覽器底層實現(xiàn)所產(chǎn)生的問題而創(chuàng)建的,但是過去幾年平臺本身已經(jīng)成熟了很多,而且大多數(shù)問題已經(jīng)消失了,我們可以看到其與 Lodash 一起統(tǒng)治了性能基準。DOM 也是如此,其存在的問題曾經(jīng)是創(chuàng)建 Web 應(yīng)用框架的靈感?,F(xiàn)在它卻是成熟的API,你可以不用框架創(chuàng)建程序 —— 實際上這就是 web 。它們是創(chuàng)建基于組件的應(yīng)用程序平臺的“框架”。關(guān)于平臺演變的另一個有趣的部分是語言本身。過去幾年我們一直通過 Babel.js 來使用 的最新功能,但由于標準本身在最后一點開始停滯不前幾年,這足以讓瀏覽器廠商實現(xiàn)他們的大部分功能,包括靜態(tài)導(dǎo)入聲明的原生支持。所以現(xiàn)在我們可以開始考慮在沒有 Babel.js 或其他編譯器的情況下創(chuàng)建應(yīng)用程序,因為我們(再次)支持自己的平臺中的語言功能,以及由于 Node.js 使用了與 Google Chrome 相同的 V8 VM ,我們已經(jīng)看到 Node.js 對 ES6 更強的支持。并不是說我們不會再看到專業(yè)級的應(yīng)用程序編譯,但是這意味著從基于瀏覽器的應(yīng)用開始將像以前一樣簡單而有趣。服務(wù)器端 盡管 在 1995 年就可以基于 Netscape Server 開發(fā)服務(wù)器端,但直到 Ryan Dahl 在 2009 年的演示之后, 才開始被認真的考慮用于服務(wù)器端應(yīng)用。在過去十年中,Node.js 發(fā)生了很多事情。它不斷發(fā)展和成熟,再次創(chuàng)造了突破新技術(shù)的機會。Node.js 的創(chuàng)作者 Ryan Dahl 一直致力于用 Deno 探索服務(wù)器端安全的應(yīng)用程序的新視角,這個平臺本身支持最新的語言功能 async/await,以及最受歡迎的能夠編譯為 js 語言的 ,由于他基于Rust的實現(xiàn)以及 Tokio 的使用,能夠達到最佳性能 。但更重要的是,新的安全哲學(xué)將其與大多數(shù)服務(wù)器端平臺區(qū)分開來,(如Python,Ruby 或 Java)。受瀏覽器安全模型的啟發(fā),Deno 只有在用戶明確授予進程權(quán)限后才能使用主機的資源,這在開始時可能有點乏味。但是僅僅通過信任平臺,允許我們在安全的環(huán)境中運行不安全的代碼,可能會產(chǎn)生很多重要的影響。Node.js 的未來仍在那里,但我們可能會開始看到像 AWS Lambda 這樣的 服務(wù)和 Azure Functions 提供 Deno 功能的替代方案,在其系統(tǒng)上提供不安全的服務(wù)器端代碼執(zhí)行。結(jié)論這些都是 世界激動人心的地方 —— 許多技術(shù)已經(jīng)成熟到足以為創(chuàng)新留出大量空間的地步,活躍的社區(qū)一只都在用令人驚嘆和難以置信的想法讓我們驚訝,而且我們期望有很多新的替代方法來建立成熟的工具,因為他們的成熟階段很快就要到了;我們不會停止使用它們,因為它們中的大部分都非常好,并且在實際項目中有充足的證據(jù),但是令人興奮的新的市場將開始出現(xiàn),你最好做好準備。隨著開發(fā)速度的提高,掌握最新的 動態(tài)并不容易,但有一些資源可以提供幫助。首先在我看來,最重要的新聞來源是 Echo JS,每小時你都會獲得大量的新內(nèi)容。但是如果你沒有時間,那么 Weekly 時事通訊為你提供一周的 精彩摘要。除此之外,關(guān)注世界各地的會議以及 JSConf,React Conf 等 YouTube 頻道也很重要,Google Chrome 也非常有幫助。相反,如果你有興趣看到一些建設(shè)性的批評 的方向,我建議閱讀由 Justen Robertson 撰寫的作為一個JS開發(fā)人員,這是什么使我夜不能寐 一文。歡迎關(guān)注前端公眾號:前端先鋒,領(lǐng)取前端工程化實用工具包。
,一門全棧的語言,無論是前端,還是后臺,都能輕松的用它完成,隨處可見它的身影,那么,它能做些什么呢?下面和廣州小編一起來看看吧!?網(wǎng)頁開發(fā)css,,html。網(wǎng)頁開發(fā)的三劍客,是每個人網(wǎng)頁前端開發(fā)者都必須要掌握的,而作為web2.0動態(tài)交互開發(fā)的主力軍,開發(fā)也開始受到越來越多的人重視,不可計數(shù)的框架層出不窮,從早期的dojo,prototype,jquery,到現(xiàn)在的vue,angular,react,開發(fā)者們對于js框架的研究開發(fā)也從未停止腳步,在可見的未來,也會相繼有更多的框架面世。后端開發(fā)v8的誕生,node的出現(xiàn),讓的開發(fā)者們一下子翻身做了主人,原來只能做前端的,現(xiàn)在居然可以用來開發(fā)后端。而天生異步的處理,讓他在IO方面的性能似乎看起來一點不弱??蛻舳碎_發(fā)“不能開發(fā)客戶端桌面的語言不是好語言。”通過electron技術(shù),開發(fā)在客戶端開發(fā)上也大放異彩,許許多多多編輯器都是采用的js開發(fā)的,例如我們耳熟能詳?shù)腶tom,以及好用到哭的vscode,它們都是使用js開發(fā)出來的客戶端軟件,或許性能表現(xiàn)方面不如Java那般強勢,但是隨著個人電腦的性能的提升,哪點效率問題幾乎可以被我們忽視掉。移動應(yīng)用僅需要一套代碼就可以在各個環(huán)境里暢行無阻曾經(jīng)是人們夢寐以求的,現(xiàn)在這個夢想成為了現(xiàn)實,只需要js,你就能輕松開發(fā)出適合各個平臺的應(yīng)用。伴隨著小程序,pwa等等新技術(shù)的發(fā)展,在移動領(lǐng)域方面也有了更加充足的話語權(quán)。等技術(shù)的發(fā)展,也讓js開發(fā)app開始照進了現(xiàn)實。物聯(lián)網(wǎng)在這個萬物互聯(lián)的時代,物聯(lián)網(wǎng)領(lǐng)域?qū)蔀槔^互聯(lián)網(wǎng)之后新的競爭領(lǐng)域。而開發(fā)作為互聯(lián)網(wǎng)的產(chǎn)物,同樣不想放棄物聯(lián)網(wǎng)這塊大肥肉,配合已有的cylon,ninja sphere等成熟框架。已成為物聯(lián)網(wǎng)解決方案的重要組成部分??偨Y(jié)似乎已經(jīng)沒有什么能夠阻擋的腳步,似乎各個領(lǐng)域都可以使用開發(fā)。但是術(shù)業(yè)有專攻,其他語言同樣有著他們的價值所在。沒有任何一個技術(shù)可以一家獨大,也沒有任何一個語言可以取代所有,百花爭芳才是我們最想看到的。
無論是新手還是幾年的前端開發(fā)程序員,都會又這樣的經(jīng)歷:當(dāng)學(xué)習(xí)了一種前端技術(shù)的時候,同時會有幾種新的前端技術(shù)誕生。 還有,你選擇的那種前端技術(shù),也許已經(jīng)過時了。在抱怨過后,會繼續(xù)去學(xué)習(xí)新技術(shù),或者慢慢放棄。但是很少人會考究,為什么會出現(xiàn)這個問題。普遍解釋似乎是 web 開發(fā)者天生不耐煩,永遠追求最前沿的技術(shù),趕時髦??偟膩碚f:前端技術(shù)更迭如此之快是整個開發(fā)者社區(qū)的不明智(而你的不明智行為完全取決于你無法控制的因素)。不管真實原因是否是這樣,前端開發(fā)確實存在這樣的問題。前端技術(shù)是否真的變化如此之快?在探討原因之前,有必要驗證這個問題是否真實。考慮一下 Github 上星號最多的 前端技術(shù)列表:最短的 2.5 年也不是那么久 - 不到傳統(tǒng)桌面系統(tǒng)迭代周期的一半,這足以說明問題。 那么是什么原因?qū)е铝诉@種快速的,甚至是不可持續(xù)的變化?React造成這個問題的原因可能是 React。 作為一款功能強大的工具,它需要大量的輔助模塊和支持庫,而這正是問題出現(xiàn)的地方。React 社區(qū)是一個很大的微型庫架構(gòu)組織,其中應(yīng)用程序由許多獨立的單一功能 庫組成,該架構(gòu)是為了致敬 Unix 哲學(xué)。這種架構(gòu)的優(yōu)勢在于,隨著新的實踐的出現(xiàn),可以輕松地進行調(diào)整,這對快速創(chuàng)新(如過去幾年一樣)是有意義的。 缺點是增加了變化的影響范圍,并且需要大量的審查。這就是我的核心觀點: 的問題不在于語言,網(wǎng)絡(luò)或其他任何特定技術(shù),而是選擇的架構(gòu)無法讓開發(fā)者跟上變化趨勢。NPM 問題現(xiàn)代 最大的資產(chǎn)是 NPM。它提供了大量的模塊,可以滿足任何人的特定需求,但是很難過濾和決策。哪些庫真的被支持?哪些庫的功能是正確的?哪些不是有惡意的庫? 開發(fā)人員真正作為唯一的參考標準就是流行度 - 下載數(shù)量和 star 數(shù)量 - 這加速了庫的傳播。當(dāng)然,還有其他驗證庫的方法:可以通過 Github 問題閱讀并搜索 。你可以做一些測試,甚至自己檢查源代碼。但是這需要很多時間。這是 開發(fā)人員的弱點。作為一名面試官,我經(jīng)常會問面試者是如何選擇技術(shù),但回答往往讓我失望,因為知名度幾乎總是他們選擇某個庫的唯一標準。軟件工程至少部分是研究工作,我們需要培養(yǎng)初級程序員的研究能力。但即使這樣做了,這些可能性仍然會出現(xiàn)在他們身上。設(shè)想成為一名初級開發(fā)人員把自己設(shè)想為一個初級到中級的 開發(fā)者,首次編寫一個新的應(yīng)用程序。從完全空白,這讓事情變得簡單。你很佛系,所以從選擇一個簡單的框架開始。聽起來不錯(這也是你的唯一選擇)。作為準系統(tǒng)它沒有什么作用,所以選擇輔助庫的任務(wù)落在你肩上。如果你在做前端工作,它可能是 Redux 的表單和 API 請求的庫。如果是后端,它可能是 Express 的中間件。然后你開始搜索,搜索結(jié)果中的一篇來自 Medium(譯注:博客網(wǎng)站) 的博客推薦 X.js。該博客的作者是 X,但她從未表明這種特殊的利益沖突。Medium 上所有的博客都一樣,所以永遠不能用知名度來作為我們的參考標準。你錯過了指出了 X.js 中的一些重要不足之處的答復(fù),因為 Medium 在有意忽略。然后繼續(xù)搜索,發(fā)現(xiàn)了 Y.js.這次你在 Twitter 上找到一個鏈接 - 超過一百個點贊!這應(yīng)該值得信賴了吧,畢竟這么多人為自己"把關(guān)"了。你在感謝中點了個贊,然后跳轉(zhuǎn)到了 Github 的鏈接。但不是那么快。這個鏈接太老了 - 該庫現(xiàn)已棄用。你可以看出, 這個詞無處不在,十分醒目。Y.js 是“面向?qū)ο蟆钡?。你認為這是一件好事,隱約回想起 ComSci 第一年關(guān)于 Smalltalk 和消息傳遞的一些東西。但顯然這是非常糟糕的。另一篇 Medium 上的博客試圖解釋為什么,雖然推理有些模糊,并且用你不認識的密集術(shù)語來包裝。后來事實證明,這個術(shù)語是由該博客的作者發(fā)明的,文中權(quán)威的參考鏈接也來自他自己的博客。更糟糕的是,該帖稱,即使在 面試中提到 OOP 也會使你完全失業(yè)!你現(xiàn)在已經(jīng)迷失方向了。值得慶幸的是 - 有他的 $ 50 美元的 web 開發(fā)課程。你很慶幸找到這么好的資源,記下了鏈接,并點了贊。所以,你將轉(zhuǎn)向 Z.js,這個庫有更多的 star,文檔似乎不太有用。 盡管列出了很多方法,但如何實際使用? 至少看到它使用了一種叫做“標準 JS”的東西,你認為它與 ECMA 標準委員會有關(guān)? 其實并沒有。但怎樣才能避免這些坑呢? 誰來幫助你避免采坑? 高級開發(fā)人員也正在學(xué)習(xí)。 我們都卷入了追求最新技術(shù),追趕潮流的旋渦中,只是為了保持最新并保持就業(yè)。所以,你采取了看似最可靠的標準:Github 項目 star 最多。 這就是為什么 開發(fā)受到隨波逐流的影響。有句話叫做“方法不對,努力白費”所有的前端大神都有自己的學(xué)習(xí)方法,而學(xué)web前端的學(xué)習(xí)也基本一致,而對于一個什么都不懂的初學(xué)者,根本不會知道該怎么學(xué),這也是造成失敗的最直接原因。所以學(xué)web前端一定要有人指點。如果你處在迷茫期,找不到方向。應(yīng)該怎么做?像大多數(shù)抱怨者一樣,我只想表達不滿,而不是解決它們。 但我有一些想法: 警惕自我推銷在過去的幾年里, 世界出現(xiàn)了激進的自我營銷,這可能是因為付費在線培訓(xùn)材料的興起以及作為 Github名人的就業(yè)、咨詢優(yōu)勢。我對好的內(nèi)容沒有任何問題,但也出現(xiàn)了很多不誠實的手段:自我引用 ,發(fā)明專有術(shù)語(例如’Standard.js’) 考慮非微型庫架構(gòu)嘗試能提供大面積的功能,并且不需要很多插件來提高生產(chǎn)力的框架來開始你的項目 - 這將立即減少變化的影響范圍。 這是我對 Vue.js 非常感興趣的原因之一。 您也可以將 React 用作入門工具包或較大框架的一部分,如 Next。 不要過分滿足無理需求唯一需要知道整個公司技術(shù)棧細節(jié)的是自由身承包商,他們獲得了可觀的工資來完成項目。 否則,大多數(shù)雇主不需要你了解最新 React 的細節(jié)。 所以,避免學(xué)習(xí)所有東西的要求:大部分都是沒用的。我是胖虎,一個正在創(chuàng)業(yè)的前端工程師,如果你同樣迷茫不知道前端該如何學(xué)習(xí),可以加入我的自學(xué)團,會有知識分享,匹配學(xué)習(xí)伙伴,還可以參加我組織的上線項目及活動。想加入的伙伴給我留言或者直接私信。作者:IT新時代鏈接;為什么這么多程序員覺得前端開發(fā)很難做下去?
上述文章了解到關(guān)于JavaScript的發(fā)展前景與未來預(yù)測,JavaScript能應(yīng)用在哪些方向?未來前景怎么樣?,為什么這么多程序員覺得前端開發(fā)很難做下去??? ,讓我們對學(xué)javascript有前途嗎 有一個直觀的認知。我們發(fā)現(xiàn),作為一個優(yōu)秀的Java程序員是多么的自豪。
只要一個電話
我們免費為您回電