命名标准

自标准化过程开始起,语言命名上的隐患就已经埋下了。Netscape 起的最初名称「LiveScript」基于它和 Sun 的战略合作伙伴关系而替换成了「JavaScript」。Sun 将「JavaScript」注册成了商标,并将其许可给了 Netscape。尽管 Sun 支持 Netscape 脚本语言的标准化工作,但他们也积极保护与 Java 有关的商标。Sun 似乎不太可能将对「JavaScript」商标的控制权交给标准组织。

在第一次 TC39 会议上,与会者邀请 Sun 提供「JavaScript」名称,并同意在找到更合适的名称之前,先使用「ECMAScript」作为占位名称。Scott Wiltamuth 的任务是收集名称建议并检查其可用性。

Wiltamuth [1997j] 列出了 16 种潜在可行的名称,以及 14 种由于现有商标或用法冲突而被认为不可行的名称。一项民意测验确定了排名最高的候选名称:LiveScript、ScriptJ、EZScript、Xpresso / Expresso / Espresso。会议要求 Netscape 和 Sun 的代表确定 LiveScript 和 JavaScript 的可用性。在此期间,规范草案中继续使用「ECMAScript」。

Sun 确认了 [TC39 1997f] 不会将「JavaScript」许可给 Ecma,而 Netscape 则表示对于使用 LiveScript 作为标准名称,没有法律上的异议35。根据这一反馈,TC39 同意与 Netscape 合作以保护 LiveScript 的权利,并且 Ecma 将会审查商标的注册。但在收到 Netscape 的书面确认前,ECMAScript 仍将在规范草案中使用。

提交给 Ecma GA 大会的标准草案,仍然使用 ECMAScript 作为语言名称。在 GA 大会上 [Ecma International 1997],有人担心在标准标题中使用商标名称的适当性,因为标准的目的是使所有实现该标准的公司享有平等的地位。由于 Netscape 决定不将 LiveScript 正式转让给 Ecma,因此后者无法使用 LiveScript 作为语言的名称。大会批准了带着「ECMAScript」占位名称的标准,并指示 TC39 在 9 月前解决命名问题。

命名问题在 7 月的 TC39 会议上 [1997g] 进行了讨论。Scott Wiltamuth 建议使用「RDScript」36,而 Carl Cargill 则建议采用「ECMAScript」作为永久名称。还曾有关于是否需要名称的讨论,因为也许以「ECMA-262」(该规范的 Ecma 文档编号)作为名称就足够了。7 月的会议最后没有解决任何问题。但到了 9 月,TC39 [1997h] 同意使用「ECMAScript」作为语言名称来发布标准。

几个月后,在为是否批准 ECMA-262 为 ISO 标准做决定性投票时,美国国家标准机构(ANSI)评论指出 [TC39 1998e]:「这种语言的任何实现都不太可能被称为 ECMAScript。这在现在和将来都会使用户感到困惑。困惑之处包括标准的含义,以及语言引擎对标准的支持。」事实证明这一预测是正确的。全世界一直在使用「JavaScript」名称来标识这门由浏览器实现的语言,这个名称已经包含在了 HTML <script> 元素的规范中。Brendan Eich [2006b] 后来表达了他对命名问题的看法:「ECMAScript 一直是个没人要的商品名,听起来像是种皮肤病。」