World Wide Consortium(W3C)は先頃、WebAssembly Core Specificationが公式なWeb標準になったと発表した。HTML、CSS、JavaScriptに続いて、WebAssemblyが正式に、ブラウザ上でネイティブに動作する第4の言語になったということだ。
WebAssembly Core Specificationでは、WebAssemblyを、効率的な実行とコンパクトな表現のために設計された、安全で、可搬性のある、低レベルなコードフォーマットであると説明している。WebAssemblyはハードウェア、言語、プラットフォームからの独立性を追求しており、すべての現代的なアーキテクチャ、デスクトップやモバイルデバイス、組み込みシステムをターゲットにすることができる。WebAssemblyで記述されたプログラムは、ブラウザに組み込むことも、スタンドアロンのVMとして動作することも、他の環境へ統合することも可能だ。
多様なユースケースに対応するため、WebAssembly仕様は、複数のドキュメントに分割された層構成になっている。コアとなる仕様は、JavaScript APIを明確に定義するWebAssembly JS Interfaceと、より広範なWebプラットフォームとのインテグレーションを重視したWebAssembly Web APIに関するものだ。
WebAssemblyのコアとなるのは、仮想的なインストラクションセット・アーキテクチャ(ISA)である。そのためコア仕様ではWebAssemblyのコアISA層を取り上げて、インストラクションセット、バイナリエンコーディング、バリデーション、実行に関するセマンティクス、およびテキスト表現を定義している。
W3CプロジェクトリーダのPhilippe Le Hégaret氏は、WebAssemblyのポテンシャルを次のように説明する。
WebAssemblyの登場により、Open Web Platformテクノロジを採用することで到達可能なアプリケーションの範囲が大きく広がりました。マシンラーニングやAIがますます身近なものになる現代においては、ハイパフォーマンスなアプリケーションをWeb上で、ユーザの安全性について妥協することなく実現可能であることが極めて重要です。
実際にWebAssemblyが使用されているのは、Google Earthなどのユーティリティソフトウェア、Doom3のような視覚的ゲーム、ゲームエディタなど大規模なデスクトップアプリケーション、Figmaなどのデザインツールといった分野だ。
AgoraのシニアアーキテクトであるChun Gao氏は、このテクノロジを支持する。
WebAssemblyによって、高いコンピューティング能力をWeb上で提供することが可能になります。Webアプリの適用シナリオを大幅に広がり、リアルタイムビデオ/オーディオ処理やハードコアゲーム、AIといった計算中心のアプリをWebテクノロジで開発するチャンスが急速に高まるのです。RTCサービス・プロバイダであるAgoraは、より優れたリアルタイムパフォーマンスを備えたサービス提供に努めています。WebAssemblyベースのプロダクトのリリースにより、ビデオストリーム処理のパフォーマンスと互換性が拡大します。ハイパフォーマンスなWebアプリを開発するWeb開発者にとって、WebAssemblyは最も重要な選択肢であると信じています。
今回の1.0仕様のリリースに続いて、スレッディングや固定長SIMD、リファレンスタイプ、末尾呼び出し(tail calls)、ECMAスクリプトモジュール統合といった機能を含んだ次期バージョンへの作業が開始されている。
World Wide Web Consortium(W3C)のミッションは、オープンで、自由にアクセスできて、世界中のすべての人々による相互利用の可能なWebを維持するため、技術標準とガイドラインの作成を通じて、そのすべての可能性を引き出すことにある。W3Cは米国のMITコンピュータ科学・人工知能研究所(MIT CSAIL)、フランスに本拠を持つ欧州情報処理数学研究コンソーシアム (ERCIM)、日本の慶應義塾大学、中国の北京航空航天大学が共同で運営している。