Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JavaScript 语言提议的几个状态 #26

Open
XXHolic opened this issue Nov 24, 2018 · 0 comments
Open

JavaScript 语言提议的几个状态 #26

XXHolic opened this issue Nov 24, 2018 · 0 comments

Comments

@XXHolic
Copy link
Owner

XXHolic commented Nov 24, 2018

目录

想法

标准是在不断发展,赋予新的能力,在另一方面同样反应着时代的需求。关注标准的动态有助于更好的使用一种语言。在 Object.observe 中简单探索了一个提议的经历。想着如何去关注这些做一个简单的总结。

到哪里去看提议

线索一

说到提议可能并不怎么熟悉,实际工作中更多的是去接触和遵循标准。在学习前端的时候,从各种教程和书籍中,经常会看到一个词——W3C。用 Google 搜索,很精确出现W3C的官网:https://www.w3.org 。主页如下:

26-w3c-website

左侧是主要分类的菜单,顶部有视图模式、语言、搜索和主要的菜单。中间则是各种标准的动态、任务和事件展示,右侧是对 W3C 的介绍、博客和招聘。如果对标准比较关注的话,就会注意到顶部的大写菜单 “STANDARDS”,点击进去之后,会发现一些类型的标准。

26-w3c-standards

对于前端来说,经常接触到的便是 Web Design and Applications,进入之后页面如下:

26-web-design-and-applications

可以看到熟悉的 HTML、CSS、DOM、JavaScript 等字眼,下面还有一些相关信息动态。目的是找 JavaScript 相关信息,点击 “JavaScript Web APIs” 进入页面:

26-javascript-api

可以看到中间一大段的文字介绍,阅读后可以发现:

  • 这里相关的标准,是对于广泛的脚本来说,并不是只针对 JavaScript 这一种脚本语言。
  • JavaScript 语言的标准由 ECMA 制定。

继续探索,右侧的“CURRENT STATUS”列出了相关的菜单。点击菜单 “Javascript APIs”,进入后就发现这里有需要的相关信息。信息主要分为3大块:Completed Work(完成的工作)、Drafts(草案)、Obsolete Specifications(废弃的规范),其对应的具体内容有:

  • Completed Work:Standards(标准)、Group Notes(团队笔记)
  • Drafts:Proposed Recommendations(推荐的提议)、Candidate Recommendations(推荐候选)、Other Working Drafts(其它工作草案)
  • Obsolete Specifications:Retired(过时或者废弃规范)

这里面规范的制定过程跟 JavaScript 的 TC39 Process 不太一样。具体的可以看 W3C Recommendation Track。至此就可以查看相关提议的动态,虽然不是 JavaScript 语言相关,但也是很重要的信息。

线索二

接下来就是去找 JavaScript 语言相关的动态,在线索一中发现了 ECMA 的官网,很多教程中也会提到 ECMA。直接搜索也是可以找到的。顺着这个线索找到官网。进入后如下图。

26-ecma

首页的文字说明,大致了介绍了这个组织是做什么,主要负责制定那些规范,由什么组成。可以发现 JavaScript 的标准也列在了那里。点击进入后,页面里面介绍了这个项目主要干什么,负责这个项目的是 TC39-Royalty Free Task Group,中文就是第39技术委员会-免版税任务组,而且是可点击的状态,进入后就是这个任务组的相关介绍页面。

26-tc39

在介绍中,可以发现不少的信息,比如参与的成员有哪些,负责的范围有哪些。在 Programme of work 的第一条就说明负责维护 JavaScript 编程语言的规范,还提供了访问的链接 ECMA-262

26-ecma-262

页面提供了不少的链接,看内容描述,可以得知相关进度会在 github 上展示,并提供了链接:https://github.com/tc39/ecma262#ecmascript。

26-ecma-github

进入后发现各种状态的提议都有列出,相关的进度也会在这里进行更新。至此相关的提议状态也找到了。

提议的几个状态

所有的提议是要经过审核,有的可能被取消、拒绝等等,但在 github 上并没有用明显的方式标记出来,例如用 labels 的方式,只是分了阶段。在 Inactive Proposals 里面,有句描述:

Inactive proposals are proposals that at one point were presented to the committee but were subsequently abandoned, withdrawn, or rejected.

从这句话中,可以理解为提议的状态可能有:Abandoned(放弃)、Withdrawn(撤销)、Rejected(拒绝)。再看下面列出的表格,发现里面有的提议标出了不采用的理由。但状态比描述中多了 2 种:Postponed(推迟)、Inactive(未采用)。还有一种情况是 Demoted(降级),在 proposal-static-class-features 中的描述如下:

26-demoted

可以发现,虽然没有明确的提出,从理解上也算是一种状态。最后将状态简单列举一下:

  • Abandoned
  • Withdrawn
  • Rejected
  • Postponed
  • Inactive
  • Demoted

会议记录

如果想要知道更加详细的信息,例如为什么会拒绝这个提议,目前的提议具体进展怎么样,可以去看相关的讨论和会议记录。有个专门记录这些的地方——ECMAScript Discussion Archives。规矩都是人定的,有讨论当然就会出现分歧。有些时候看会议记录,会发现很“人性化”的一面,例如下面的记录:

26-interest

参考资料

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant