JavaScript 二十年

附录§

登场人物§

(按姓氏首字母排序)

姓名所属机构角色 / 贡献
Marc AndreessenNCSAMosaic 浏览器开发者
NetscapeNetscape 联合创始人,Mocha 倡导者
Jeremy Ashkenas发明了 CoffeeScript 编程语言
Ihab AwadGoogle贡献了 CommonJS 模块系统设计
Jan van den BeldEcma1992-2007 年任秘书长
Tim Berners-LeeCERN, W3G万维网的发明者
Eric BinaNCSAMosaic 浏览器开发者
NetscapeNetscape 联合创始人
Leo BalterBocoup在 ES6 完成后领导了 Test262 的开发
Norris BoydNetscape早期 SpiderMonkey 开发者
Robert CailliauCERNHTML 脚本的倡导者,JavaScript 的批评者
Carl CargillNetscape标准化专家,1997 年任 TC39 副主席
Jim ClarkNetscapeSilicon Graphics 和 Netscape 的创始人
Andrew ClinickMicrosoft1998-1999 年任 TC39 副主席,提出了条件编译
Donna ConverseNetscape贡献了第一份 ES1 规范草案
Mike CowlishawIBMES2 和 ES3 的项目编辑,十进制小数支持者
Douglas CrockfordYahoo!, PayPalJavaScript 布道师,新版 ES4 反对者,「发现了」JSON
Kevin DangoorKhan Academy启动了 ServerJS/CommonJS 项目
Ryan DahlJoyentNode.js 的初始开发者
Chris DollinHPSpice 语言设计者
Patrick DussudMicrosoft「数字卫生工程师」,JScript 垃圾回收器作者
Jeff DyerNombas/selfES4 提议者,ES3 和初版 ES4 贡献者
Macromedia/Adobe开发了 ActionScript 3 编译器,首任新版 ES4 编辑
Brendan EichNetscapeJavaScript 的初始设计者与实现者
MozillaMozilla CTO,重启了 ES4 进程,Harmony 贡献者
Cormac FlanaganUniv Cal Santa Cruz混合类型系统专家,新版 ES4 设计团队成员
David FugateMicrosoft领导了最早 ES5 阶段时的 Test262 开发
Richard P. GabrielSunLisp 玩家,诗人,撰写了 ECMA-262 的语言概述部分
Andreas GalMozilla将 TraceMonkey 优化器加入了 SpiderMonkey
Michael GardnerBorland首份 ES1 工作草案的联合编辑
Jonathan GayMacromedia发明了 Flash
Bill GibbonsNetscapeES3 工作草案编辑
Richard GillamIBM1998-2000 年任 I18N 工作组主席
Gary GrossmanMacromedia/AdobeActionScript 设计者
Peter HallamGoogleTraceur 转译器开发者
Lars Thomas HansenOpera, Adobe新版 ES4 编辑
Dave HermanNortheastern Univ博士生,编程语言语义学家,新版 ES4 设计团队成员
Mozilla许多 ES6 提案(包括模块在内)的倡导者
Graydon HoareMozilla新版 ES4 设计团队成员
Luke HobanMicrosoft从 2011 年起领导了微软的 TC39 代表团
Waldemar HorwatNetscapeJS2 与初版 ES4 的设计者兼编辑
GoogleES5 与 ES6 的贡献者
Chris HouckNetscapeJavaScript 团队的第二名成员,命名了 SpiderMonkey
Mr. HuffadoneCallscan缺席了首次 TC39 会议
Oliver HuntAppleES5 与 ES6 的贡献者
Scott IsaacsMicrosoftDHTML 开发者,微软 Live 框架架构师
Bill JoySun黑客,Sun 联合创始人,与 Netscape 合作投入 JavaScript 时的实权支持者
Yahuda KatzjQuery Fdn/Tilde模块特性倡导者,影响了 ES6 中类的设计
Shon KatzenbergerMicrosoft开发了许多 ES1 中的伪代码算法
Kris KowalCommonJS 模块系统设计者
Peter KukolMicrosoft编写了 JScript 解析器
Pratap LakshmanMicrosoft新版 ES4 反对者,ES5 编辑,创造了最早的 ES5conform 测试套件
Russell Leggett<es-discuss>为类提出了一种「安全语法」
Norbert LindenbergMozillaECMA-402 第一版的编辑
Julia LiusonMicrosoftVisual Basic 产品组经理,Wirfs-Brock 的上级
Steve LeachHPSpice 语言设计者
Clayton LewisNetscapeNetscape JavaScript 团队的首位经理
David McAllisterAdobe标准化专家,2008-2011 年任 Ecma 协调委员会成员
Tom McFarlandHP国际化专家
Sam McKelvieMicrosoft早期 JavaScript 解释器开发者
Sebastian McKenzieEmmerich Manual HS高中学生,开发了 Babel 转译器
C. Rand McKinnyNetscape技术作家,受命编写首份 JavaScript 规范
Mark S. MillerGoogleOCAP 专家,ES5 与 ES6 的贡献者,Proxy 的联合倡导者
Neil Mix<es-discuss>命名了 ES5 中的新属性标记名
Anup MurarkaSpyglass在首次 TC39 会议上被暂时任命为助理编辑
John NeumannEcma标准化专家,2008-2015 年任 TC39 主席
Anh NguyenNetscape在首次 TC39 会议上代表 Netscape
Brent NoordaNombas开发了面向嵌入式系统的 ECMAScript 方言
Bob NystromGoogleTraceur 转译器的开发者
Jason OrendorffMozilla实现了 ES6 模块加载器的原型
Adam PellerIBMES5 贡献者
Dave RaggettHP/W3CSpice 发明者
Thomas ReardonMicrosoftInternet Explorer 开发负责人
Sam RubyIBMES5 与 ES6 贡献者,实现了十进制小数的原型
Alex RussellDojo FoundationES5 贡献者
GoogleGoogle Chrome Web 标准负责人,ES6 贡献者
William SchulzeMacromedia2004-2005 年任 TC39-TG1 召集人
István SebestyénEcma2007-2019 年任秘书长
Dan SmithMacromedia/AdobeFlash 运行时工程总监
Edwin SmithMacromedia/Adobe为 ActionScript 2 和 3 开发了 AVM2 虚拟机
Walter SmithMicrosoft苹果 NewtonScript 老手,通宵起草了 JScript 规范
Randy SoltonBorland首份 ES1 工作草案的联合编辑
Maciej StachkowiakAppleSafari/WebKit 开发者
Guy L. Steele Jr.SunScheme 原作者,ES1 项目编辑
David StrykerNetscape核心技术副总裁
Brian TerlsonMicrosoft为 ES6 领导了 Test262 的开发,2015 年 7 月起任 ECMA-262 编辑
Lee ThornasonMacromedia开发了以 JVM 为宿主的 Flash 原型
Sam Tobin-HochstadtNortheastern UnivES6 模块联合倡导者
Jim TressaOracle向 TC39 介绍了组件模型
Isabelle Valet-HarperMicrosoft标准化专家,Ecma 协调委员会成员
Tom Van CutsenVrije UniversiteitES6 贡献者,Proxy 联合倡导者
Herman VenterMicrosoftES3 与初版 ES4 贡献者,JScript.NET 开发者
Richard WagnerNetObjects在 TC39 内启动了 JavaScript 组件项目
Rafael WeinsteinGoogle提出了四阶段的 TC39 开发进程
Rick WaldronjQuery Fdn/Bocoup系统化地整理了 TC39 的备忘,ECMA-402 第二版的编辑
Robert WellandMicrosoftIE 平台架构师
Chris WilsonMicrosoft首位 JScript 开发者,通宵起草了 JScript 规范
Scott WiltamuthMicrosoftTC39 副主席,ES1 技术工作组记录员
Allen Wirfs-BrockMicrosoft新版 ES4 反对者,ES5/5.1 编辑
MozillaES6 编辑
Rok YuMicrosoftJScript 项目经理,2004 年任 TC39-TG1 召集人
Alon ZakaiMozilla开发了 Emscripten
Boris ZbarskyMozillaDOM 绑定与浏览器标准工程师
Kris ZypDojo FoundationES5 贡献者

登场组织§

(按名称首字母排序)

名称角色
Adobe图形工具软件公司,于 2005 年收购了 Macromedia。
America Online (AOL)于 1998 年收购了 Netscape。
Apple计算机与移动设备制造商,开发了 Safari 浏览器。
Borland International在软件开发工具和编译器领域领先的开发商。
CERN创建万维网的物理研究中心。
Dojo Foundation推广开源 Dojo Toolkit 的非营利组织。
Ecma International总部设在瑞士的计算相关标准组织。
General Magic创新但未获商业成功的移动设备软件平台开发商。
Google互联网搜索与广告巨头,开发了 Chrome 浏览器。
Hewlett-Packard (HP)PC、工作站、服务器和打印机的制造巨头。
IEFT互联网工程任务组,制定互联网标准。
IBM软件服务和传统大型机巨头。
ISO/IEC国际标准组织。
Joyent最早主持 Node.js 开发的企业。
MacromediaFlash 开发商,2006 年被 Adobe 收购。
Microsoft Corporation占支配地位的个人计算机系统和应用软件公司。
MicroUnity1990 年代早期一家资金充裕的创业公司,开发视频媒体处理器。
Mozilla FoundationFirefox 浏览器的开源开发商,从 Netscape 分拆而出。
NCSAUIUC 的国家超级计算应用中心。
Nombas开发脚本语言,支持了嵌入式的 JavaScript。
Netscape Communications CorpNetscape 浏览器的开发商,1998 年被 AOL 收购。
Object Management Group (OMG)为制定分布式对象系统的标准而成立的联盟。
Opera SoftwareOpera 系列浏览器的开发商。
PayPal开发电子支付系统,在 2002-2014 年是 eBay 的子公司。
Silicon Graphics Inc. (SGI)高性能图形工作站制造商。
Spyglass位于伊利诺伊州的软件公司,经 NCSA 授权将 Mosaic 商业化。
Sun Microsystems Inc.计算机制造商,Java 的开发商,2009 年被 Oracle 收购。
SunSoftSun Microsystems 公司的一个部门。
TC39负责 JavaScript 标准化的 Ecma 国际技术委员会。
UIUC伊利诺伊大学厄巴纳-香槟分校。
Yahoo!早期获广泛使用的网络门户与搜索引擎的开发商。
WHATWG网络超文本应用技术工作组,这是一个制定 HTML 相关标准的特设小组。
W3C万维网联盟(World Wide Web Consortium),Tim Berners-Lee 领导的万维网标准化组织。

术语表§

(按单词首字母排序)

  • ActionScript n. 由 Adobe Flash 所使用的 ECMAScript 方言。
  • attribute n. 1. 标记,在 ECMAScript 规范中,一种对属性的可配置特质。2. 属性,HTML 开放标签中的行为修饰符。
  • AWK n. 一种领域特定的文本处理语言 [Aho et al. 1988],最早为 Unix 而设计。
  • binding n. 绑定,一种将名称映射到变量或常量值的关联。
  • breaking-change n. 破坏性变更,一种对编程语言或平台的变更,这种变更会导致现有的程序无法运行或发生故障。
  • browser wars n. 浏览器大战,一段浏览器厂商们为争夺市场主导权而进行激烈竞争的历史时期。
  • Chrome n. 一款由 Google 开发并分发的浏览器。
  • Chromium n. Chrome 浏览器的开源核心。
  • class n. 类,指一个编程语言概念。对于一组对象,可以基于这种机制定义出它们所共享的通用接口和实现。
  • classical inheritance n. 类式继承,一种继承机制。它通过链式的类定义,使对象获取其状态与行为。
  • CoffeeScript n. 一种编译到 JavaScript 的编程语言,由 Jeremy Ashkenas 所创建。
  • CommonJS n. 一个由 Kevin Dangoor 发起的项目,其目标是在非浏览器环境下开发 JavaScript 技术。
  • compiler n. 编译器,一种(在典型情况下)将程序翻译到机器语言,以便供处理器直接执行的引擎。
  • constructor n. 参见 constructor function
  • constructor function n. 构造器函数,一种会分配并初始化对象的 JavaScript 函数,可能用 new 运算符触发。
  • cyclic garbage collection n. 循环垃圾回收,一种内存管理流程,可以回收为孤立的循环引用结构所分配的内存空间。
  • Dart n. 一门基于类的面向对象语言。它由 Google 开发,其初始设计目标是在 Web 浏览器中取代 JavaScript。
  • declarative adj. 声明式,表示一种以「对所需结果特质进行描述」为基础的计算方式。
  • delegation n. 委托,一种使对象从其他对象中获取部分状态和行为(而非从类定义中获取)的机制。
  • discriminated union n. 差异联合体,一种带有多种可选内部结构的数据记录,其实际结构由显式的 tag 标签值确定。
  • destructuring n. 解构,用类似数组或对象字面量的语法,来引用数组或对象的某些属性。
  • desugar v. 去糖化,将一种编程语言中的语句或操作,分解为更为基础的语句或操作。
  • DevDiv n. 微软的开发者工具部门,即 Developer Tools Division。
  • dynamic language n. 动态语言,一种在程序执行前仅需进行少量分析(或不进行分析)的编程语言。动态语言中,多数强制性的错误检查在程序执行时发生,并且其典型程序也可能在执行时被构建和修改。参见 static language
  • dynamically typed adj. 动态类型,表示一类编程语言,其中与数据类型安全相关的约束检查,主要在程序运行时实行。
  • es-discuss n. 用于讨论 ECMAScript 演化的公开邮件论坛。
  • ECMA-262 n. ECMAScript 的语言规范。
  • ECMA-402 n. ECMAScript 的国际化 API 规范。
  • engine n. 引擎,指代某种用于执行程序的结构。
  • es4-discuss n. es-discuss 邮件论坛的初始名称。
  • ES.next n. 有时在 TC39 内部用于指代下一个 ECMA-262 版本。
  • exotic object n. 异质对象,一种 JavaScript 对象。对于所有对象都必须支持的基本内部方法,它缺少其中一种或多种方法所对应的默认行为。参见 ordinary object
  • expando property n. 在对象创建后添加到其上的属性。
  • factory function n. 工厂函数,一种返回新对象的函数。
  • Firefox n. 一款由 Mozilla 开发并分发的浏览器。
  • first-class adj. 一等公民,表示一类可用作数据值的编程语言运行时实体。例如,这种实体可以被赋值给变量、作为函数参数传递、从函数中返回,或存储在数据结构中。
  • Flash n. Adobe 用于支持富互联网应用和其他用途的多媒体软件平台。
  • free variable n. 自由变量,一种存在对其的引用,但未于本地作用域中定义的绑定。
  • function n. 函数,指一个子程序,或一个程序中可参数化的子部分。
  • hackathon n. 一种将程序员们聚集在一起,在几天时间内合作完成一个项目的活动。
  • Harmony n. 在放弃新版 ES4 后,TC39 用于指代后续 ECMA-262 开发的项目代号。
  • host object n. 宿主对象,由 JavaScript 引擎提供的一种对象或对象的类,可以用于访问宿主应用或平台上的设施。
  • imperative adj. 命令式,表示一种以「对所需结果相应执行步骤序列进行描述」为基础的计算方式。
  • inherit v. 继承,指在面向对象语言中间接地获得特质。
  • inheritance n. 继承,指在面向对象语言中,令对象继承某些(或全部)数据和行为的机制。
  • inherited property n. 继承属性,一种 JavaScript 对象中从原型继承而来的属性。
  • internal method n. 内部方法,一种语言之外的机制,用于定义对象的部分语义。
  • internal property n. 内部属性,对象的一部分,存储了用于定义对象部分语义的状态,由内部方法所使用。
  • interpreter n. 解释器,一种会遍历程序的某种表示,并执行中途所遇操作的引擎。
  • internationalization n. 国际化,一种使程序能处理多种人类语言、脚本与书写约定的流程。
  • Internet Explorer n. 一款由微软开发并分发的浏览器。
  • Java n. 一门基于类的面向对象语言,由 Sun Microsystems 开发。
  • JavaScript engine n. JavaScript 语言的实现。
  • JScript n. 一门由微软实现的 JavaScript 方言。
  • lambda expression n. lambda 表达式,一种不绑定到特定标示符上的函数,尤其指定义了自身所需参数和执行(或求值)步骤的表达式。它源于 lambda 演算和 Lisp。
  • leaky abstraction n. 抽象泄漏,指意外地暴露了抽象中所应隐藏或私有的细节。
  • mashup n. 一种网页,它会将来自于不同独立运营服务器上的 JavaScript 代码和内容,动态地组合起来。
  • membrane n. 隔离层,一种在对象能力系统中使用的机制,能在安全上下文之间共享对象并防止篡改。
  • metaobject protocol n. 元对象协议,一种在面向对象语言中明确指定的接口,用于定义和获取对象基础性的语言层面行为。
  • method n. 方法,一种作为对象组成部分的函数。
  • Netscape Navigator n. 一款由 Netscape Communications 研发并发布的浏览器。
  • Mocha n. JavaScript 语言前身的代号,同时也是 Netscape 最早的 JavaScript 引擎名称。
  • Mosaic n. 一款由 Marc Andreessen 和 Eric Bina 在 NCSA 开发的浏览器。
  • Node.js n. 一款基于 JavaScript 的服务端平台,最早在 2009 年由 Ryan Dahl 开发。
  • nominal type system n. 名义化类型系统,其中的每个类型定义都会引入唯一的数据类型。在一些面向对象语言中,类定义即被当作名义化的类型定义。
  • non-normative adj. 非规范的,表示在标准文件中未定义具体要求的部分。
  • no-op n. 空操作,一种不做任何事的操作。
  • normative adj. 规范的,表示在标准文件中定义了具体要求的部分。
  • object n. 对象,一种将数据与行为组合为一等公民级复合实体的计算装置。定义和操作对象的机制,在不同的编程语言中各不相同。
  • Opera n. 一款由 Opera Software 开发并分发的浏览器。
  • own property n. 自有属性,在 JavaScript 对象中作为内置部分(而非继承而来)的属性。
  • ordinary object n. 标准对象,一种 JavaScript 对象。对于所有对象都必须支持的基本内部方法,它具备这些方法所对应的默认行为。参见 exotic object
  • profile n. 模式,一组为特定设备、平台或应用而裁剪出的能力集。
  • polyfill n. 一种库,提供原应在浏览器中可用但却缺失的 API。
  • proper tail call n. 消栈的尾调用,一种从不返回控制权到调用者函数的尾调用。
  • property n. 属性,指 JavaScript 对象的组成部分。
  • property key n. 属性键,用于标识对象中某个特定属性的字符串或符号(symbol)。
  • prototype n. 原型,一种可为其他对象提供待继承状态与行为的对象。
  • prototypal inheritance n. 原型继承,一种继承机制。它通过链式的原型,使对象获取其部分或全部的状态与行为。
  • Safari n. 一款由苹果开发并分发的浏览器。
  • sandbox n. 沙盒,一种将程序(或程序的一部分)隔离运行的机制。它可令程序不能从宿主环境或其他程序直接获取数据,或与它们进行交互。
  • Secure ECMAScript n. 安全 ECMAScript,一门 ECMAScript 方言,移除了可能被安全漏洞所利用的特性。
  • self-hosting n. 自托管,使用同一种编程语言编写的代码,来部分实现该语言的引擎。
  • shadow v. 遮盖,指覆盖(但不重新定义)某种被继承的特质。
  • Silverlight n. 一款微软的富互联网应用平台。
  • scope n. 作用域,一段程序中的区域,在其中可以引用某个变量(或任何已声明的绑定)。
  • scope contour n. 作用域轮廓,在一组嵌套的作用域内,对单个作用域的表示。
  • scripting language n. 脚本语言,一种大体上较为简单的编程语言,用于编排计算系统与应用中的操作,或者编排在其他语言中定义出的计算抽象。
  • SpiderMonkey n. 一款 JavaScript 引擎,它被 1996 年后所有的 Netscape 和 Mozilla 浏览器所使用。
  • static language n. 静态语言,一种在程序执行前需要进行部分或大量分析的语言。静态语言中,多数强制性的错误检查在程序执行前发生,并且其典型程序也不能在执行时被修改。参见 dynamic language
  • statically typed adj. 静态类型,表示一类编程语言,其中与数据类型安全相关的约束检查,主要在程序运行前实行。
  • tail call n. 尾调用,一种在方法中对方法或函数的调用,这种调用是该方法的最终动作。对此类调用的实现,可能(但不必)将控制权返回调用者方法。参见 proper tail call
  • transpiler n. 转译器,一种语言处理器,会将某种语言的程序编译到另一种语言。
  • type n. 类型,指某个种类的值,其中的元素具备共通的特质,如它们的表示与可用操作等。
  • type annotation n. 类型注解,一种用于为变量或其他绑定关联类型的语法形式。
  • URL n. 万维网网页的地址(统一资源定位符)。
  • value n. 值,一个由程序操作的信息单位。在类型化的编程语言中,值被分类为不同的类型。
  • V8 n. 一款由 Chrome 浏览器所使用的 JavaScript 引擎。
  • WebKit n. 一款由 Apple Safari 和其他一些浏览器所使用的开源浏览器内核。
  • Web 2.0 n. 一种 Web 应用风格,它关注用户原创内容(UGC),一般具备高度的可交互性,并使用 AJAX 技术构建。
  • Web Reality n. 由于万维网被现存网页与应用而使用,所导致的一种万维网的技术形态和特质。对 Web 基础设施的扩展,通常必须能允许现存的形态与特质保持不变。

缩略语和首字母缩写词§

(按首字母排序)

AJAXAsynchronous JavaScript And XML
APIApplication Program Interface
CCCo-Ordinating Committee - Ecma 国际的管理委员会
CLR微软 .NET 的 Common Language Runtime 组件
CSPContent Security Policy
CSSCascading Style Sheets
DHTMLDynamic HTML
DOMDocument Object Model
GAGeneral Assembly - Ecma 会员的半年度会议
GCCGNU C Compiler
GWTGoogle Web Toolkit
HTMLHypertext Markup Language
IE微软的 Internet Explorer 浏览器
IIFEImmediately Invoked Function Expression
I18NInternationalization - 在「I」和「n」之间有 18 个字母
JITJust In Time 编译器
JVMJava Virtual Machine
MOPMetaobject Protocol
NCSANational Center for Supercomputing Applications
OCAPObject Capability
OMGObject Management Group
POSIXPortable Operating System Interface modeled on UNIX
RFPRequest For Proposal
SESSecure ECMAScript
TCEcma 国际的 Technical Committee
TDZTemporal Dead Zone
TGEcma 国际 TC 中的 Task Group
VMVirtual Machine
WGWorking Group - 在 Ecma TC 或 TG 内部的特设组

时间线§

第一部分:语言诞生§

1989Tim Berners-Lee 开始在 CERN 投入超文本项目
199012 月 25 日Tim Berners-Lee 实现第一个 Web 浏览器
19918 月 6 日Tim Berners-Lee 公开发布「万维网」
1992Brendan Eich 离开 Silicon Graphics,加盟 MicroUnity
12 月Marc Andreessen 与 Eric Bina 开始开发 NCSA Mosaic 浏览器
19936 月Mosaic for Unix 的 alpha 版本发布
11 月 11 日Mosaic 发布 Windows 版本
19944 月Jim Clark 和 Marc Andreessen 建立后来的 Netscape
9 月首个 Netscape 浏览器的公开 beta 版发布
12 月Netscape 浏览器(Navigator 1.0)的生产版本发布
1995Q1Brendan Eich 被 Netscape 招募来「在浏览器里写 Scheme」
4 月Sun 的 Java alpha 1.0 版本发布
4 月 3 日Brendan Eich 开始在 Netscape 工作,被分配到服务器团队
4 月 - 5 月Netscape 公司内部关于浏览器脚本语言的战略制定和辩论
5 月 6 日 - 15 日 (?)Brendan Eich 实现「Mocha」的 10 天冲刺
5 月 16 日 (?)面向 Netscape 工程团队的 Mocha demo
5 月 16 日 - 31 日 (?)决定在 Netscape 2.0 中加入 Mocha
5 月 23 日Sun 宣布推出 Java,Netscape 宣布授权将 Java 纳入其浏览器
5 月 26 日比尔·盖茨发布「互联网浪潮」备忘录
夏季Eich 投入 Mocha 与浏览器的集成,并处理 JavaScript 的特性和 bug
8 月 9 日Netscape IPO 上市
8 月 16 日微软 Internet Explorer 1.0 发布
Netscape 2.0 特性冻结
9 月 18 日Netscape 2.0 beta 1 发布,加入 LiveScript 和 Java 1.0
10 月Robert Welland 被微软招募来「为 IE 添加脚本支持」
Q4在微软,Robert Welland,Sam McKelvie 和 Peer Kukol 对 beta 版 LiveScript 做逆向工程,逐步实现可运行它的解释器
11 月 22 日微软 Internet Explorer 2.0 为 Windows 95 和 NT 发布
12 月 4 日Netscape 和 Sun 正式发布 JavaScript
12 月 5 日微软表示计划将 Visual Basic 作为 Web 应用的标准
1996Q1Shon Katzenberger 接管 JScript 解释器,并添加 VBScript 支持
3 月 18 日JavaScript 1.0 随 Netscape 2.0 发布
JavaScript 1.0 随 Netscape LiveWire Server 发布
5 月 29 日JScript 与 VBScript 随 Internet Explorer 3.0 beta 1 发布
8 月 13 日JScript 1.0 随 Internet Explorer 3.0 发布
8 月 19 日JavaScript 1.1 随 Netscape 3.0 发布
Q3Brendan Eich 构建 SpiderMonkey 引擎以替代 Mocha,并开始设计 JavaScript 1.2
Clayton Lewis 负责管理 Netscape JavaScript,并扩张团队
11 月 21 日 - 22 日Ecma TC39 开始会议
12 月SpiderMonkey 与最早的 JavaScript 1.2 特性随 Netscape 4 beta 1 发布
JScript 与 VBScript 随微软 Active Server Pages(ASP 1.0)发布
19971 月Internet Explorer 3 的 JScript 2.0 更新发布
4 月Netscape 4 beta 3 发布,为 JavaScript 1.2 添加正则表达式支持
6 月JavaScript 1.2 随 Netscape 4.0 发布
9 月 第一版 ECMAScript 标准完成并发布
10 月JScript 3.0 随 Internet Explorer 4.0 发布

第二部分:创立标准§

199512 月 4 日Netscape 和 Sun 宣布希望将 JavaScript 推荐为 W3C 和 IETF 开放标准
19963 月JavaScript 1.0 随 Netscape 2.0 发布
Q1-Q2Netscape 与 Ecma 秘书长进行非正式接触
8 月JavaScript 1.1 随 Netscape 3.0 发布
JScript 1.0 随 Internet Explorer 3.0 发布
Q3Brendan Eich 开始实现 JavaScript 1.2
9 月Ecma 协调委员会批准 JavaScript 标准启动会议
10 月 10 日Netscape 申请成为 Ecma 准会员
10 月 30 日Ecma 开放对「Java Script 项目启动会议」的邀请
11 月 21 日 - 23 日Ecma TC39 启动会议,将「ECMAScript」作为占位名
Netscape 和微软贡献初步的 JavaScript 规范
Borland 的 Michael Gardner 被任命为 TC39 临时编辑
12 月SpiderMonkey 与最早的 JavaScript 1.2 特性随 Netscape 4 beta 1 发布
Gardner 和 Eich、Katzenberger 等人共同开发首份规范草案
12 月 18 日微软申请成为 Ecma 标准会员
12 月 19 日 - 20 日Ecma GA 大会设立 TC39 作为网络语言技术委员会,并批准其工作计划
19971 月IE 3.0 的 JScript 2.0(对应 JavaScript 1.1 特性)更新发布
1 月 10 日首份 JavaScript 规范草案向 TC39 成员发布
1 月 14 日 - 15 日第二次 TC39 会议,Scott Wiltamuth 罗列可能的语言名称
技术工作组(WG)成立,每周举行会议(或电话会议)
1 月 15 日首次技术工作组会议
工作组达成共识,标准将不包含 JavaScript 1.1 后的特性和宿主 API
1 月 15 日 - 22 日 (?)Borland 将不加入 Ecma,Gardner 辞任编辑
1 月 31 日Guy Steele 担任 TC39 编辑
Q1每周举行技术工作组会议
3 月 12 日第 12 份规范草案发布
3 月 18 日 - 19 日第三次 TC39 会议,技术工作组获得授权完成规范,并提交供 GA 大会批准
工作组仍在寻找语言名称,Netscape 表面上认可了 LiveScript 的可用性
5 月 5 日第 18 份规范草案提交到 Ecma 秘书处,供 GA 大会评审
6 月JavaScript 1.2 随 Netscape 4.0 发布
6 月 26 日 - 27 日Ecma GA 大会批准 JavaScript 规范为《ECMA-262》
规范推迟发布,以进行编辑更正并解决命名问题
7 月 15 日 - 16 日第四次 TC39 会议,由于无法使用 LiveScript 命名语言,名称仍然未定
初步讨论「第 2 版」的目标、进程和特点
9 月 16 日 - 17 日TC39 同意使用 ECMAScript 名称,并公开发布《ECMA-262》
工作组同意「第 2 版」规范将向后兼容第 1 版
9 月 23 日 - 24 日Ecma 将《ECMA-262》提交进入 ISO/IEC 快速通道流程
10 月兼容《ECMA-262》的 JScript 3.0 随 Internet Explorer 4.0 发布
Guy Steele 辞任 TC39 编辑,由 Mike Cowlishaw 接替
技术工作组开始每月举行会议
10 月 9 日为期 6 个月的 ISO/IEC 投票期开始
10 月 10 日技术工作组草拟出首份「V2」特性列表
1998Q1TC39 技术贡献者的更替基本完成
Brendan Eich 加入 Netscape 浏览器开源项目
2 月 18 日TC39 会议将 1999 年 6 月作为「V2」的发布目标
2 月 19 日技术工作组会议
Brendan Eich 最后一次参会,Mozilla 的 Waldemar Horwat 和微软的 Herman Venter、Rok Yu 首次参会
讨论 Netscape 和微软的异常处理提案
3 月 31 日Netscape 在 mozilla.org 开放浏览器源码
4 月 9 日ISO/IEC 投票期结束,共提交 27 页评论
4 月 22 日基于 ES1 规范的首份「V2」规范出炉
5 月Bill Gibbons 担任「V2」工作草案编辑
技术工作组开始使用「状态文档」追踪进展
HP 提交关于国际化支持需求的评论
5 月 18 日美国司法部对微软提起关于浏览器的反垄断诉讼
6 月 15 日所有投票问题在 ISO 处置意见会议上得以解决
7 月最新规范提交至 ISO,以作为 ISO/IEC 16262:1998 发布
8 月Ecma 发布《ECMA-262 第 2 版》
兼容《ECMA-262》的 JavaScript 1.3 随 Netscape 4.06 发布
9 月ES2 变更合并入「V2」工作草案
9 月 16 日国际化工作组成立
11 月 18 日国际化相关会议举行,IBM 的 Richard Gillam 担任国际化工作组主席
确定下一份 ECMA-262 规范只计划加入最低限度的本地化钩子
确定大部分国际化特性应置于单独的库或规范中
11 月 19 日技术工作组会议
IBM 提议加入十进制小数
《未来特性展望表》被评审和更新,许多条目推迟到「V2」后处理
加入对 undefined 的全局绑定
工作组担心浏览器可能会在「V2」前提供不同的异常层次结构
11 月 28 日AOL 宣布与 Netscape 达成收购协议
1999Q1开展许多关于嵌套函数和闭包的工作
考虑 Netscape 和微软实现中的作用域差异
考虑正则表达式是否应该加入 Perl 5 的特性
TC39 将下一份规范改称「E3」而非「V2」
2 月 19 日Waldemar Horwat 透露 JavaScript 2.0 新特性
3 月 17 日AOL 完成对 Netscape 的收购
3 月 29 日TC39 会议将进度表定为 6 个月,新目标是 1999 年 12 月
3 月 30 日技术工作组设定另一份「E3」特性集
Q2投入密集工作,以解决问题并完成规范
7 月 12 日 - 13 日技术工作组逐节详细评审工作草案
8 月 8 日E3 状态文件显示,所有条目要么已达到「内容已同意」状态,要么未发生改变
8 月 20 日Bill Gibbons 完成「第 3 版最终候选草案」
9 月 23 日 - 24 日最后一次技术工作组的「E3」会议,Bill Gibbons 离任开始新工作
将由 Herman Venter 和 Waldemar Horwat 完成规范
「函数合并」加入规范
就异常达成最终一致
就具名 FunctionExpression 中标识符的作用域达成一致
9 月 24 日TC39 投票批准将 ECMA-262 第三版提交给 Ecma GA 大会
10 月 13 日最终草案发送至 Ecma 秘书处
11 月 15 日 - 16 日对最终草案进行少量修订
微软发现规范中的 String.replace 会破坏网站。最终草案被修改,以适应微软的原有行为
12 月 16 日 - 17 日Ecma GA 大会批准《ECMA-262 第三版》
20003 月 25 日Waldemar Horwat 创建公开的 ES3 勘误表网页
7 月微软随 IE 5.5 发布兼容 ES3 的 JScript 5.5
11 月Netscape 随 Netscape 6 发布兼容 ES3 的 JavaScript 1.5

第三部分:改革失败§

19977 月Oracle 介绍将 ECMAScript 作为组件脚本语言
1998Q1Waldemar Horwat 和 Herman Venter 开始参与 TC39
2 月Dave Raggett 将 Spice 提案提交到 TC39
5 月 4 日 - 5 日Dave Raggett 担任 W3C「塑造 HTML 的未来」研讨会联合主席
W3C 决定冻结 HTML,并「以一套 XML 标签集为基础,重新打造下一代 HTML」
5 月 15 日Jeff Dyer 首次参加 TC39 会议
6 月NetObjects 提出首份 ECMAScript 组件规范草案
11 月Dave Raggett 向 TC39 提交修订后的 Spice 提案
TC39 感兴趣于类、数值单位、元组和模块等特性
TC39 Spice 工作组成立
12 月Spice 工作组举行电话会议后,Raggett 提出新提案
1999Q1Spice 工作组关于静态与动态手段的讨论与分歧
2 月 19 日Waldemar Horwat 透露 JavaScript 2.0 新特性
3 月Spice 工作组成为模块化子组
3 月 30 日TC39 创建第四版及其之后的《未来特性展望表》
5 月Macromedia Flash 中加入 JavaScript 式的脚本语言
6 月Ecma GA 大会批准《ECMA-290 ECMAScript 组件规范》
Q4TC39 的注意力转向初版 ES4
10 月 14 日模块化子组的会议在英国布里斯托尔的 HP 实验室举行
11 月TC39 起草初版 ES4 的临时特性列表
12 月 16 日 - 17 日Ecma GA 大会批准《ECMA-262 第 3 版》
20001 月微软希望「第 4 版」规范在 12 月前完成,并削减特性
微软发布 ES3 规范修改建议,对类型注释进行修改
6 月 22 日微软发布 .NET 框架
7 月 11 日微软发布 .NET 预览版,包含 JScript.NET 早期版本
7 月 13 日Herman Venter 在 TC39 会议上讨论 JScript.NET 设计
8 月Macromedia Flash 5 发布,附带 ActionScript 这一 ECMAScript 方言
8 月 17 日Netscape 的初版 ES4 提案从 JavaScript 2.0 提案中分离
8 月 22 日Herman Venter 与 Waldemar Horwat 会面,试图对齐 JavaScript 2 与 JScript.NET,共讨论 43 点分歧
2001Douglas Crockford 开始为 JavaScript 布道
1 月TC39 职责扩大并包含 .NET,ECMAScript 工作移到 TC39-TG1
6 月Ecma GA 大会批准《ECMA-327 ECMAScript 第 3 版精简模式》
8 月 27 日Internet Explorer 6 发布
11 月 17 日Waldemar Hormat 的 JS2.0 论文在 MIT 轻量语言研讨会上发表
20023 月初版 ES4 目标日期移至 2003 年 12 月
6 月BEA 提议为 ECMAScript 加入 XML 扩展(E4X)
Herman Venter 最后一次参加 TC39-TG1 会议
8 月E4X 规范工作启动
9 月 22 日Phoenix 0.1(Firefox 的原型)浏览器发布
12 月Douglas Crockford 搭建 json.org 网站,向世人介绍 JSON
20031 月苹果发布 WebKit 与 Safari 浏览器
3 月TG1 讨论延期初版 ES4 以聚焦 E4X,但未实行
5 月Jeff Dyer 加入 Macromedia,开始开发 ActionScript 3
7 月 15 日AOL 终止 Netspace 运营,解雇大多数员工
Waldemar Horwat 辞任新版 ES4 编辑
TG1 暂停新版 ES4 工作,聚焦 E4X
独立的 Mozilla 基金会启动
9 月Macromedia 发布大体基于新版 ES4 语法的 ActionScript 2
11 月Macromedia 加入 Ecma 以参与 TC39-TG1
12 月Ecma GA 大会批准《ECMA-357 ECMAScript for XML》规范
20045 月Mozilla 基金会作为非营利会员加入 Ecma
6 月Brendan Eich 帮助建立 WHATWG
Brendan Eich 自 1998 年 2 月以来首次参加 TC39(TG1)会议
TG1 决定放弃初版 ES4 规范,转向「不那么复杂的东西」
Jeff Dyer 担任 ES4 编辑
Q3-Q4TG1 主要从事 E4X 第二版的工作
11 月 9 日Firefox 1.0 浏览器发布
2005Dojo 框架发布
Q1-Q3TG1 主要从事 E4X 第二版的工作
2 月Jesse James Garrett 发明「AJAX」术语
Q2-Q4Brendan Eich 发布博客,讨论新版 ES4 问题与目标
4 月Adobe 宣布与 Macromedia 达成收购协议
9 月Brendan Eich 担任 TC39-TG1 召集人
Eich 将 TG1 的工作重点放在开发新版 ES4 上
目标设定为 6 个月内就特性达成一致,一年内发布草案
新版 ES4 规范标记将使用「操作语义语言」
9 月 26 日Brendan Eich 在 ICFP 发表《JavaScript 十周年》演讲
10 月Brendan Eich 在博客中感兴趣于一种形式化的「可检查的规范」
11 月Macromedia 向 TG1 贡献 ActionScript 3 规范
Graydon Hoare 首次代表 Mozilla 参与 TG1 会议
11 月 30 日JavaScript 1.6 随 Firefox 1.5 发布
12 月Ecma GA 大会批准《ECMA-357 E4X 第二版》
Adobe 完成对 Macromedia 的收购
2006jQuery 与 MooTools 框架发布
TG1 使用内部 Wiki 收集并讨论新版 ES4 提案
1 月Adobe 贡献基于 AS3 的《Ecmascript 4 语言规范》草案
2 月Lars Hansen 首次代表 Opera 参加 TG1 会议
Dave Herman 首次参加 TG1 会议
Dave Herman 在 TG1 介绍形式化规范技术
Maciej Stachowiak 首次代表苹果参加 TG1 会议
3 月Cormac Flanagan 首次参加 TG1 会议
Q2-Q3Dave Herman 探索多种可用的形式化规范语言
4 月Pratap Lakshman 首次代表微软参加 TG1 会议
TG1 目标设为在 2007 年 Q1 完成对新版 ES4 的验证,并准备好将其提交给 GA 大会
6 月Adobe 发布 Flash ActionScript 3
公共的 ES4 Wiki 出口和 es4-discuss 邮件列表开放
Douglas Crockford 首次代表雅虎参加 TG1 会议
Crockford 提出关于新版 ES4 与 ES3 的兼容性问题
Pratap Lakshman 表示微软计划在 IE7 后实现 ES4
7 月 27 日 - 28 日TG1 会议上,Douglas Crockford 强调后向兼容的重要性
Pratap Lakshman 表示后向兼容性属于微软的最高优先级
10 月 18 日Internet Explorer 7 发布
10 月 19 日 - 20 日TG1 决定使用基于 ML 的参考实现来定义新版 ES4
Q4 剩余时间使用 SML 开发参考实现的初始工作
10 月 24 日JavaScript 1.7 随 Firefox 2.0 发布,包含多种受 Python 和新版 ES4 启发的试验性特性
11 月 6 日Adobe 将 AS3VM 以 Tamarin 之名(开源)贡献给 Mozilla
11 月 15 日Douglas Crockford 在雅虎举行浏览器安全峰会
11 月 16 日Mick Cowlishaw 参加 TG1,IBM 希望在新版 ES4 中加入十进制小数
12 月Jeff Dyer 尝试将 ML 代码与规范文本相集成
TG1 的新版 ES4 工作组每周举行电话会议,每月举行会议或 hackathon
进行关于混合结构类型系统和其他新语义的工作
进行关于建立新版 ES4 的 ML 参考实现的工作
20071 月Pratap Lakshman 发邮件就新版 ES4 向微软 DevDiv 各经理询问方向
Allen Wirfs-Brock 建议微软反对新版 ES4
2 月TG1 会议上,Pratap Lakshman 宣布微软反对新版 ES4
Wirfs-Brock 和 Crockford 同意联合开发维护 ES3 的提案
3 月 15 日雅虎与微软发布联合提案,要求 TG1 重新聚焦对 ES3 的维护
3 月 21 日 - 23 日TG1 会议在微软举行,Allen Wirfs-Brock 首次参加
持续讨论新版 ES4 与 TG1 的目标
工作组就微软与雅虎启动 ES3.1 项目达成一致
3 月 29 日Crockford 与 Wirfs-Brock 会面,起草 ES3.1 目标与设计准则
4 月Lars Hansen 进入 Adobe 工作,继续投入新版 ES4
4 月 4 日Douglas Crockford 更新他对 ECMAScript 的修改建议
4 月 15 日初始 ES3.1 Wiki 提案基本由 Crockford 的建议而衍生
4 月 18 日 - 20 日TG1 会议上,ES3.1 工作组抵制以 ML 参考实现开发 3.1
Adam Peller 首次代表 IBM 参加 TG1 会议
夏季Pratap Lakshman 分析 JavaScript 在主流浏览器之间的可互操作性
6 月 8 日新版 ES4 参考实现发布「M0」版本
6 月 21 日Alex Russel 首次代表 Dojo 基金会参加 TG1 会议
6 月 22 日工作组呼吁开始编写新版 ES4 规范,并在 9 月前完成
Q3-Q4在博客文章和会议讨论组中,出现关于 ES3.1 和新版 ES4 的公开争议
9 月 7 日新版 ES4 规范完成目标重置为 2008 年 9 月
Lars Hansen 担任新版 ES4 编辑
9 月 26 日Pratap Lakshman 发布《JScript 到 ES3 的偏差》报告
9 月 27 日 - 28 日TG1 举行会议以精简新版 ES4 Wiki 提案
54 份提案获得批准,另有 26 份提案被拒绝或推迟
Jeff Dyer 力推拒绝《对 ES3 的维护》提案
工作组决定不再将 ES3.1 作为新版 ES4 提案,为其分配独立的 Wiki 命名空间
Waldemar Horwat 自 2003 年以来首次参加 TG1 会议(作为召集人嘉宾)
10 月 16 日谷歌成为 Ecma 标准会员,Waldemar Horwat 代表谷歌
10 月 21 日Lars Hansen 完成 40 页的《ECMAScript 4 语言概述》
10 月 23 日 - 24 日Ecma 协调委员会会议中表示了对分歧的担忧
11 月Lars Hansen 发布 3 份针对新版 ES4 不同维度的报告
11 月 8 日 - 9 日Ecma 主席 John Neumann 参加 TG1 会议
Neumann 推荐将 TG1 演化为完整的技术委员会,增强 Ecma 的监管
Douglas Crockford 提出新的「安全 ECMAScript(SES)」项目
投票调查显示,TG1 对 ES3.1、新版 ES4 和 SES 的兴趣都很大
12 月Adobe 和微软一致同意支持 John Neumann 担任 TC39 新主席
2008TC39-TG1 重新成为 TC39,其余 TC39 的 TG 转为 TG49
Q1-Q2ES3.1 工作组组织起来,开始基于 ES3 制定新规范
2 月Jeff Dyer 发布新版 ES4 工作计划
Dyer 与 Hansen 提议延迟「奇怪、未经证实或高耗的」新版 ES4 特性
5 月Douglas Crockford 发表《JavaScript 语言精粹》
5 月 29 日 - 30 日TC39 会议起草 ES3.1 和新版 ES4 草案
6 月Adobe 放弃新版 ES4 项目
6 月 17 日JavaScript 1.8 随 Firefox 3.0 发布
6 月 23 日 - 25 日在奥斯陆举行的 TC39 会议终止新版 ES4,TC39 聚焦 ES3.1 和「Harmony」
8 月Ecma 公开宣布终止新版 ES4,并启动 Harmony 项目
200912 月 3 日Ecma 标准《ECMA-290 ECMAScript 组件规范》被撤回
20156 月 17 日Ecma 标准《ECMA-327 ECMAScript 第 3 版精简模式》和《ECMA-357 E4X》被撤回

第四部分:继往开来§

20065 月谷歌发布 GWT(Java 到 JavaScript 的转译器)
200712 月苹果发布 JavaScript 测试套件 SunSpider
10 月谷歌 Caja 项目(安全 JavaScript)发布
20081 月 24 日Mark Miller 首次代表谷歌参加 TC39 会议
Kris Zyp 首次代表 Dojo 基金会参加 TC39 会议
2 月 21 日ES3.1 工作组双周电话会议启动
2 月 26 日工作组以浏览器特性的「四人三票」原则修订 ES3.1 目标
3 月Pratap Lakshman 担任 ES3.1 规范编辑
ES3.1 基础文档基于 ES3 规范及其勘误表而创建
编写任务分配给七位 ES3.1 工作组参与者
4 月 22 日es3.1-discuss 邮件论坛开放
Allen Wirfs-Brock 发布 Object.defineProperty 设计概述
4 月 24 日工作组讨论严格模式概念与 "use strict"; 指令
5 月 29 日 - 30 日ES3.1 规范草案在 TC39 会议上展示,并发布到 Wiki
6 月Adobe 放弃新版 ES4 项目
6 月 10 日Mark Miller 更新 ES3.1 草案,以使用结构化的伪代码
6 月 17 日支持「表达式闭包」的 JavaScript 1.8 随 Firefox 3.0 发布
7 月 4 日ES3.1 草案中用词法环境概念替代活动对象
块级 const 声明
7 月 15 日Allen Wirfs-Brock 发布《静态对象函数:使用场景与原理》
7 月 23 日 - 25 日在奥斯陆举行的 TC39 会议终止新版 ES4,TC39 聚焦 ES3.1 和「Harmony」
Harmony 讨论中涉及将类去糖化为词法闭包
8 月Ecma 公开宣布终止新版 ES4,并启动 Harmony 项目
TC39 Wiki 上建立 Harmony 稻草人页面
8 月 28 日首次 TC39 安全 ECMAScript(SES)会议
9 月 1 日ES3.1 加入对十进制小数的初始支持
9 月 2 日谷歌发布带有 V8 JavaScript 引擎的 Chrome 浏览器预览版
10 月 13 日Waldemar Horwat 在 es-discuss 上列出四种绑定「死区」的可选方案
Dave Herman 提出「Lambdas」的稻草人提案
11 月Cormac Flanagan 发布首份与类相关的 Harmony 稻草人提案
11 月 19 日 - 20 日TC39 会议上,进行 ES3.1 最终特性评审
十进制小数与 const 声明在 Harmony 中延期
11 月 21 日Wiki 稻草人页面共有 7 个条目
11 月 29 日Brendan Eich 为 Wirfs-Brock 的 Smalltalk 式「块级 Lambda」发布提案
12 月 11 日Google Chrome 1.0 发布
20091 月CommonJS 项目启动
Kris Kowal 与 Ihab Awad 向 TC39 介绍 CommonJS 模块的前身
Douglas Crockford 启动 ADsafe 项目
1 月 28 日TC39 会议上,Pratap Lakshman 演示 IE 中的微软 ES3.1 原型
3 月 19 日Internet Explorer 8 发布,加入部分 ES3.1 特性支持
3 月 24 日SES 工作组的最后一次会议
3 月 25 日 - 26 日Pratap Lakshman 辞任 ES3.1 编辑,由 Allen Wirfs-Brock 接替
ES3.1 重命名为 ES4,「ES4」名称被永久性放弃
4 月 7 日ES5 的「最终草案」发布至 TC39 Wiki
5 月Node.js 首个公开版本发布
Eric Arvidsson 首次代表谷歌参加 TC39 会议
Brendan Eich 发布「catchalls」Harmony 稻草人提案
6 月微软向 Ecma 贡献 ES5 新特性测试套件
谷歌发布开源的 Sputnik ES3 测试套件
6 月 17 日苹果 Safari 更新 Nitro JavaScript 引擎
6 月 24 日以 TraceMonkey 优化 JavaScript 性能的 Firefox 3.5 发布
7 月「Harmony 目标说明」在 TC39 Wiki 上发布
8 月Harmony 稻草人 Wiki 页面共列出 21 份提案
8 月 17 日苹果发现 ES5 对 arguments 对象的修改会破坏网站
8 月 27 日ES5 首份发行候选版发布
9 月 23 日TC39 投票决定将 ES5 提交给 Ecma GA 大会批准
10 月 28 日ECMA-262 第 5 版提交给 Ecma GA 大会供评审
12 月Jeremy Ashkenas 开始开发 CoffeeScript
Tom Van Cutsem 在 es-discuss 发布「基于代理的 catch-all 提案」
11 月 5 日美国东北大学的 Sam Tobin-Hochstadt 首次参加 TC39 会议
11 月 7 日Brendan Eich 表示 Harmony 需要二等公民的模块系统
12 月 3 日Ecma GA 大会批准《ECMA-262 第 5 版》
2010Q1Remy Shary 发明「polyfill」术语
Ben Alman 发明「IIFE」术语
Dave Herman 加入 Mozilla
Dave Herman 与 Sam Tobin-Hochstadt 开发「简单模块」设计
1 月ES5 进入 ISO 快速通道流程
阿姆斯特丹自由大学的 Tom Van Cutsen 首次参加 TC39 会议
2 月Ihab Awad 发表「Emaker 风格」模块提案
4 月Harmony 目标 Wiki 页面加入多种特性主题
5 月TC39 联合微软 ES5conform 与谷歌 Sputnik,启动 Test262 项目
Ihab Awad 建议 TC39 关注简单模块提案
9 月Alon Zakai 发布 Emscripten,可将 C 代码编译到 JavaScript
TC39 就类是否主要用于「高完整性抽象」产生不同看法
12 月Allen Wirfs-Brock 离开微软,加入 Mozilla
Harmony 稻草人 Wiki 页面共列出 66 份提案
2011全年共发布 4 份 ES6 规范草案
1 月Brendan Eich 发布《我的 Harmony 梦想》博客
3 月Wirfs-Brock 提出扩展对象字面量,以支持类式的抽象
委员会就类应当基于构造函数、原型、实例三要素达成初步共识
简化后的「简单模块」提案出炉
3 月 14 日带有 Chakra JavaScript 引擎,且完全支持 ES5 的 Internet Explorer 9 发布
3 月 22 日Firefox 4.0 与 JavaScript 1.8.5 发布,完全支持 ES5
5 月Brendan Eich 就重新启用块级 Lambda 或使用箭头函数,提出替代性提案
谷歌 Traceur 转译器项目发布
5 月 6 日Dave Herman 在 JSConf 上演示多语言的 Harmony 模块加载器
5 月 10 日Allen Wirfs-Brock、Mark Miller 和其他人就联合类提案而会面
5 月 24 日 - 26 日TC39 Harmony 进行「特性冻结」稻草人提案筛选
基于新联合类提案的 Harmony 类特性获得接受
根据会议 Wiki,共有约 45 份获得接受的 Harmony 提案
6 月《ECMA-262 第 5.1 版》与相同的《ISO/IEC 16262:2011》出版
6 月 22 日Allen Wirfs-Brock 将 ES5.1 规范复制并重命名为「第 6 版草案」
6 月 27 日Dave Herman 表示 Miller 的类过于复杂,提议使用最小化的类设计
7 月 12 日Allen Wirfs-Brock 发布首份 Harmony(ES6)规范工作草案
10 月Tom Van Cutsem 和 Mark Miller 将代理演化为直接代理
11 月 11 日Dave Herman 发布最小化类的稻草人提案
12 月Dave Herman 在 es-discuss 上提议「ES6 不需要 opt-in」
2012全年共发布 9 份 ES6 规范草案
1 月Dave Herman 提出的「One JavaScript」陈述被 TC39 采纳
3 月 19 日Russel Leggett 在 es-discuss 上号召为类找到一种「安全语法」
3 月 25 日Allen Wirfs-Brock 受 Legget 启发,发表「最大化的最小类」
3 月 28 日 - 29 日Brendan Eich 将 TC39 的工作重点放在采纳箭头函数上
5 月标准与异质对象属于在 ES6 规范中采用
TC39 同意允许基于最大化的最小类来制定规范
Yahuda Katz 和 Rick Waldron 首次代表 jQuery 基金会参加 TC39 会议
Rick Waldron 做会议纪要,开始系统化采集技术会议记录
Q3-Q4Jason Orendorff 和 Dave Herman 在 Firefox 中原型化 Harmony 模块与其加载器
9 月 27 日包含最大化最小类的 ES6 规范草案发布
10 月微软推出 TypeScript 转译器
12 月《ECMA-402 第 1 版 ECMAScript 国际化 API》发布
2013全年共发布 8 份 ES6 规范草案
TC39 主要处理已批准的提案特性与规范问题
9 月Rafael Weinstein 与 Dmitry Lomov 提出新的 TC39 研发流程
10 月《ECMA-404 JSON 数据交换格式》发布
ES6 中加入 Promise,以免其被归入 HTML 规范中
11 月Dave Herman 发布首份 Realm API 草案
2014全年共发布 9 份 ES6 规范草案
Node.js 社区批评 TC39 未采纳 CommonJS 模块设计
TC39 开始使用新的多阶段流程来开发 ES6 后的特性
1 月ES6 规范中加入模块与加载器的早期版本伪代码
4 月Douglas Crockford 最后一次参加 TC39 会议
夏季Yehuda Katz 创建 jsmodules.io 网站,向 Node.js 程序员介绍 ES6 模块
6 月浏览器开发者对于 ES6 的类语义,提出其在子类化内置构造函数时的担忧
7 月数组与生成器推导式从 ES6 规范草案中移除
9 月模块加载器从 ES6 规范草案中移除
9 月 24 日针对子类化内置构造函数问题,出现两种相互竞争的重新设计
10 月ES6 规范草案中的模块规范(不含加载器)完成
2015全年共发布 8 份 ES6 规范草案
1 月 27 日TC39 就 ES6 中的突出问题(含子类化构造器问题在内)达成最终一致
2 月Babel(又称 6to5)转译器推出
3 月TC39 批准将 ECMAScript 2015 规范转交给 Ecma GA 大会
4 月 14 日ES2015 最终草案发布至 TC39 Wiki
Q2-Q4TC39 基于新流程,就 ES2016 和其他更长期的提案开展工作
6 月 17 日《ECMA-262 第 6 版 ECMAScript 2015 语言规范》与《ECMA-402 第 2 版 ECMAScript 国际化 API》被批准为 Ecma 标准
7 月Brian Terlson 接替 Allen Wirfs-Brock 为 ECMA-262 项目编辑
20166 月 14 日《ECMA-262 第 7 版 ECMAScript 2016 语言规范》与《ECMA-402 第 3 版 ECMAScript 国际化 API》被批准为 Ecma 标准

1995 年 12 月 4 日的 JavaScript 发布公告§

[Netscape and Sun 1995, Page 1-2]

网景公司和太阳公司宣布推出 JavaScript:面向企业网络和互联网的开放跨平台对象脚本语言

28 家行业领先企业支持将 JavaScript 作为 Java 的补充,实现便捷的在线应用开发


加利福尼亚州山景城(1995 年 12 月 4 日)- 网景通讯公司(NASDAQ: NSCP)和太阳微系统公司(NASDAQ: SUNW)今天宣布推出 JavaScript。这是一种开放的、跨平台的对象脚本语言,可用于创建和定制企业网络和互联网上的应用程序。JavaScript 语言是对太阳公司业界领先的跨平台面向对象编程语言 Java 的补充。JavaScript 的初始版本现已作为 Netscape Navigator 2.0 测试版的一部分而提供,现在即可从网景的网站上下载。

此外,28 家行业领先的公司,包括美国在线公司、苹果电脑公司、Architext 软件公司、Attachmate 公司、AT&T 公司、Borland 国际公司、Brio 科技公司、CA 科技公司、DEC 公司、惠普公司、Iconovex 公司、Illustra 信息技术公司、Informix 软件公司、Intuit 公司、Macromedia 公司、Metrowerks 公司、Novell 公司、甲骨文公司、Paper 软件公司、Precept 软件公司、RAD 科技公司、圣克鲁兹作业公司和硅谷图形公司、Spider 科技公司、Sybase 公司、东芝公司、Verity 公司和 Vermeer 科技公司在内,均支持将 JavaScript 作为一种开放标准的对象脚本语言,并计划在未来的产品中提供它。JavaScript 的规范草案以及 Java 的最终规范草案,计划于本月公布并提交给有关标准机构,供业界审查和评论。

JavaScript 是一种易于使用的对象脚本语言。它的设计用途是创建实时的在线应用,从而将客户端和服务器上的对象和资源连接在一起。相比起已被程序员用于创建新对象和 applet 小应用的 Java,JavaScript 则是为 HTML 页面作者与企业应用开发者而设计的,用于对客户端或服务器上所运行对象的行为进行动态的脚本化。JavaScript 可被那些缺乏(甚至不具备)编程经验的人用来快速构建复杂的应用,在这一点上它类似于 Visual Basic。JavaScript 的设计代表了专为互联网设计的下一代软件,它具备如下特点:

  • 为创建以网络为中心的应用而设计
  • 能与 Java 互补并互相整合
  • 能与 HTML 互补并互相整合
  • 开放、跨平台

Java 由太阳公司开发,是一种面向对象的编程语言,其运行可独立于任何操作系统或微处理器。被称为 applet 小应用的 Java 程序可以通过网络传输,并能在任何客户端上运行,以此在企业网络和互联网上提供像 CD-ROM 一样丰富的多媒体功能。Java 省去了移植应用的必要,因此已受到了来自程序员的广泛欢迎。它还有潜力降低在网络上分发和维护应用的成本,因此也受到了信息系统管理者们的广泛欢迎。

有了 JavaScript,就有可能在 HTML 页面中加入智能的表单。它可以根据用户的输入,在客户端执行贷款支付或货币兑换等计算。而某个用 Java 编写的多媒体天气预报 applet 小应用,也可以通过 JavaScript 脚本,根据某地区当前的天气读数来显示适当的图像和声音。服务端的 JavaScript 脚本可以做到从关系型数据库中提取数据,并飞快地将其格式化为 HTML。在页面中,还可能包含有在客户端和服务器上均可运行的 JavaScript 脚本。在服务器上,脚本可以根据存储在关系型数据库中的用户偏好,来动态地组合与格式化出 HTML 内容;在客户端上,脚本能将各种 Java applet 小应用和 HTML 表格元素粘合在一起,形成一个可实时交互的用户界面,以进行全网范围内的信息搜索。

Java 程序和 JavaScript 脚本都已被设计成在客户端和服务器上均可运行,其中 JavaScript 脚本可用于修改 Java 对象的属性和行为。因此,对于通过企业网络或互联网来向用户动态呈现信息,并与用户交互的实时在线应用,其边界几乎是无限的。网景公司将在客户端和服务器产品中支持 Java 和 JavaScript,以及相应的编程工具和应用,以实现这一愿景。

太阳公司联合创始人兼研究副总裁 Bill Joy 说:「程序员们对 Java 的热情非常高涨,因为它从一开始就是为互联网而设计的。JavaScript 和它堪称天作之合,因为 JavaScript 也是为互联网而设计的,也是为基于 Unicode 的全球性使用而设计的。在把基于 HTML 的内容连接到 Java applet 小应用时,JavaScript 将成为最有效的手段。」

网景公司的创作和应用开发工具 - Netscape Navigator Gold 2.0、Netscape LiveWire 和 Netscape LiveWire Pro - 都是专为快速开发和部署 JavaScript 应用而设计的。Netscape Navigator Gold 2.0 使开发者能创建和编辑 JavaScript 脚本,而 Netscape LiveWire 则使 JavaScript 程序能在企业内部和互联网上的网景服务器上安装、运行和管理。Netscape LiveWire Pro 增加了对 JavaScript 连接到 Illustra、Informix、微软、甲骨文和 Sybase 的高性能关系型数据库时的支持。所有网景产品都内置了对 Java 和 JavaScript 的支持,为构建和部署实时在线应用,提供了一个统一的、从前到后的「客户端 / 服务器 / 工具」环境。

开发者可以免费使用 Java。对于 Java 编译器、Java 开发工具包、HotJava 浏览器和相关文档,可以从太阳公司的网站 http://java.sun.com 获得。此外,Java 源代码还可以付费获得许可。有关授权的详细信息也可以通过 java.sun.com 网页了解。到目前为止,太阳公司已经将 Java 授权给了一些领先的技术公司,包括 Borland、Macromedia、三菱、网景、甲骨文、硅谷图形公司、Spyglass 和东芝。太阳公司的 Workshop for Java 工具箱计划于 1996 年春季发布。太阳公司的 NEO 产品系列是首个面向对象网络应用的完整开发、操作和管理环境,它也将用支持 Java 的浏览器作为 NEO 环境的前端。

网景公司和太阳公司计划向万维网联盟(W3C)和互联网工程任务组(IETF)提议,将 JavaScript 作为开放的互联网脚本语言标准。JavaScript 将是一个开放的、免费授权的拟议标准,可供整个互联网社区使用。现有的太阳公司 Java 授权用户也将获得 JavaScript 的授权。此外,太阳公司和网景公司还计划为买断式授权提供 JavaScript 的源代码参考实现,以此进一步鼓励在各类产品中采用 JavaScript 作为标准。

网景通讯公司是首屈一指的开放软件供应商。它通过企业网络和互联网,将人和信息联系起来。公司提供全系列的 Netscape Navigator 客户端、Netscape 服务器、开发工具和 Netscape 互联网应用程序,为下一代实时在线应用创建完整的平台。网景通讯公司在纳斯达克上市,股票代码为「NSCP」,总部位于加利福尼亚州山景城。

太阳微系统公司的年收入为 60 亿美元,它提供解决方案,使客户能建立和维护开放的网络计算环境。作为公认的开放标准倡导者,该公司从事商业和技术计算产品、技术和服务的设计、制造和销售。太阳公司的 SPARC™ 工作站、多处理器服务器、SPARC 微处理器、Solaris 操作系统软件和经 ISO 认证的服务机构,在 UNIX‎® 产业中均排名第一。太阳微系统公司成立于 1982 年,总部位于加利福尼亚州山景城,在全球拥有 14000 多名员工。

有关网景通讯公司的更多信息可在互联网上获得,亦可发送电子邮件至 info@netscape.com,或致电 415-528-2555。有关太阳微系统公司的更多信息可在互联网上获得,网址为 http://www.sun.com,另有 http://java.sun.com 网址可供查询 Java 的信息。Netscape Communications、Netscape Communications 标志、Netscape 和 Netscape Navigator 是网景通讯公司的商标。JavaScript 和 Java 是太阳微系统公司的商标。所有其他产品名称,则是其各自公司的商标。