ECMAScript

JavaScript 2.0の動きに大きな変化があった。ECMAScript 4をベースにしたプログラミングを練習してきたのであればそれは改めなければならないようだ。JavaScript 2.0はECMAScript 4ではなくECMAScript 3.1をベースとしたものになりそうだ。MozillaでJavaScript Evangelistを務めるJohn Resig氏のブログにこのあたりの事情がまとめられている。

次期ECMAScriptの規約策定にはAdobe、Mozilla、Opera、Googleなどが主に参加していたECMAScript 4と、MicrosoftやYahoo!が主に参加しているECMAScript 3.1の2つの流れがある。ECMAScript 4は多くの機能を取り込んで大幅に言語を変更するもので、ECMAScript 3.1はECMAScript 3に対して機能追加やバグ修正を実施したものだ。

今回、ECMAScript 4とECMAScript 3.1の両陣営は現状のように成果物が分離したままではどちらも成功できないという結論にいたり、両取り組みを統合し、ひとつのプロジェクトとしてまとまることで合意した。プロジェクト名は「ECMAScript Harmony」。ECMAScript Harmonyでは新しく次の目標を掲げている。

  • ECMAScript 3.1をベースに作業を進める。2009年の早い時期までに2つの相互運用可能な実装を目指す
  • ECMAScript 4よりも穏当な形での構文拡張を含める
  • ECMAScript 4で導入された名前空間やパッケージなど新機能のいくつかはWebにそぐわないと見なし取り込まない
  • ECMAScript 4でのその他の機能については今後の議論で取り込むかどうかを決定していく

結果的にECMAScript 3.1をベースにしつつ、ECMAScript 4の機能のいくつかをECMAScript 3.1に追加する形になった。ECMAScript 3.1をベースとすることには賛否両論あるだろうが、Microsoft、Yahoo!、Adobe、Mozilla、Opera、Googleのビッグプレーヤがひとつのプロジェクトに取り組むことになったのは注目に値する。すでにECMAScript 4採用に向けて取り組んできたプロジェクトでは実装を変更することになるだろうが、今後の取り組みに注目していきたい。