[译]Javascript:Harmony(ECMAScript规范)制定流程
原文:http://tc39wiki.calculist.org/about/harmony/
"Harmony(和谐)"是TC39在执行ECMAScript规范标准化流程时使用的名称.流程虽然很简单,但在规范的设计和建立共识方面起到了显著的效果.
提案的不同阶段
提案在经过几个阶段后才能成为最终规范的一部分.
草图(Sketch)
提案以特性草图(Feature sketches)的形式开始(委员会成员通常称之为"稻草人提案(strawman proposals)"或者"稻草人(strawmen)").特性草图可以在任何时候添加.它们往往源自于开发者社区的建议.
译者注:所有提案都放在ESwiki上,比如ES6特性"直接代理(direct proxy)"的稻草人提案在http://wiki.ecmascript.org/doku.php?id=strawman:direct_proxies
提案(Proposal)
当TC39认为某个特性很重要并且有期望进入下一版本的正式规范中的时候,这个特性的稻草人提案就会被提升为正式提案状态(通常称这一变化为"达成了Harmony(achieving Harmony)"或者拥有了"Harmony状态(Harmony status)").进入提案状态并不意味着这个特性一定会被加入到最后的规范中,只是可能性较大.
TC39为提案的接受工作设定了一个最后截止日期.ES6提案的接受截止日期是2011年5月,也就是说,ES6不会再有新的主要提案被添加了.
译者注:比如直接代理的正式提案在http://wiki.ecmascript.org/doku.php?id=harmony:direct_proxies
规范(Standard)
最后,一个提案会成为正式的ECMAScript特性,被添加在正式的ECMAScript规范中.TC39还有个要求是:在某个特性成为最终规范之前,必须至少有两个主要的Javascript擎实现并试验了这个特性.
译者注:规范在没有正式发布之前,所形成的规范文档称之为规范草案(standard draft),或者草案.比如ES6的规范草案在http://people.mozilla.org/~jorendorff/es6-draft.html
领军者(Champions)
因为TC39有众多的组成成员,所以整个委员会共同实现特性的设计工作是不合实际的.因此我们这么来做,每个提案由一小组的"领军者(champions,也就是带头人)"来负责(通常只有1到2名委员会成员组成).领军者们独立的进行提案的设计工作,最后在TC39面对面的会议上进行汇报以及以书面形式发布在es-discuss上.
译者注:比如ES6提案"箭头函数(Arrow Function)"的带头人就是Brendan Eich一人.