摘要
- ECMA 大会于 1997 年 6 月批准 ECMA-262;TC39 在同年 9 月一致选定 ECMAScript 作为标准名称。
- 第五次会议纪要称 JavaScript 和 LiveScript 不能用来命名标准。首版标准仍把 JavaScript 写进了技术来源记录。
分析
代码先跑,标准名称后来才追上
名称问题出现在软件之后。Brendan Eich 后来回忆,JavaScript 引擎原型于 1995 年 5 月用了十天完成;那一年的其余时间主要用于接入浏览器。12 月 4 日,Netscape 与 Sun 联合宣布 JavaScript,称首个版本已经随 Netscape Navigator 2.0 测试版提供。公告把它介绍成一种面向互联网和企业网络应用的跨平台脚本语言。产品已经进了浏览器,标准却还没有自己的正式标题。
这个次序把两件事分开了。一个功能可以先在某款产品里运行,而它的名字仍属于公司的商业语言。共用标准需要另一种标题:不同实现者都能引用和采用。相同的代码,同时面对用户熟悉的产品名称和标准文件要求的中性名称。
1995 年的公告已经说,Netscape 和 Sun 计划把 JavaScript 提交给标准组织。ECMA 的记录把 TC39 工作起点定在 1996 年 11 月。主席报告列出一条紧凑时间线:1997 年 1 月出首份草案,6 月由大会表决,9 月接受标准名称。技术文本往前走,标签还悬在半空。
ECMA-262 首版封面标着 1997 年 6 月,标题却是 ECMAScript。ECMA 后来的回顾解释了这段差距:大会 6 月批准了技术文本,若干编辑事项仍留待 9 月处理,最终名称也在其中。封面把事情收拾得很整齐,会议记录保留了文件背后的时间顺序。一个已经获批的标准,还得等名称盖章;制度的最后一公里常常由标题栏负责。
第五次会议把问题写成了商标事项
1997 年 9 月 16 至 17 日,TC39 在议程里专门讨论标准标题和语言名称。会议纪要没有绕弯:JavaScript 和 LiveScript 不可用。委员会一致选择 ECMAScript。主席报告提到商标影响,纪要还要求 Netscape 提供 JavaScript 名称使用条件的信息。
这条记录说明了边界。委员会能够规定共同语言的语法和语义,却不能默认某个产品名称可以直接变成中立、跨平台的标准标题。ECMAScript 给标准一个委员会可以使用的名称;JavaScript 继续作为产品名称流通。
这也说明为何首版文件标注 6 月,而定名记录在 9 月。6 月,大会批准标准文本;9 月,委员会敲定标题。标准至少有两条终点线,封面把它们压成了一条。
一个语言,两种名称,各自做不同的事
ECMA-262 首版的简史把 JavaScript 列为标准的来源技术之一。ECMA 在 2017 年的回顾则说明,现实中 JavaScript 和 ECMAScript 都被用来指同一项标准。这两个名称没有指向毫不相关的语言:一个是产品身份,一个是标准文件的名称。
这种区分对实现者有用。任何实现者都可以引用中性的技术规范,不必取得最熟悉那个产品名称的所有权。写作者和开发者仍可以说 JavaScript——读者早已在浏览器测试版里见过这个名字。ECMA-262 规定可以共享的技术约定;产品名称则保存了功能进入浏览器的历史。
实现先于机构文件。标准组织随后把运行中的行为整理成跨平台规范,接着碰到代码无法替它解决的问题:谁有权把这个名字写在标准封面上?最终答案听起来像委员会折中,因为它确实是在现实限制下作出的制度选择。从那以后,同一个语言同时背着两个名字,各自承担不同任务。
公开记录确认 JavaScript 和 LiveScript 不能用于标准名称,商标问题也影响了定名;记录没有披露许可的条件或成本,这些文件会改变我们对 ECMAScript 是被迫选择还是主动偏好的判断。
资料来源
来源
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限战略圈层会员
战略圈层
所有读者均可浏览。加入并登录后可解锁档案简报。
加入战略圈层仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance





