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

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

JavaScript

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

Mosaic瀏覽器首發

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

萬維網

1992 年Nombas 公司開發了一種腳本語言: CmmC-minus-minus,中文翻譯爲C減減,簡稱 Cmm),儘管Cmm在命名上和C++有些相似,但和C++倒是徹底不一樣的語言,Cmm 是一門能夠替代宏操做的腳本語言,在語法上與 CC ++ 很高的類似度。web

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

1992年末,美國國家超級電腦應用中心(NCSA)開發了史上第一個瀏覽器,叫作 MosaicMosaic瀏覽器不只能夠經過互聯網訪問網頁,同時也能夠顯示圖片,今後網頁能夠在圖形界面的窗口瀏覽,瀏覽器時代正式開啓。npm

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 Navigator六、七、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瀏覽器,又會掀起一場更大的互聯網革命,讓咱們拭目以待。

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

相關文章
相關標籤/搜索