第5章 標準化:ECMAScript
目次
書籍を購入
(広告です。ブロックしないでください。)

第5章 標準化:ECMAScript

JavaScriptが登場した後、マイクロソフトはInternet Explorer 3.0(1996年8月)で、異なる名前のJScriptとして同じ言語を実装しました。マイクロソフトを牽制する意味もあり、ネットスケープはJavaScriptを標準化することを決定し、標準化団体であるEcma Internationalに標準を主催するように依頼しました。ECMA-262と呼ばれる仕様の作業は1996年11月に開始されました。Sun(現在はOracle)がJavaScriptという用語の商標を持っていたため、標準化される言語の正式名称にすることはできませんでした。そこで、ECMAScriptが、JavaScriptEcmaから派生して選ばれました。ただし、その名前は言語のバージョン(仕様を参照する場合)を参照するためにのみ使用されます。誰もが今でもその言語をJavaScriptと呼んでいます。

ECMA-262は、EcmaのTechnical Committee 39(TC39)によって管理および進化しています。そのメンバーは、マイクロソフト、Mozilla、Googleなどの企業であり、従業員を委員会活動に参加させています。例としては、Brendan Eich、Allen Wirfs-Brock(ECMA-262の編集者)、David Hermanなどがいます。ECMAScriptの設計を進めるために、TC39はオープンチャネル(メーリングリストes-discussなど)で議論を行い、定期的な会議を開催しています。会議にはTC39のメンバーと招待された専門家が出席します。2013年初頭には、出席者数は15人から25人でした。

以下は、ECMAScriptのバージョン(またはECMA-262のエディション)とその主な機能のリストです。

ECMAScript 1(1997年6月)
最初の版
ECMAScript 2(1998年8月)
ECMA-262をISO/IEC 16262規格に合わせるための編集上の変更
ECMAScript 3(1999年12月)
do-while、正規表現、新しい文字列メソッド(concatmatchreplaceslice、正規表現を使用したsplitなど)、例外処理など
ECMAScript 4(2008年7月破棄)

ECMAScript 4は、MLで記述されたプロトタイプを伴い、JavaScriptの次のバージョンとして開発されました。ただし、TC39はその機能セットに合意できませんでした。行き詰まりを防ぐため、委員会は2008年7月末に会合し、4つのポイントに要約された合意に達しました。

  1. ECMAScript 3の増分アップデート(ECMAScript 5になったもの)を開発します。
  2. ECMAScript 4よりも少ないが、ECMAScript 3の増分アップデートよりもはるかに多くの機能を提供する、主要な新バージョンを開発します。新しいバージョンのコード名は、それが考案された会議の性質により、Harmonyです。HarmonyはECMAScript 6とECMAScript 7に分割されます。
  3. ECMAScript 4から削除される機能には、パッケージ、名前空間、早期バインディングが含まれていました。
  4. その他のアイデアは、TC39全体と合意して開発されることになりました。

このように、ECMAScript 4の開発者は、HarmonyをECMAScript 4よりも過激でないものにすることに同意し、残りのTC39は物事を前進させ続けることに同意しました。

ECMAScript 5(2009年12月)
厳格モード、ゲッターとセッター、新しい配列メソッド、JSONのサポートなどを追加(第25章を参照)
ECMAScript 5.1(2011年6月)
ECMA-262を国際規格ISO/IEC 16262:2011の第3版に合わせるための編集上の変更
ECMAScript 6
現在開発中で、2014年末までに批准されると推定されています。ほとんどのエンジンは、批准時に最も重要なECMAScript 6機能をサポートするでしょう。完全なサポートには時間がかかる場合があります。

合意に達し、標準を作成することは必ずしも容易ではありませんが、前述の当事者の協力的な努力のおかげで、JavaScriptは複数のベンダーによる実装が著しく互換性のある、真にオープンな言語です。その互換性は、非常に詳細でありながら具体的な仕様によって実現されています。たとえば、仕様では擬似コードがよく使用され、ECMAScript実装の準拠をチェックするテストスイートtest262によって補完されています。ECMAScriptがWorld Wide Web Consortium(W3C)によって管理されていないことは注目に値します。TC39とW3Cは、JavaScriptとHTML5の重複がある場合は常に協力しています。

次へ:6. JavaScriptの歴史的なマイルストーン