不满于成功

千禧年到来之际,以万维网(World Wide Web)为代表的互联网,正对世界产生着巨大的影响 [Miniwatts Marketing Group 2019]。随着 Netscape、微软和其他浏览器厂商不断增强浏览器的实用性,Web 得以迅速发展。Web 的成功与其持续演化的诉求,催生了 Ecma TC39 和 W3C 等工作组。这些组织中有些参与者是行业专家,他们并未直接参与浏览器开发。这些人的兴趣集中在理想化的未来 Web 上。从这个角度来看,现有的实用主义 Web 技术被当作了对未来的障碍。

1998 年 5 月,W3C 举办了名为「塑造 HTML 的未来」的研讨会。研讨记录中的结论如下:

在讨论中,人们一致认为进一步扩展 HTML 4.0 是困难的,将 4.0 转为 XML 应用也会是困难的。要克服这些限制,我们提议的方法是重新开始使用基于 XML 标签集的下一代 HTML。对于更好地适配数据库与工作流应用,以及对于支持小型 / 移动设备上更广泛而多样的特性,研讨会上都表达了相应的需求。模块化的 HTML 将为此提供这所需的灵活性 [W3C 1998]。

研讨会中 IBM 代表 David Singer [1998] 的演讲则更加直言不讳,他说「我们知道 HTML 的未来应该是这样的:讨厌、粗野而贫乏。」

在 ES3 即将完成时,TC39 也处于类似的处境中。借着 ES3,ECMAScript 规范也算与 Netscape 和微软浏览器中提供的 JavaScript 特性接轨了。并且至少在当时(早期),浏览器厂商并未过多引导干涉语言的未来规划。与 1995 年的 Netscape 不同的是,现在的 TC39 已经不必再规避类似 Java 的特性了。一些 TC39 的参与者意识到了对第二代浏览器脚本语言的需求 [Raggett 1999b; TC39 1999c; Appendix J],这样的一门语言可以纠正原始 JavaScript 中的设计错误,并提供满足专业软件开发者需求的特性,而非仅仅满足非专业的脚本编写者。打造新一代 ECMASript 的目标集中在了 ECMA-262 的第四版上。这个版本在 TC39 内部最初被称为「E4」,后来则称为「ES4」。

TC39 对 ES4 的尝试共进行了两轮,本文中用「初版 ES4」和「新版 ES4」区分它们。