出生就遇瀏覽器大戰,親爹還不愛,命運坎坷的JavaScript終於苦盡甘來

提起JavaScript,很多開發者應該都很熟悉了,因爲這門語言在語言排行榜上常年霸榜;不僅如此,JavaScriptweb開發中佔據着舉足輕重的地位,開發者衆多,數量上已經快要超過Java開發者了,開發社區非常活躍,越來越多的優秀開發框架湧現,比如Vue、React、Angular等,深受企業和開發者們的信賴。

JavaScript

儘管如今的JavaScript發展如此繁榮,但曾經的它可沒這麼順利,命運坎坷用來形容一點都不爲過。下面就來一起梳理梳理吧!如果小夥伴有更詳細的補充,歡迎在評論區留下您的高見!

Mosaic瀏覽器首發

1990年底,歐洲核能研究組織(CERN)科學家 Tim Berners-Lee,在互聯網的基礎上發明了萬維網(World Wide Web),進而實現了在網上瀏覽網頁文件;因爲最開始時候,網頁只能在操作系統的終端裏瀏覽,只能使用命令行操作,網頁也都是字符,並沒有圖片,更沒有現在美觀的樣式和動畫,不僅操作不方便,更沒有使用體驗和美觀可言;萬維網的出現,網頁可以通過互聯網來訪問,使得這種情況得到大大改善。

萬維網

1992 年Nombas 公司開發了一種腳本語言: CmmC-minus-minus,中文翻譯爲C減減,簡稱 Cmm),儘管Cmm在命名上和C++有些類似,但和C++卻是完全不同的語言,Cmm 是一門可以替代宏操作的腳本語言,在語法上與 CC ++ 很高的相似度。

Nombas 公司爲Cmm腳本語言開發了運行環境: CEnvi ,通過下載CEnvi ,便能在網頁中嵌入Cmm腳本語言,Cmm的出現使得客戶端腳本語言有了雛形。儘管後來NombasCmm 的名字改成了 ScriptEase,也僅僅是改了名字,雖然名字叫ScriptEase,但他和JavaScript卻沒有任何關係,更不是JavaScript語言的源頭。

1992年底,美國國家超級電腦應用中心(NCSA)開發了史上第一個瀏覽器,叫做 MosaicMosaic瀏覽器不僅可以通過互聯網訪問網頁,同時也可以顯示圖片,從此網頁可以在圖形界面的窗口瀏覽,瀏覽器時代正式開啓。

Mosaic瀏覽器

Netscape Navigator 時代

1994年10月Mosaic瀏覽器的核心開發成員**馬克·安德森(Marc Andreessen)吉姆·克拉克(Jim.H.Clark)**共同創立了Mosaic 公司,目的就是基於 Mosaic 繼續開發瀏覽器。

馬克·安德森

吉姆·克拉克

但由於Mosaic 的商標被伊利諾伊大學擁有,並且Mosaic 瀏覽器的技術已經被轉讓給了Spyglass公司,所以新成立的Mosaic 公司不久後改名爲 Netscape(中文譯爲網景),並重新編寫代碼實現了一個新的瀏覽器,這個新瀏覽器被取名爲 Netscape Navigator,即“導航者”。而它的對內稱呼爲Mozilla,意爲Mosaic殺手。

網景公司

1994年12月Navigator 發佈了1.0版,一經發布就取得了巨大成功,在短短的4個月裏就佔據了 90% 的瀏覽器市場,短期甚至內成爲了默認瀏覽器;同時,Nombas 也發佈了CEnvi 的首個可用版本。

Netscape Navigator

上網慢且貴

由於 Netscape Navigator 的成功,更多的應用開始出現在互聯網上,讓網上衝浪越來越流行;但此時,大部分因特網用戶還僅僅通過 28.8 kbit/s 的調制解調器連接到網絡,網速很慢而且上網費很貴,所以當時用戶的上網體驗不僅不好,而且還很昂貴;

使用體驗差

有時候僅僅是簡單的表單數據驗證,就要與服務器進行多次的往返交互。設想一下,用戶填完一個表單,點擊提交按鈕,等待了 30 秒的處理後,看到的卻是一條您的用戶名忘記填寫的提示,如果表單更大、更復雜,交互過程將會更加漫長,對於用戶來說,這個過程太痛苦了。

客戶端語言提上日程

網景公司很快也發現了,如果用戶忘記填寫“用戶名”,就點了“發送”按鈕,到服務器再發現這一點就太晚了,最好能在表單數據與服務端交互前,就能檢測出“用戶名”未填寫,進而提示用戶“請填寫用戶名”;

更是敏感的意識到了,此時的Navigator 瀏覽器需要一種可以嵌入網頁的腳本語言,這種語言運行在瀏覽器端,可以控制瀏覽器行爲,並且能和服務端交互

於是網景公司便決定開發一門可以Navigator 瀏覽器中運行的、輕量級的客戶端腳本語言,如果此舉成功,那麼一些普通的用戶操作便能放在客戶端來執行,進而能大大改善用戶操作體驗,提高網絡應用的運行效率。

互聯網颳起了Java 東風

但是又一個問題擺在了網景公司面前,這是一個選擇題,有兩個可選項:

  • 到底是使用現有的語言來實現,比如:Perl、Python、Tcl、Scheme等;
  • 還是重新開發一門新語言來適應當前的需求;

兩個選擇各有利弊

第一個選擇,使用現有的編程語言:

  • 可以充分利用現有代碼庫和程序員資源,入門門檻較低;
  • 藉助現有語言的市場,可以更容易推廣開來;
  • 可能不能完美的實現當下的需求;

第二個選擇,重新開發新語言:

  • 能夠完美實現當前的使用需求,
  • 需要重新設計語言規範,吸引開發者使用,這需要時間和成本;

到底採用哪一個選擇,網景公司內部爭執不下,管理層一時也難以下定決心。就在這時,Java 異軍突起,這種可以 “一次編寫,到處運行” (Write Once, Run Anywhere) 的語言一經發布就大火,廣受開發者和企業的青睞。

Java 語言

網景公司管理層也動了心,決定與Sun公司合作,不僅允許Java程序以applet(小程序)的形式,直接在瀏覽器中運行;甚至還考慮直接將Java作爲腳本語言嵌入網頁,但由於Java語言過於龐大,並不適合嵌入瀏覽器中,纔不得不放棄。

Java Applet

1995年5月,網景公司做出決策,未來的網頁客戶端腳本語言必須"看上去與Java足夠相似",使得Java程序員能夠快速上手,功能不需要太強,語法簡單,容易學習,即使是非專業的網頁作者也能快速學會;這個決策一出,其實就已經將第一個選擇排除了,選擇了開發一門新語言。

Brendan Eich 出場

1995年,網景公司找到了公司程序員 Brendan Eich ,任命其爲這門新的客戶端腳本語言的設計者;但Brendan Eich 的研究方向是函數式編程,他自身也有很強的函數式編程背景,所以對JavaOOP並不感冒;

Brendan Eich - JavaScript 之父

當初網景公司招聘他的目的也是研究將Scheme語言作爲網頁客戶端腳本語言的可能性Brendan Eich本人原本以爲進入新公司後,將會是研究Scheme語言,可卻現在接到這樣的任務,自然是不情願的。

Scheme語言是函數式語言鼻祖 Lisp語言的一種方言,另外一種比較流行的Lisp方言是Common Lisp

1995年5月Brendan Eich 只用了10天,就設計完成了這種語言的第一版;它是一個大雜燴,語法有多個來源,當時的設計思路是:

  • 基本語法:借鑑 C 語言和 Java 語言;
  • 數據結構:借鑑 Java 語言,包括將值分成原始值和對象兩大類;
  • 函數的用法:借鑑 Scheme 語言和 Awk 語言,引入閉包,把函數作爲語言的核心;
  • 原型繼承模型:借鑑 Self 語言(Smalltalk 的一種變種);
  • 正則表達式:借鑑 Perl 語言;
  • 字符串和數組處理:借鑑 Python 語言;

網景公司的這種瀏覽器腳本語言,最初名字叫做 Mocha,1995年9月改爲 LiveScript;

但由於網景公司的整個管理層,都是認準了Java語言的,更想借一下Java的東風,所以同年12月,網景公司與 Sun 公司達成協議,Sun 公司授權網景公司將這門新的語言命名爲 JavaScript,改名後的JavaScript更是被網景公司和Sun兩家公司聯手推出,官方的宣傳 :JavaScript 是 Java 的補充,屬於輕量級的 Java;所以JavaScript = Java + Script這樣的宣傳更不是空穴來風。

藉此機會,網景公司便將JavaScript申請成爲了商標。 這樣一來,網景公司可以藉助 Java 語言的聲勢推廣JavaScript,而 Sun 公司則將自己的影響力擴展到了瀏覽器。

僅用10天就設計出的語言,其表現可想而知。在其推出後的很長一段時間內,程序運行都有着各式各樣的問題。就連JavaScript的設計者本人Brendan Eich都不喜歡他自己設計的這門語言:

“與其說我愛Javascript,不如說我恨它。它是C語言和Self語言yiyeqing的產物。十八世紀英國文學家約翰遜博士說得好:‘它的優秀之 處並非原創,它的原創之處並不優秀。’ (the part that is good is not original, and the part that is original is not good.)”

—— Brendan Eich對JavaScript的評價

JavaScript 正式誕生

1995年12月4日,網景公司與 Sun 公司聯合發佈了 JavaScript 語言,對外宣傳 JavaScriptJava 的補充,屬於輕量級的 Java,專門用來操作網頁,實現動態效果。

JavaScript 正式誕生

JavaScript 和 Java

儘管名字裏都有Java,但JavaJavaScript是兩種不同的語言,這兩種語言有一定的相似性,因爲JavaScript的基本語法在設計過程中是借鑑了Java的。

  • Java 是強類型的靜態語言,是一門純面向對象的語言,以類和對象爲核心,在Java中沒有函數一說,有的只是方法。
  • JavaScript是弱類型的動態語言,在JavaScript 中,語言的函數是一種獨立的數據類型,且JavaScript是以函數爲核心的,採用基於原型對象(prototype)的繼承鏈。

JavaScript 和 Java

另外,Java 程序要經過編譯才能運行,而 JavaScript 語言的運行時解釋器已經集成到瀏覽器中,所以JavaScript 可在瀏覽器直接運行。

1996年3月Navigator 2.0 瀏覽器正式內置了 JavaScript 腳本語言。

同年,Netscape Navigator 3.0發佈,此版本有分爲“Standard Edition”和“Gold Edition”兩個版本,兩個版本區別在於,後者具備郵件軟件和所見即所得的網頁編輯程式。

瀏覽器大戰

Netscape 春風得意

1995年開始,萬維網慢慢開始被大衆認知,受到越來越多的關注。 能夠顯示圖形的Mosaic 瀏覽器俘獲了不少用戶的芳心;Netscape Navigator 更是一經發布就佔據了超過90%的瀏覽器市場,一度變成最受歡迎的網絡瀏覽器。這時的Netscape 可謂是春風得意,但是好景不長**。**

IE 瀏覽器加入

由於微軟對互聯網發展的誤判,輕視了瀏覽器的發展,使得Netscape Navigator 有機會發展壯大,但後知後覺的微軟也看到了瀏覽器市場發展的前景,開始重視起來,並從Spyglass公司處獲得了Mosaic的授權,開發出了自家的瀏覽器:IE 瀏覽器1.0,幾個月後,IE 瀏覽器2.0發佈,並免費向用戶提供;而此時的Netscape Navigator 是收費的。

IE 瀏覽器

大戰一觸即發

1995年Netscape Navigator 2.0 發佈後,瀏覽器市場都以網景的JavaScript爲標準;微軟公司雖然有IE 瀏覽器,但卻沒有JavaScript,所以IE瀏覽器Netscape Navigator 2.0面前不堪一擊。

於是,微軟便找上了網景,想要收購網景,但春風得意的網景公司自然是不會同意的;微軟自然也不會放棄,更不會放任網景做大,緊接着便是全力投入到了IE瀏覽器新版本的開發中。

1996年8月,微軟的IE 3.0發佈,同時,微軟也開發出了自己的客戶端腳本語言:JScript(這個名字怎麼看怎麼像JavaScript的縮寫),在對自家的IE瀏覽器的宣傳上,微軟也更是不遺餘力;

1997年 IE4.0發佈,IE4.0有着更好的W3C標準的實現,更是被捆綁在了Windows中,隨Windows系統一同發佈;正是這一舉措,IE瀏覽器的市場份額開始暴增;

到了1999年,微軟的IE瀏覽器已經佔據了絕大部分瀏覽器市場,而此時網景公司已被美國在線收購,留下Netscape Navigator在苟延殘喘。

至此,第一次瀏覽器大戰以IE大獲全勝而告終。

火狐瀏覽器涅槃重生

1998年,網景深知瀏覽器大戰中的Netscape Navigator敗局已定,面對着無法挽回的市場份額,網景公司做了一個重大決定: 將Netscape Navigator 5.0開源

同年,網景公司成立非營利性組織: Mozilla 基金會,主要負責Netscape Navigator的開源和維護;Mozilla 基金會獨立於網景公司運行,所以就算後來網景公司雖被美國在線收購,Mozilla 基金會卻能一直獨立運作至今。

Mozilla 基金會的手中,Netscape Navigator開放了源代碼,分兩個分支:

  • 一個是Netscape Navigator,相繼推出了Netscape Navigator6、7、8
  • 另一個便是Firefox,一直維護至今;

無論是開源後的Netscape Navigator,還是Firefox,都是基於Gecko渲染引擎來構建的。關於這段故事,還有一部紀錄片,叫《奔騰的代碼》,主要講述的就是Netscape Navigator的開源和Firefox(火狐瀏覽器)的誕生的故事,想要詳細瞭解的同好可以去搜來看看。

開源後的Firefox(火狐瀏覽器)重新開發了渲染引擎Gecko並且積極擁抱JavaScript標準,無論是在性能,還是用戶體驗上,都有了極大的提升;不僅是在Windows系統,在Linux系統、Mac系統,也都有着不俗的表現,甚至在Linux系統中,比Chrome瀏覽器的表現都要好。

優異的性能,再加上在Mozilla 基金會的良好運作下,火狐瀏覽器逐漸了獲得用戶認可,原本被IE 瀏覽器佔據的市場逐漸被火狐瀏覽器奪回。

火狐瀏覽器

反觀IE瀏覽器,並沒有積極適配EcmaScript,始終沉浸在自己的世界中,玩着只有自己的遊戲,跟標準越走越遠,漸漸被用戶拋棄,原本的用戶市場也被逐漸被涅槃後的火狐瀏覽器所取代。

縱觀瀏覽器發展歷史,不得不說,歷史總是驚人的相似。

WebKit

得益於 KDEKHTMLKJS,蘋果公司也開發了自家的JavaScript 引擎:Webkit渲染引擎,蘋果公司不僅將Webkit渲染引擎開源免費 ,而且還基於Webkit渲染引擎開發了 Safari 瀏覽器

Safari 瀏覽器

V8

谷歌於2008年12月發佈了 Chrome 瀏覽器, 與Safari 瀏覽器使用相同的 WebKit 渲染引擎和一個名爲 V8 引擎。V8使用C++開發,相比其它的JavaScript引擎轉換成字節碼或解釋執行,V8引擎會將JavaScript程序其編譯成原生機器碼,所以JavaScript程序在V8引擎下的運行速度足以媲美二進制程序。

Chrome 瀏覽器

不久之後,谷歌便以 Chromium項目開放了Chrome瀏覽器的源碼;新功能會率先在Chromium上實現,穩定後纔會應用在Chrome上。

JavaScript 標準化

三個巨頭三足鼎立

在微軟進入瀏覽器市場,發佈了JScript之後,有 3 種不同的 JavaScript 實現同時存在,分別是:

  1. Netscape Navigator 3中的 JavaScript
  2. IE 中的 JScript
  3. CEnvi 中的 ScriptEase

三個巨頭三足鼎立,形成了三分天下之勢,網景公司也面臨喪失瀏覽器腳本語言的主導權的局面;而由此導致的版本不兼容問題日益加劇,當時的一個網頁程序往往要對三個平臺提供不同的實現,開發和維護的成本都越來越高;

ECMA出手拯救JavaScript

1996年11月,網景公司面對着逐漸被微軟蠶食的瀏覽器市場,於是決定將 JavaScript 提交給國際標準化組織 ECMA(European Computer Manufacturers Association),希望 JavaScript 能夠成爲國際標準,以此抵抗微軟。

ECMA接受了這個請求,並決定由39號技術委員會Technical Committee 39)負責制定和審覈這個標準,委員會成員由業內各大公司派出的工程師組成,該委員會定期開會,所有的郵件討論和會議記錄,都是公開的。

1997年7月ECMA 組織發佈262號標準文件(即:ECMA-262)的第一版,規定了瀏覽器腳本語言JavaScript的標準,並該語言標準取名爲 ECMAScript

之所以不叫 JavaScript,一方面是由於商標的關係,因爲JavaSun公司的商標,根據一份授權協議,只有 網景公司可以合法地使用 JavaScript 這個名字,且 JavaScript 已經被 網景公司註冊爲商標;另一方面是ECMA也想體現ECMAScript並不同於曾經的JavaScriptECMA組織也不同於網景,這樣就有利於保證這門語言的開放性和中立性。

完整的JavaScript實現

至此,完整的JavaScript實現包含三個部分:ECMAScript,文檔對象模型(DOM),瀏覽器對象模型(BOM)。 符合ECMA-262 3rd Edition標準的實現有:

  • Microsoft公司的JScript
  • Mozilla的JavaScript-C,後改名爲SpiderMonkey
  • Mozilla的Rhino
  • Digital Mars公司的DMDScript
  • Google公司的V8
  • WebKit

需要注意的是,ECMAScript 只用來標準化 JavaScript 語言的基本語法,與部署環境相關的標準都由其他標準規定,比如 DOM 的標準就是由 W3C組織制定的。

ECMA-262 標準後來也獲得國際標準化組織 ISO的批准,並以標準號 ISO-16262命名。

ECMAScript 步入正軌

1997年7月ECMAScript 1.0發佈,這個版本做了些小改動:支持Unicode標準,對象與平臺無關等,其他的特性與網景發佈的JavaScript1.1並無二致;

1998年6月ECMAScript 2.0發佈,這個版本主要做的是細節優化,沒有新功能發佈;

1999年12月ECMAScript 3.0版發佈,這個版本對JavaScript標準做了大量的修改。修復了包括字符串處理、錯誤定義和數值輸出等一系列問題。新增了對正則表達式、新控制語句、try-catch異常處理的支持。此時的ECMAScript才能算是一門真正的編程語言。

2007年10月ECMAScript 4.0版草案發佈,草案的標準跟第3版比起來,幾乎是定義了一門新語言;因爲草案不僅包含了強類型變量、新的數據結構和繼承,還添加了JSON對象、繼承的方法和高級屬性定義,以及嚴格模式。由於改動過大,所以4.0草案發布後,遭到了Yahoo、Microsoft、Google等公司的反對。

2008年7月,由於各方爭執不下,ECMAScript 4.0 的開發被終止,ECMAScript 4.0中改動較少的一部分被拿出來,作爲 ECMAScript 3.1開發,項目代號爲Harmony,而其他的改動較大的功能將會逐步推出,會後不久,ECMAScript 3.1 改名爲 ECMAScript 5

2009年12月ECMAScript 5.0版 正式發佈;Harmony 項目則一分爲二,一些可行性較高的功能優先開發,後來成了 ECMAScript 6;而另一些不太成熟的設想,則會考慮放在ECMAScript 7中;

2011年6月ECMAScript 5.1版發佈,並且成爲 ISO 國際標準(ISO/IEC 16262:2011);

2012年底,所有的主流瀏覽器全面支持 ECMAScript 5.1

2015年6月ECMAScript 6 正式發佈,並且更名爲“ECMAScript 2015”。同時, TC39 委員會也計劃以後每年發佈一個 ECMAScript 的版本;2016年發佈的版本,稱爲“ECMAScript 2016”,2017年發佈“ECMAScript 2017”,以後的版本以此類推。

AJAX

Ajax這個詞首先出現在《Ajax: A New Approach to Web Applications》一文中,該文的作者是Jesse James Garrett,在該文中,將Ajax定義爲了:Asynchronous JavaScrpt + XML的組合,代表並不是單一的技術,而是多種技術的組合。

Ajax應用和普通應用的對比

該文的迅速流傳使得Ajax被更多開發者認知、認可,並在1998年得到了廣泛應用。Ajax允許客戶端腳本發送HTTP請求動態加載局部的網頁內容,實現網頁的異步加載,也就意味着不必因爲局部網頁內容的修改而加載整個網頁,從而能夠帶來更加友好的網頁體驗。

Ajax的第一個組件由Outlook Web Access小組寫成,被用於微軟Exchange Server,因此Outlook Web Access成了第一個應用了Ajax技術的商業應用程序。

Ajax

2005年Google在它的很多應用中都使用了Ajax,如Google討論組、Google地圖、Google搜索建議、Gmail等。

自此以後,Ajax迅速竄紅,進而引發了一場互聯網革命,使得基於Ajax的綜合框架和JS庫的急劇增加,越來越多的優秀框架出現,不僅Web應用的構建變得更加容易,也改進了 JavaScript 編程實踐,對JavaScript的發展推進做出了巨大的貢獻。

JQuery

jQuery是一個快速、簡潔的JavaScript框架,於2006年8月發佈第一個穩定版本,是繼Prototype之後又一個優秀的JavaScript代碼庫。它封裝JavaScript常用的功能代碼,並提供了一種更加簡便的操作模式,使得HTML文檔操作、事件處理、動畫設計和Ajax交互變得更加容易。

JQuery

此外,jQuery具有高效靈活的CSS選擇器,並且可對CSS選擇器進行擴展;擁有便捷的插件擴展機制和豐富的插件。jQuery兼容各種主流瀏覽器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。

Node.js

就在Chromium 發佈半年後,Ryan Dahl創建了一個基於 Chrome V8 引擎的 JavaScript 開發平臺:Node.jsNode .js提供了一個可以JavaScript運行在服務端的運行環境,使得JavaScript程序可以運行在服務端;可以說,Node.js的出現讓 JavaScript 提升了一個層次,讓前端程序員不再侷限於客戶端開發,也讓全棧開發成爲了可能。

Node.js

Node.js發佈的還有包管理工具:npm,通過npm可以:

  • 允許用戶從NPM服務器下載別人編寫的第三方包到本地使用;
  • 允許用戶從NPM服務器下載並安裝別人編寫的命令行程序到本地使用;
  • 允許用戶將自己編寫的包或命令行程序上傳到NPM服務器供別人使用;

三大框架

由於Node.js的成功,在npm管理工具的帶動下,一大批優秀的JavaScript開發框架開始湧現,其中有代表性的便是Vue.js、Angular.js、React.js,這些框架語法簡單、性能優越、文檔豐富,使用這些框架能夠快速搭建前端應用,而且,由於活躍的開發社區,這些框架都有着豐富的系統組件,能夠完成一切的業務需求。

三大框架

Vue.js是一套用於構建用戶界面的漸進式JavaScript框架,自底向上增量開發的設計,專注於視圖層,非常容易學習,也非常容易與其它庫或已有項目整合,作者是尤雨溪;作者和框架無論在國內、國外都有着不小的知名度;

Vue.js

Angular.js是一套Google推出的JavaScript開發框架,誕生於2009年,該框架有着MVVM、模塊化、自動化雙向數據綁定、語義化標籤、依賴注入等諸多核心特性;Angular的理念是 組建視圖(UI)和寫軟件邏輯可同時進行,將DOM操作和應用邏輯解耦,將測試開發同等看待,將客戶端和服務器端解耦,在整個開發流程裏都引導着開發者:從設計UI,到編寫業務邏輯,再到測試。

Angular.js

React.jsFacebook 推出的JavaScript框架,起源於 Facebook 的內部項目,由於 React 的設計思想極其獨特,和Vue一樣,React不是一個完整的MVC框架,很多人都認爲是MVC中的V(View)。此外,React Native框架可用於開發跨平臺的App應用,一套代碼便能同時運行IOSAndroid

React.js

桌面軟件開發

通過對Chromium 的移植,JavaScript還能用於開發桌面應用,典型應用便是NW.js和Electron.js;都是使用HTML + CSS + JavaScript便能開發出同時在LinuxMac OS XWindows上可運行的桌面軟件。

Deno

今天,Deno 1.0 正式發佈,什麼是Deno呢?Deno是使用V8引擎並內置於RustJavaScriptTypeScript的新運行時,致力於在Web瀏覽器之外執行JavaScriptTypeScript程序。

Deno

它和Node.js的設計者是同一人:Ryan Dahl,是Ryan DahlNode.js之後的又一大作;Deno的設計特別注重安全,有着衆多優點:

  1. Deno 是以安全爲前提的,除非明確啓用,否則不會訪問文件、網絡或者環境;
  2. 在設計之初便充分考慮到了TypeScript,所以對TypeScript有着開箱即用的支持;
  3. 只提供一個可執行文件;
  4. 內置了很實用的程序,如依賴檢查器(deno info)和代碼格式化器(deno fmt);
  5. 擁有一組經過審覈的標準模塊:deno.land/std,能和deno一起運行;

雖然都支持V8引擎,但Deno卻並不是Node.js的分支,它甚至都不和Node(NPM)兼容;Deno是一個全新的JavaScriptTypeScript程序運行時,意在構建更加安全和高效的JavaScriptTypeScript程序,雖然目前和Node.js並不兼容,Deno卻希望在將來能夠使用Deno來運行更多的Node項目。

小結

縱觀JavaScript的發展,可謂感慨良多!曾經的JavaScript是命運坎坷,還未出生就不受親生父親的待見,出生後更是常年被籠罩在Java 的陰影之下,甚至一度被認爲是Java 的補充;被捲入瀏覽器大戰,差點被遺棄。

但是好在它遇到了自己真正的歸宿:ECMA組織,不僅獲得了重生,更是廣受開發者青睞,隨着Node.js的出現,Vue.js、Angular.js、React.js蓬勃發展,JavaScript有了更大的應用;Deno的誕生,使得JavaScript已經不僅限於Web瀏覽器,又會掀起一場更大的互聯網革命,讓我們拭目以待。

完結,老夫雖不正經,但老夫一身的才華!關注我,獲取更多編程科技知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章