要約

  • 2017年2月28日の公開メールで、Chrome、Edge、Firefox、WebKitの関係者は初期のバイナリー形式とJavaScript APIについて合意したと述べた。実装と実利用なしにはこれ以上設計を進めにくいとして、既定での出荷と後方互換性を掲げた。
  • Mozillaの同年11月の発表は4つの主要ブラウザーでの出荷を確認する。W3Cの刊行履歴ではCoreの最初の公開草案が2018年2月15日、勧告が2019年12月5日だ。

最初の承認は実装側から来た

2月のメールは完成したW3C勧告の報告ではない。ブラウザーの4陣営が、初期形式を使い始めるための設計は固まったと判断した記録だ。これから必要なのは紙上の案を増やすことより、実際の実装と十分な利用だという。Browser Previewは終わり、既定で有効にした製品を出せる。誰が規格に印を押したかより、異なる実行環境が同じ形式を受け入れるかが、その時点の利用者には切実だった。

この判断には将来の制約が伴った。後から追加する機能は初期版との互換性を守る。サイトがそのバイナリー形式でモジュールを配り始めれば、軽率な変更は既存のアプリケーションを壊す。コミュニティーグループの合意は、配布先のブラウザーに実装責任を持ち込む約束だった。

W3Cが保存するメールには、バイナリー形式だけでなくJavaScript APIと参照インタープリターも登場する。正式なW3C草案がまだないことを、設計資料がないことと混同できない。同じメールは次にW3C作業部会を立ち上げて初期版の仕様を作ると記した。実装可能なMVPと、正式な勧告まで進んだ文書は別の成果物である。

4製品の出荷が日程表を追い越した

Mozillaの2017年11月の記録によれば、SafariとEdgeが先行するFirefoxとChromeに加わった。4つの製品が対応版を出したという事実であり、すべての端末が更新済みという普及率の数字ではない。それでも開発者は、同じ初期形式を複数の実在するブラウザーに送って試せるようになった。

2017年のW3C作業部会憲章は同年の第4四半期に最初の公開草案、2018年第2四半期に初版の勧告を見込んだ。実際の記録は2018年2月の草案、2019年7月の勧告候補、同年12月の勧告を示す。予定は遅れた。ただし文書は遅れの原因を一つに特定していない。確かなのは、出荷と正式出版が異なる時計で進んだことだ。

勧告は別の仕事を果たした

W3Cの2019年12月の発表は三つの勧告をまとめて示した。Coreは仮想マシンと形式、JavaScript Interfaceは関数呼び出しと値の受け渡し、Web APIはウェブ上で資源を取得して実行する手順を扱う。バイナリーを読めることだけでは、ページに読み込み、ホストとやり取りし、別のブラウザーでも同じように動かす契約は完成しない。

憲章にはテスト群、実装報告、公開議論、他グループによる審査も書かれていた。先に動く製品があったからといって、その作業は飾りにならない。逆に2019年の勧告が2017年の出荷を生んだわけでもない。実装者が最初の互換対象を固定し、利用者が触れられる状態にし、標準化の手続きが境界を検証可能な文書にした。その順序がWebAssemblyの歴史である。