JSConf JP

Stage 3でも仕様は変わる。アプリケーション開発者のためのTC39プロセスの読み方

LTトラックCJapanese

Stage 3 になったからと先取りして採用した ECMAScript の新機能が、その後の変更で書き換えを迫られることがあります。 本セッションでは、Stage 3 到達後に覆ったプロポーザルを TC39 の会議録や GitHub 上の議論という一次情報で読み解き、アプリケーション開発者が新機能とどうつき合うかをお話しします。

例えば Import assertions は 2020 年に Stage 3 へ到達し各ブラウザや TypeScript が実装しましたが、2023 年に Stage 2 へ差し戻され、Import attributes として作り直されました。採用していたプロジェクトには構文の書き換えが必要になりました。

一方で TC39 において Stage 3 は「実装経験を得て、Web 互換性や統合の問題を発見すること」とされており、これらの変更は正しくプロセスが働いていたことがわかります。

提案が覆るパターン、Stage 2.7 新設によるプロセスの進化、そしてアプリケーション開発者として採用する判断に必要な軸について触れます。

新しい言語機能をプロダクトへ導入する際の判断のヒントになれば幸いです。TC39 の標準化プロセスがどう動いているのかに興味がある方にも参考になる内容です。