WebAssemblyのガベージコレクションが正式機能に、最新版のChrome 119で。Firefoxも今月リリースのFirefox 120で正式機能になる見通し
今回は「WebAssemblyのガベージコレクションが正式機能に、最新版のChrome 119で。Firefoxも今月リリースのFirefox 120で正式機能になる見通し」についてご紹介します。
関連ワード (正式機能、訳注、開発等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
2023年2月にリリースされたChrome 111から試験的実装となっていたChromeにおけるWebAssemblyのガベージコレクション機能(以下、WasmGC)が、10月31日にリリースされたChrome 119で正式機能になったことが明らかになりました。
Firefoxでも今月(2023年11月)21日リリース予定のFirefox 120においてWasmGCが正式機能になる見通しです。
WasmGCを利用することで、ガベージコレクション機能が言語のランタイムに含まれているJavaなどプログラミング言語をWebAssemblyで実装することが容易になるため、今後WebAssembly上でさまざまなプログラミング言語の実装の登場が期待されます。
下記は「WebAssembly Garbage Collection (WasmGC) now enabled by default in Chrome」からの引用です。
In simplified terms, this means that with WasmGC, porting a programming language to Wasm means the programming language’s garbage collector no longer needs to be part of the port, but instead the existing garbage collector can be used.
簡単に言えば、WasmGCを使うことで、プログラミング言語をWasmに移植する際にプログラミング言語のガベージコレクタを移植する必要がなくなり、代わりに既存の(訳注:Wasmが備える)ガベージコレクタを使えるようになるということです。
KotlinやDart/FlutterはすでにWasmGCサポートを表明
すでにJetBrainsはWasmGCを利用してKotlinで書かれたコードをWebAssemblyバイナリとするコンパイル機能を備えた「Kotlin/Wasm」をプレビュー公開しています。
参考:KotlinからWebAssemblyバイナリを生成するコンパイラ搭載、「Kotlin/Wasm」が試験的プレビュー公開。Kotlin 1.8.20ベータ版で
また、Googleが開発するDart言語とそのフレームワークであるFlutterも、WasmGCを利用してWebAssemblyをサポートすることを明らかにしています。
参考:Flutterが進化する方向とは? WebAssemblyサポート、コンポーネントとしてWebアプリに組み込み可能に。Flutter Forward 2023
Chrome 119でWasmGCが正式機能になると言うことは、当然のことならChromeと同じChromiumを基に開発されているMicrosoft EdgeでもWasmGCが正式機能になります。
WasmGCのサポートは、ChromeやMicrosoft Edge、FirefoxのようなWebブラウザだけでなく、ChromeのJavaScriptエンジンであるV8を用いているNode.jsやDenoでも、技術的にはそれほど遠くない将来にサポートが可能になるはずです。
サーバサイドでもWasmGCを用いたさまざまなプログラミング言語の実装を期待したいところです。