者 | Yanique Andre
譯者 | Arvin,責編 | 屠敏
頭圖 | CSDN 下載自東方 IC
出品 | CSDN(ID:CSDNnews)
以下為譯文:
JavaScript被淘汰了嗎?
我在許多不同的網站(最近是在Quora)上多次閱讀到這個問題,我一直在想這是不是真的。我在2018年才開始web開發,所以我不了解JavaScript的歷史,也不了解它在開發領域的現狀。
因此,我進行了一些研究去了解JavaScript的過去和現在,我發現的結果相當令人震驚。
我們曾經認識的JavaScript確實已經死了。
自1995年首次建立JavaScript以來,JavaScript一直存在很多問題。盡管進行了一些更新,但許多主要問題仍然沒有得到解決。
JavaScript的一些問題包括:
缺少模塊系統
弱類型
高度依賴全局變量
由于語法的原因很難找到錯誤
在過去的十年中,用該語言很難創建框架。AngularJS最初是基于JavaScript的框架,直到遇到擴展框架的問題,所以他們決定使用TypeScript(JavaScript的一種變體)重新編碼整個框架,并將其重命名為Angular。
人們對JavaScript的興趣似乎也在下降。通過查看過去5年“JavaScript”一詞在google上的搜索頻度,似乎也能看到這門語言正在慢慢走向衰落。
這意味著什么呢?JavaScript真的要死了嗎?
我當時也這么想。當我在2018年第一次學習JavaScript時,JavaScript已擴展為不僅僅面向客戶端應用程序,已經擴展出許多涉及應用程序不同周期的框架。
基于js的框架包括下面這些:
前端應用程序(Angular,React,Vue.js)
后端應用程序(Node.js,Express.js,Meteor.js)
Android / iOS(React Native,NativeScript,Ionic)
機器學習(TensorFlow)
您可以在這里找到JavaScript庫的完整列表:https://en.wikipedia.org/wiki/List_of_JavaScript_libraries
上面列表中的大部分JavaScript庫是在過去10年中創建的。這些庫有很多社區支持,并保持步調一致的更新(Angular平均每6個月更新一次)。開發人員對這些庫進行了大量修改(尤其是前端框架),并在保持JavaScript的相關性方面發揮了巨大作用。
這也可以解釋為什么上面顯示的谷歌趨勢圖是向下的。對術語“JavaScript”的實際搜索呈下降趨勢,但對JavaScript庫的搜索呈上升趨勢。
隨著JavaScript庫的興起,也有越來越多的用戶提出與這些庫有關的問題。StackOverflow趨勢記錄了他們的問題與某個標簽相關的百分比。看看在過去的十年中有多少關于JavaScript的問題:
這解決了涉及JavaScript的問題,
但是否解決了這門語言本身的問題呢?
多年來,人們對JavaScript的抱怨主要集中在其糟糕的語言特性上。值得慶幸的是,我們正在看到一個舊標準的復蘇,這有助于使語言更加具體和有效。
ECMAScript是一種編程語言,根據Ecma International創建的ECMA-262文檔進行標準化。該文檔包含JavaScript作為編程語言必須遵循的標準列表。
ECMAScript創建于1997年,從1997年到2011年僅進行了5次更新。這使JavaScript在21世紀的前十年一直保持著陳舊和過時的標準。直到2015年ECMAScript 6發行,這是對JavaScript的重大更改,允許許多類似的庫對其進行修改。
自此ECMAScript已發布了5個版本,從2015年到2020年每年發布1個版本,并且現在還沒有停止。隨著發布版本步調的一致性,JavaScript開始不斷接收更新,變得更加健壯、高效,并且適應性更強。
說了這么多,JavaScript真的死了嗎?
有些人會懷疑現在開始學習是否為時已晚。正確的答案是JavaScript從未像現在這樣活躍。
隨著對該語言的貢獻和支持達到前所未有的高度,學習該語言對開發者來說將是一筆巨大的財富。因為有如此多的庫可以選擇,你可以只使用JavaScript框架組成整個堆棧。
要求開發人員具有React和Angular經驗的公司數量正在大幅增加,并且沒有放緩的趨勢。
我建議你花些時間學習JavaScript。無論你打算從事該行業還是只是想學習它,我認為將來需要在應用程序中使用JavaScript的地方有很多。該語言將被用在越來越多的框架中。它是未來的趨勢,而且發展得很快。
原文:https://medium.com/dev-genius/is-javascript-development-dying-1dbce0094fc0
本文為 CSDN 翻譯,轉載請注明來源出處。
ava 和 Javascript 都最適合它們的使用,并且兩者也有相對不同的地方。
Java通常是:
一種強大的計算機編程語言。
它是構建軟件應用程序的獨立計算平臺。
它將每個項目視為對象和類。
Java 以 .class 擴展名編譯字節碼。
JavaScript 是:
一種輕量級的動態計算機編程語言。
它易于使用而不是用戶友好。
Javascript 用于使網頁更具吸引力。
也稱為腳本語言。
Java 和 Javascript 都是不同類型的應用程序。
JAVA 和 JAVASCRIPT 之間的基本組件,有一些基本組件使 java 和 javascript 彼此不同。
對象:
在Java中,對象只是基于類并以.class擴展名編譯其文件,而且,它永遠不會在不創建類的情況下制作任何程序,其次,Javascript 基于原型,原型也擴展為prototype.js。
語言:
Java 是一種強大、安全和靜態的編程語言,而 Javascript 是一種動態、輕量且易于使用的高級編程語言。
平臺:
Java 有一個獨立的平臺,Java 應用程序只運行在 JVM 上,而不是 Javascript 開發的瀏覽器,即使它的代碼也只運行在瀏覽器上。
記憶:
與此相比,JAVA 具有高文件使用設備的大量存儲空間,Javascript 不使用太多內存,并且將其文件存儲在比 java 更小的空間中。
編譯和解釋:
Java 既可以編譯也可以解釋其數據,而 Javascript 只解釋該語言。
并發:
在并發方面,Java 中有兩個基本術語基于線程的方法,其用法類似于拼接,而第二個術語,Javascript 中基于事件的方法,用于處理應用程序的更改。
移動應用:
Java 不僅支持 android,還支持 IOS 手機,另一方面,Javascript 意味著第三方使用。
這些是使 JAVA 和 JAVASCRIPT 彼此不同以及兩者用于不同用途的一些組件。
了解更多
tml5的流行近一兩年,在國內主要是移動端和html5游戲的發展,國外也是最近紛紛使用html5,如谷歌,全面的停止flash的廣告的投放量,用html5取代之,那么html5較html的區別在哪里了,下面就簡單地談談,列舉了13條區別。
1.html5和html的概念
我們現在web前端開發的靜態網頁,一般都是html4.0。同時是符合W3C的xhtml1.0規范來的。HTML4已經10多年了,不會有任何改變了。
html5的定義比較長,就說簡單和好理解點,可以簡單點理解成:HTML 5 ≈ HTML4.0+CSS3+JS+API 。首先要注意的是,HTML5雖然現在很火,但是HTML5標準還在制定中,標準仍在改變。
2.在文檔類型聲明上的不同
html顯得格外冗長,在大多數人書寫代碼,都是靠編輯工具自動生成。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
html5卻是不同,只有簡簡單單的聲明,這也方便人們的記憶,更加精簡。
<!DOCTYPE html>
3.在結構語義上
html4.0:沒有體現結構語義化的標簽,我們通常都是這樣來命名的
<div id="header"></div>
這樣表示網站的頭部。
html5:在語義上卻有很大的優勢。提供了一些新的html5標簽,比如:<header><nav ><article><aside><footer>
4. 簡化的語法
HTML5簡化了很多細微的語法,例如doctype的聲明,你只需要寫<!doctype html>就行了。HTML5與HTML5,XHTML1兼容,但是與SGML不兼容。
5. <canvas>標簽替代Flash
Flash給很多Web開發者帶來了麻煩,要在網頁上播放Flash需要一堆代碼和插件。<canvas>標簽使得開發者只要使用一個標簽就 能和用戶產生UI交互。雖然目前<canvas>標簽還不能實現Flash的所有功能,但是很快<canvas>就會讓 Flash看起來老土,哈哈!
6. 新增 <header> 和 <footer> 標簽
HTML5設計的一個原則是更好的體現網站的語義性,所以增加了<header>和<footer>這樣的標簽,用來明確表示網頁的結構。
7. 新增 <section> 和 <article> 標簽
與<header>, <footer>類似,<section>和<article>也有利于清晰化網頁的結構,更有利于SEO。
8. 新增 <menu> 和 <figure> 標簽
<menu>可以被用于創建傳統的菜單,也可以用于工具欄和上下文菜單。<figure>標簽使得網頁文字和圖片的排版更專業。
9. 新增 <audio> 和 <video> 標簽
這兩個標簽可能是HTML5里面最有用的兩個標簽了。顧名思義,這兩個標簽是用來播放音頻和視頻的。
可能在html4.0的時候,我們想要插入一段視頻,還需要引用一長段的代碼。但是在html5的情況下。我們只需要用于一個video標簽即可。
<video src - "視頻地址" ></wideo>
提供這樣的標簽有什么樣的好處呢?
第一:節省程序員寫代碼的時間。
第二:我覺得最主要還是在SEO的優化上。
不管是我們自己來對網頁模塊命名,還是有這樣的標簽。因為做網站最終的目的只有一個,那就是盈利。想盈利的話,就只有通過SEO優化的技術,把你網站排名做上來,這樣你的網站才有價值,且正是這一點,html5符合了這一點。為什么這么說呢?因為他定義的這些標簽,更加有利于優化,蜘蛛能識別你。
10. 全新的表單
HTML5對 <form> 和 <forminput> 標簽進行了大量修改,添加了很多新的屬性,也修改了很多屬性。
11. 刪除 <b> 和 <font> 標簽
這個改進我還無法理解。我不認為刪除這兩個標簽對代碼的改進有很大的幫助。官方的解釋是應該用CSS來替代這兩個標簽。但我還是覺得對于簡單的文本,這兩個標簽還是很方便的。
12. 刪除 <frame>, <center>, <big> 標簽
我已經記不得上次是什么時候使用這些標簽了。
13. 強大的繪圖功能
可能有些動畫,或者圖片,在html5可以通過強大的繪畫功能,加上JS可以實現。而在html4.0卻不行。
在HTML5中,有兩個東西,是可以進行繪圖的,我們一起來看看是哪兩個神奇的玩意。
1.Canvas標簽
Canvas 通過 JavaScript 來繪制 2D 圖形,Canvas 是逐像素進行渲染的。
在 canvas 中,一旦圖形被繪制完成,它就不會繼續得到瀏覽器的關注。如果其位置發生變化,那么整個場景也需要重新繪制,包括任何或許已被圖形覆蓋的對象。
SVG
SVG 是一種使用 XML 描述 2D 圖形的語言,SVG 基于 XML,這意味著 SVG DOM 中的每個元素都是可用的。您可以為某個元素附加 JavaScript 事件處理器。在 SVG 中,每個被繪制的圖形均被視為對象。如果 SVG 對象的屬性發生變化,那么瀏覽器能夠自動重現圖形。
與其他圖像格式相比(比如 JPEG 和 GIF),使用 SVG 的優勢在于:
(1)SVG 圖像可通過文本編輯器來創建和修改
(2)SVG 圖像可被搜索、索引、腳本化或壓縮
(3)SVG 是可伸縮的
(4)SVG 圖像可在任何的分辨率下被高質量地打印
(5)SVG 可在圖像質量不下降的情況下被放大
那么都兩者都可以用于繪圖,我們一起來看看他們之間有何區別:
Canvas
1.依賴分辨率
2.不支持事件處理器
3.弱的文本渲染能力
4.能夠以 .png 或 .jpg 格式保存結果圖像
5.最適合圖像密集型的游戲,其中的許多對象會被頻繁重繪
SVG
1.不依賴分辨率
2.支持事件處理器
3.最適合帶有大型渲染區域的應用程序(比如谷歌地圖)
4.復雜度高會減慢渲染速度(任何過度使用 DOM 的應用都不快)
5.不適合游戲應用
html5和html的區別甚多,就不在一一列舉了。
切圖網(qietu.com)是一家專門從事web前端開發的公司,專注we前端開發,關注用戶體驗,歡迎訂閱微信公眾號:qietuwang
*請認真填寫需求信息,我們會在24小時內與您取得聯系。