JavaScript被淘汰了嗎?
我在許多不同的網(wǎng)站(最近是在Quora)上多次閱讀到這個(gè)問(wèn)題,我一直在想這是不是真的。我在2018年才開(kāi)始web開(kāi)發(fā),所以我不了解JavaScript的歷史,也不了解它在開(kāi)發(fā)領(lǐng)域的現(xiàn)狀。
因此,我進(jìn)行了一些研究去了解JavaScript的過(guò)去和現(xiàn)在,我發(fā)現(xiàn)的結(jié)果相當(dāng)令人震驚。
我們?cè)?jīng)認(rèn)識(shí)的JavaScript確實(shí)已經(jīng)死了。
自1995年首次建立JavaScript以來(lái),JavaScript一直存在很多問(wèn)題。盡管進(jìn)行了一些更新,但許多主要問(wèn)題仍然沒(méi)有得到解決。
JavaScript的一些問(wèn)題包括:
缺少模塊系統(tǒng)
弱類型
高度依賴全局變量
由于語(yǔ)法的原因很難找到錯(cuò)誤
在過(guò)去的十年中,用該語(yǔ)言很難創(chuàng)建框架。AngularJS最初是基于JavaScript的框架,直到遇到擴(kuò)展框架的問(wèn)題,所以他們決定使用TypeScript(JavaScript的一種變體)重新編碼整個(gè)框架,并將其重命名為Angular。
人們對(duì)JavaScript的興趣似乎也在下降。通過(guò)查看過(guò)去5年“JavaScript”一詞在google上的搜索頻度,似乎也能看到這門(mén)語(yǔ)言正在慢慢走向衰落。
這意味著什么呢?JavaScript真的要死了嗎?
我當(dāng)時(shí)也這么想。當(dāng)我在2018年第一次學(xué)習(xí)JavaScript時(shí),JavaScript已擴(kuò)展為不僅僅面向客戶端應(yīng)用程序,已經(jīng)擴(kuò)展出許多涉及應(yīng)用程序不同周期的框架。
基于js的框架包括下面這些:
前端應(yīng)用程序(Angular,React,Vue.js)
后端應(yīng)用程序(Node.js,Express.js,Meteor.js)
Android / iOS(React Native,NativeScript,Ionic)
您可以在這里找到JavaScript庫(kù)的完整列表:https://en.wikipedia.org/wiki/List_of_JavaScript_libraries
上面列表中的大部分JavaScript庫(kù)是在過(guò)去10年中創(chuàng)建的。這些庫(kù)有很多社區(qū)支持,并保持步調(diào)一致的更新(Angular平均每6個(gè)月更新一次)。開(kāi)發(fā)人員對(duì)這些庫(kù)進(jìn)行了大量修改(尤其是前端框架),并在保持JavaScript的相關(guān)性方面發(fā)揮了巨大作用。
這也可以解釋為什么上面顯示的谷歌趨勢(shì)圖是向下的。對(duì)術(shù)語(yǔ)“JavaScript”的實(shí)際搜索呈下降趨勢(shì),但對(duì)JavaScript庫(kù)的搜索呈上升趨勢(shì)。
隨著JavaScript庫(kù)的興起,也有越來(lái)越多的用戶提出與這些庫(kù)有關(guān)的問(wèn)題。StackOverflow趨勢(shì)記錄了他們的問(wèn)題與某個(gè)標(biāo)簽相關(guān)的百分比??纯丛谶^(guò)去的十年中有多少關(guān)于JavaScript的問(wèn)題:
這解決了涉及JavaScript的問(wèn)題,
但是否解決了這門(mén)語(yǔ)言本身的問(wèn)題呢?
多年來(lái),人們對(duì)JavaScript的抱怨主要集中在其糟糕的語(yǔ)言特性上。值得慶幸的是,我們正在看到一個(gè)舊標(biāo)準(zhǔn)的復(fù)蘇,這有助于使語(yǔ)言更加具體和有效。
ECMAScript是一種編程語(yǔ)言,根據(jù)Ecma International創(chuàng)建的ECMA-262文檔進(jìn)行標(biāo)準(zhǔn)化。該文檔包含JavaScript作為編程語(yǔ)言必須遵循的標(biāo)準(zhǔn)列表。
ECMAScript創(chuàng)建于1997年,從1997年到2011年僅進(jìn)行了5次更新。這使JavaScript在21世紀(jì)的前十年一直保持著陳舊和過(guò)時(shí)的標(biāo)準(zhǔn)。直到2015年ECMAScript 6發(fā)行,這是對(duì)JavaScript的重大更改,允許許多類似的庫(kù)對(duì)其進(jìn)行修改。
自此ECMAScript已發(fā)布了5個(gè)版本,從2015年到2020年每年發(fā)布1個(gè)版本,并且現(xiàn)在還沒(méi)有停止。隨著發(fā)布版本步調(diào)的一致性,JavaScript開(kāi)始不斷接收更新,變得更加健壯、高效,并且適應(yīng)性更強(qiáng)。
說(shuō)了這么多,JavaScript真的死了嗎?
有些人會(huì)懷疑現(xiàn)在開(kāi)始學(xué)習(xí)是否為時(shí)已晚。正確的答案是JavaScript從未像現(xiàn)在這樣活躍。
隨著對(duì)該語(yǔ)言的貢獻(xiàn)和支持達(dá)到前所未有的高度,學(xué)習(xí)該語(yǔ)言對(duì)開(kāi)發(fā)者來(lái)說(shuō)將是一筆巨大的財(cái)富。因?yàn)橛腥绱硕嗟膸?kù)可以選擇,你可以只使用JavaScript框架組成整個(gè)堆棧。
要求開(kāi)發(fā)人員具有React和Angular經(jīng)驗(yàn)的公司數(shù)量正在大幅增加,并且沒(méi)有放緩的趨勢(shì)。
我建議你花些時(shí)間學(xué)習(xí)JavaScript。無(wú)論你打算從事該行業(yè)還是只是想學(xué)習(xí)它,我認(rèn)為將來(lái)需要在應(yīng)用程序中使用JavaScript的地方有很多。該語(yǔ)言將被用在越來(lái)越多的框架中。它是未來(lái)的趨勢(shì),而且發(fā)展得很快。
-
算法
+關(guān)注
關(guān)注
23文章
4612瀏覽量
92910 -
應(yīng)用程序
+關(guān)注
關(guān)注
37文章
3268瀏覽量
57713 -
javascript
+關(guān)注
關(guān)注
0文章
516瀏覽量
53866
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論