ECMAScriptって、策定ステップとかどうなってるの?みたいな疑問からお勉強してみた
ECMAScriptとは
ECMAScript(エクマスクリプト)は、Ecma Internationalもとで標準化されたJavaScriptの規格。
もともとJavaScriptはNetscape社のブラウザで使われる言語として誕生したので、他のブラウザは想定されておらず各ブラウザはJavaScriptを独自に拡張していた。
そのため、JavaScriptはまったく標準化がされていない言語だったが、
これではいろいろ問題があるとして、Netscape社は国際標準化団体のECMAに依頼してJavaScriptのコア部分を標準化した。
これがECMAScriptと呼ばれるものになる。
Ecmaとは
情報通信システム分野における国際的な標準団体Ecma Internationalの事。
欧州電子計算機工業会(European Computer Manufacturers Association)の略語「ECMA」と呼ばれていたが1994年に「ECMA」に名称が変わったので大文字にせず「Ecma International」と表記されるようになった
JavaScript以外にも色んな分野が話し合われている。
ECMA-262
ECMAScriptの事
「262」はEcma Internationalでの管理番号
TC39とは
TCは「Technical Committee」の事。
「TC39」はECMAScriptを策定してる専門委員会のこと。
Ecmaは色々な仕様を策定しているので、その中でECMAScriptを策定してるグループの名前が「TC39」
ちなみに同じくEcma標準化されてるDartは「TC52」
バージョンについて
1997年から2011年までは、1 - 5.1(4は破棄された)まで通し番号で管理されていたが、2015年に公開されたバージョンから西暦を名称に含めることになった。
2023年5月現在の最新は「ECMAScript® 2022」
最新の草案は「ECMAScript® 2024」
https://tc39.es/ecma262/
策定ステップについて
ECMAScriptは各機能を5つの段階に分けて策定される
ECMAScript 2016からは機能ごとに仕様のプロポーザル(提案)を出し策定
それぞれのプロポーザルにはStageと呼ばれる5段階のラベルがある
1年ごとに新しいECMAScript仕様がリリースされる
Stage 4となったプロポーザルは次期ECMAScriptに取り込まれ、正式にECMAScriptの仕様となる
5策定ステップ 段階のStage
- 0 Strawman - アイデア
- 1 Proposal - 提案
- 2 Draft - ドラフト
- 3 Candidate- 仕様書と同じ形式
- 4 Finished - 策定完了
次期ECMAScriptは1年ごとに出るので、その時までにStage 4となったものが次期ECMAScriptに入る。
TC39のプロセスステップ
https://tc39.es/process-document/
ECMAScriptの「0 Strawman」からのTC39でのプロセスは以下のように進む
TC39のGitHubで進捗など見ることができる
https://github.com/tc39
Stage 0 Strawman
アイディア出し。
Stage 1 Proposal
プロポーザルの目的や解決方法を示す
Polyfillやデモ等を用いて解説する
Stage 2: Draft
いわゆるドラフト
ECMAScript標準と同じルールでAPIや構文、セマンティックについて説明していなければならない
Stage 3: Candidate
仕様は完成した状態
実装や外部のフィードバックを求める状態
レビュアはその仕様策定者以外ならだれでもなれるが専門的な知識を持っている必要がある
ECMAScriptのエディタがチェックする必要があり
Stage 4: Finished
2つの実装(not Polyfill)が必要
ECMAScriptへ取り込まれる準備が完了したことを示す状態
ECMAScriptのエディタがチェックする必要があり