既に一部で伝えられているように、先週 ECMA TC39 から次期 ECMAScript 標準に関するアナウンスがありました。
Flash Player 9 の発表以来、Adobe は ActionScript を ECMAScript 標準第 4 版として提案された ECMA-262 Edition 4 (ES4) に完全準拠させるという目標を公にしてきました。この ES4 は、Adobe, Mozilla, Opera, それから Google を主要なサポーターとして標準化が進められていましたが、一年ほど前に Microsoft と Yahoo! 主導で ECMA-262 Edition 3.1 (ES3.1) のワーキンググループが開始されて以来、2 つの異なる ES3 後継仕様案が並存する状況が続いていました。
先週の発表は、ES4 に関する標準化作業を中止し ES3.1 に集中することが決定されたというもので ECMAScript Harmony プロジェクトと名付けられています。ES3.1 は ES4 のサブセットではありません。つまり AS3.0 は ES3.1 非互換になるということです。例えば ES3.1 の仕様には namespace や package は含まれません。これらの機能は ES3.1 以降の拡張に際しても含まれないことがはっきりと述べられています。また、型指定や継承といった機能の採用については (そもそも class の定義自体が異なるのですが) 今後の議論を待つことになります。JS1.7 や JS1.8 として Firefox 2, 3 に追加された機能も Harmony 路線では見直されるようです。
この件に関して Adobe からの正式なコメントはまだありませんが、Adobe のオープンソースチームのディレクターである Dave がコメントを blog に公開しています。(Standards, ECMAScript and representing the past)
要約すると、
- ECMAScript 標準化委員会参加企業の利害の不一致により仕様の一本化が難しい状況になっていた
- Web に共通の言語を持つことが必要という観点から Harmony に賛同する
- その上で、Web の革新を更に進めるため ActionScript の拡張は続ける
- オープンソースコミュニティ活動の継続・発展も標準化委員会との活動と同様に重要
ということで、ECMAScript の標準化には引き続き参加する一方 ES3.1 のレベルまで AS3 の機能を戻すということは考えられていないようです。(blog 記事に対するコメントには、これを機会に ECMAScript 準拠をやめちゃえというものもいくつか見られました - 例えば private コンストラクタや関数オーバーロード機能の実装など...) 既に多くのユーザに使用されている言語を、その可能性を制限する方向で変更するのは Adobe の理念に反すると Dave としては思っている様。
いましばらく、正式なコメントの発表はお待ちください。