Web 标准制定流程

简介

作为Web开发者当然需要紧跟Web规范的变化。最好的方式当然就是参与标准的制定过程,你不一定需要实际提出建议,反馈新特性的实际使用情况也是一种参与。所以我把Web相关标准的制定流程和参与方式做一个总结。

JavaScript

相关术语

ECMAScript:JavaScript是ECMAScript的一种实现,除了JavaScript还有ActionScript等实现
ECMA-262:ECMA-262规范,就是ECMAScript语言的官方标准
ECMA TC39:ECMA第39号技术委员会,负责制定ECMAScript规范。TC39的成员有Microsoft、Google、Apple等浏览器厂商、此外还有jQuery、Intel等组织或公司,详细人员可以在这里查看

标准制定流程

ECMAScript每年发布一次新标准,每年新增的特性都会尽可能少(因为必须保证一年内能够完成)。常青浏览器配合标准每周发布一次新版的加速JavaScript的进化。常青浏览器为

  • Microsoft Edge

  • Mozilla Firefox

  • Google Chrome

  • Opera

  • Apple Safari

一个新特性从提出到正式成为规范的一部分需要经过5个阶段

Stage 0:Strawman

说明:该阶段可以以任何方式提交推动ECMAScript发展的想法
进入条件:文档必须通过TC39会议审议,通过后将会放到Stage 0 Proposals页面
参与方式:任何人都可以在 https://github.com/tc39/ecma262提交pull request来提交新提议。注册成为ECMA贡献者以后能够以任何形式提交提议

Stage 1:Proposal

说明:对提议的正式建议
进入条件

  • 提供Polyfills和demos

  • 指定一名TC39成员来负责该提议。

  • 大概的问题的描述以及解决方案

  • 使用方法的用例

  • 高层级API

  • 关于关键算法、抽象和语法的讨论

  • 确定潜在问题,比如实现难度等等

Stage 2:draft

说明:阶段二会是标准的第一个版本。此时将会出现标准中的最终特性是差不多的。
进入条件

  • 前述的所有条件

  • 提供两种实现方式,有一种可以是babel编译实现

  • 初版的标准,有更规范化有关特性的语法和语义的说明(使用ECMAScript标准的正式语言)。

Stage 3:candidate

说明:此时提议已经接近完成,这个阶段需要得到实现方的反馈,以及用户使用的反馈。
进入条件

  • 提供两种实现(可以是实验性实现)与规范兼容

  • 前述的所有条件。

  • 完整的标准。

  • 由ECMAScript标准的编辑以及TC39指派的审稿人审查通过并签字。

Stage 4:finished

说明:提议将被包括到下一个版本的标准当中
进入条件

  • 使用Test 262编写的单元测试来验证语言的特性

  • 两个通过测试并且互相兼容的实现

  • 重要的领域内实践经验。 需要订正:Significant in-the-field experience with shipping implementations, such as that provided by two independent VMs

  • 将完整的规范文本提交pull request到tc39/ecma262、ECMAScript标准的编辑必须要签署上述pull request

其他

当前标准制定状态

TC39会维护一个列表,包含了当前正在制定中的新特性,可以在这里查看

标准的修订及日程

TC39委员会每年会在7月份向ECMA会议(ECMA General Assembly)提交标准来获得承认。一份新标准发布的大概时间线如下

  • 2月1日:候选草案(Candidate Draft)发布

  • 2月-3月:60天免版税时间的退出时间。 需要订正:60 day royalty-free opt-out period

  • 3月TC39会议:第四阶段的提议被采纳,语法被确定并核准,新的标准将会重新从主干分支中分离,从这里开始只能作文字性的改动

  • 4月到6月:ECMA CC 和ECMA会议审核

  • 7月:ECMA会议批准新的标准

总结

JavaScript前所未有的繁荣。ECMAScript标准的制定过程也完全在Github上公开,使得公众能够参与进来。你还可以通过以下方式关注标准的制定过程

参考文章

The TC39 Process
ES7新特性及ECMAScript标准的制定流程

    原文作者:codert
    原文地址: https://segmentfault.com/a/1190000007124937
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞