ericltw / notes

0 stars 1 forks source link

JS / ECMAScript / TypeScript / Dart #43

Open ericltw opened 4 years ago

ericltw commented 4 years ago

JavaScript的誕生

1993年,NCSA開發了最早的圖型界面瀏覽器NCSA Mosaic。1994年,一家名為Mosaic Communications的公司成立,不久後改名為Netscape。這家公司的方向,就是在Mosaic的基礎上,開發面向普通用戶新一代的瀏覽器Netscape Navigator。

1994年12月,Navigator發布了1.0版本,市占90%。

Netscape意識到web需要更動態,公司的創始人認為HTML需要一種膠水語言,讓設計師和兼職的程式設計師可以很容易的使用他來組張圖片和外掛城市之類的元件,且程式碼可以直接編寫在網頁標記中。

1995年,Netscape招募Brendan Eich,目標是把Scheme語言嵌入到Netscape Navigator瀏覽器中,但在更早之前,Netscape已經和Sun Microsystems合作在Netscape Navigator中支援Java,而後在Netscape中經過一番爭論後,Netscape決定發明一種與Java搭配使用的輔助手稿語言,與Java在語法上有些類似。Brendan Eich花了十天的時間將原型設計出來,Javascript因此誕生。

但最初命名為Mocha,1995年9月Netscape Navigator 2.0 Beta版改名為LiveScript,同年12月Netscape Navigator Beta 3.0中被重新命名為Javascript,目的是讓這們語言搭上Java這個程式語言熱潮。

Reference

JavaScript與ECMAScript的關係

1996年8月,微軟模仿JavaScript開發一種相近的語言,取名為JScript(JavaScript是NetScape的註冊商標),首先內置於IE 3.0。Netscape面臨喪失瀏覽器腳本語言的主導權。

1996年11月,Netscape決定將JavaScript題交給ECMA,希望JavaScript能夠成為國際標準,以此抵抗微軟。

1997年7月,ECMA-262的第一版發布,規定了瀏覽器腳本語言的標準,並將這種語言稱為ECMAScript。這個版本就叫ECMAScript 1.0版。之所以不叫JavaScript,一方面是由於商標關係,Java是Sun公司的商標,根據一份協議,只有Netscape可以合法的使用這個名子,且JavaScript已經被NetScape註冊為商標。另一方面,也想體現這門語言的制定者是ECMA而不是NetScape,這樣有利於這們語言的開放性和中立性。因此,ECMAScript和JavaScript的關係是,ECMAScript是JavaScript的規格, JavaScript是ECMAScript的實現。在日常場合,兩者是可以互換的。

Reference

ECMAScript版本

JavaScript engine

理解並執行JavsScript代碼的程序或解釋器。

實現

Mozilla project提供兩種JavaScript engine,分別是SpiderMonkey(引擎是用C / C++實現)和Rhino engine(引擎是用Java實現)。

除了Mozilla project提供的兩種ECMAScript實現,其他流行的JavaScript引擎包含:

更新

當TC39組對ECMAScript規範進行功能添加時,發布新版本並不意味著所有JavaScript引擎都突然出現這些功能,而是負責引擎開發的開發者需要即時了解最新的ECMAScript規範,並採用其更改。

因此我們會開發人員會傾向提出這個瀏覽器支持哪些ECMAScript功能,例如V8, SpiderMonkey, and Chakra...是否具備最新的ECMAScript中描述的功能。

Reference

Dart

2011年,Google發布了Dart,目的是結束JavaScript語言在瀏覽器中的壟斷,提供更合理更強大的語法與功能。

TypeScript

2012年,微軟發布TypeScript,該語言被設計為JavaScript的超集,這意味著所有JavaScript程序都可以不經修改地在TypeScript中運行。同時,TypeScript添加了許多新的語法特性,主要目的是為了開發大型程序,還可以被編譯成JavaScript運行。