0

1995 年,Netscape 创建了 JavaScript,随后 Internet Explorer 也创建了 JScript。

据我了解,为了避免“用IE浏览最好”或“用Netscape浏览最好”,让程序员的生活更轻松,开发了ECMAScript标准,标准化了JavaScript(JScript也采用了该标准)。

考虑到 JavaScript 是 Oracle Corporation 的商标,为什么像 Chrome 或 Opera 这样的现代浏览器在主要的 Web 编程语言是 JScript 的时候使用旧的 ECMAScript (JavaScript) 实现,而不是创建一个新的实现也符合ECMAScript 规范?

换句话说:JavaScript 是 ECMA 规范的 Netscape/Mozilla 实现,而 JScript 是 ECMAScript 的 Microsoft 方言。为什么 Chrome 采用 JavaScript 而没有创建例如 ChromeScript 或没有商标的实现?

4

1 回答 1

2

为什么 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 拥有术语“Javascript”的商标,但许多人被允许使用它来描述他们的 ECMAScript 实现。其他公司在不同时期更愿意完全远离任何可能的商标问题,这就是为什么其他公司使用 JScript、ActionScript 等来命名他们的实现。

您需要一位商标律师来深入研究有关使用 Javascript 一词的法律问题。

当 Mozilla 作为一家独立公司从 AOL/Netscape 分拆出来时,他们就是否可以继续在其代码和用户界面中使用“Javascript”这个术语进行了一些激烈的讨论。其中一些记录在他们的错误系统中。我不知道决定这一切的确切法律交易,但只要说他们在许多年之后仍在使用“Javascript”这个词就足够了。Sun Microsystems 当时并没有对此感到困扰,甚至现在拥有该商标(通过收购 Sun)的更具诉讼性的 Oracle 也没有试图停止在 Mozilla 或其他地方使用它。


请记住,Chrome 中的 V8 实现了一种符合 ECMAScript 标准的语言。Chrome 通过将自己的全局对象(例如window浏览器中的对象)添加到环境中来扩展 ECMAScript,就像所有浏览器一样。浏览器中的这些全局对象在与浏览器有关的不同标准工作中被标准化,而不是与实际的 ECMAScript 语言有关。

于 2020-06-07T21:21:46.143 回答