簡體   English   中英

為什么 Chrome 不創建自己的 ECMAScript 實現?

[英]Why didn't Chrome create its own implementation of ECMAScript?

1995 年,Netscape 創建了 JavaScript,隨后 Internet Explorer 也創建了 JScript。

據我了解,為了避免“用IE瀏覽最好”或“用Netscape瀏覽最好”,讓程序員的生活更輕松,制定了ECMAScript標准,並標准化了JavaScript(JScript也采用了該標准)。

考慮到 JavaScript 是 Oracle Corporation 的商標,為什么像 Chrome 或 Opera 這樣的現代瀏覽器在主流 Z2567A5EC9705EB7AC2C984033E01 創建新的兼容編程語言時使用 ECMAScript (JavaScript) 的舊實現ECMAScript 規范?

換句話說:JavaScript 是 ECMA 規范的 Netscape/Mozilla 實現,而 JScript 是 ECMAScript 的 Microsoft 方言。 為什么 Chrome 采用 JavaScript 並且沒有創建例如 ChromeScript 或沒有商標的實現?

為什么 Chrome 不創建自己的 ECMAScript 實現?

Chrome 確實創建了自己的 ECMAScript 實現。 運行他們的 ECMAScript 實現的引擎曾經並且仍然被稱為 V8,並且今天仍在使用。 事實上,它現在被 Chrome、Edge 和 Node.js(和其他)使用。

當時的公眾並不真正了解 ECMAScript 這個短語 - 他們大多只是從 Firefox 開始了解 Javascript 的新知識,並且可能知道 IE 中的 JScript。 當 Javascript 被帶到標准機構時,他們決定想要一個完全沒有商標附屬關系的名稱。 用 Brendan Eich(該語言的發明者)的話來說,選擇“ECMAScript”這個詞顯然是因為根本沒有商標關聯,而且丑陋到沒有人會在面向用戶的產品中實際使用這個詞。

ECMAScript 不是,現在也不是 John Q Public 會知道的東西(如果不是開發人員的話)。 人們從最初的 Netscape 時代就知道“Javascript”,目前在 Firefox/Mozilla 中。 一些人知道微軟的類似(但不完全相同)的競爭實現稱為 JScript。 盡管當時主要為 IE 開發的人也會將 Javascript 稱為他們正在編寫的語言。

因此,當 Google 開發自己的 ECMAScript 新實現時,他們將其稱為 Javascript。 那只是一個用來描述他們實現的名字。 這個名字對它的傳統毫無意義。 V8 Javascript 引擎是全新的,不是從其他東西衍生出來的。

總而言之,V8 被設計為與 ECMAScript 兼容,並且在 Chrome 中被公眾稱為 Javascript 實現。


在歷史記錄中,“Javascript”最初是在 Netscape 開發的。 “Java”最初是在 Sun Microsystems 開發的。 不知何故,在 Netscape 和 Sun Microsystems 之間的關系中,Netscape 被允許使用“Javascript”一詞,但 Sun 實際上擁有它的商標。 最終,Netscape 瀏覽器被分拆成 Mozilla 基金會,而 Sun 被 Oracle 收購。 所以,是的,Oracle 擁有“Javascript”一詞的商標,但許多人被允許使用它來描述他們的 ECMAScript 實現。 其他公司在不同時期都傾向於完全遠離任何可能的商標問題,這就是為什么其他公司使用 JScript、ActionScript 等來命名他們的實現。

您需要一位商標律師來 go 更深入地了解有關使用 Javascript 一詞的法律問題。

當 Mozilla 作為一家獨立公司從 AOL/Netscape 中分離出來時,他們就是否可以繼續在其代碼和用戶界面中使用“Javascript”這個術語進行了一些訓練。 其中一些記錄在他們的錯誤系統中。 我不知道決定這一切的確切法律交易,但只要說他們在很多很多年后仍然使用“Javascript”這個詞就足夠了。 Sun Microsystems 當時並沒有對此感到困擾,甚至現在擁有該商標(通過收購 Sun)的更具訴訟性的 Oracle 也沒有試圖停止在 Mozilla 或其他地方的使用。


請記住,Chrome 中的 V8 實現了一種符合 ECMAScript 標准的語言。 Chrome 通過將自己的全局對象添加到環境中來擴展 ECMAScript,就像所有瀏覽器一樣,例如瀏覽器中的window object。 瀏覽器中的這些全局對象在與瀏覽器有關的不同標准工作中被標准化,而不是與實際的 ECMAScript 語言有關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM