SafariもWebAssemblyのガベージコレクション機能の実装に着手。Technology Preview 167で明らかに
Apple製品の標準的なWebブラウザとして使われているSafariで、WebAssemblyのガベージコレクション機能(WebAssembly GC)の実装に着手されたことが明らかになりました。
Safari Technology Preview 167 is now available with updates to Web Inspector, CSS, JavaScript, WebAssembly, Media, Popover, Rendering, Web API, and more.https://t.co/KNqMNv9amo pic.twitter.com/WlknQwNM2y
— WebKit (@webkit) April 5, 2023
4月5日付で公開されたSafari Technology Preview 167のリリースノートにおいて、以下の項目が示されています。
Implemented initial minimal JS API for Wasm GC behind flag (261544@main)
これにより、WebAssembly GCのための最小限のJavaScript APIの実装に着手したことが分かります。
今後どのようなペースで実装が進むのかは不明ですが、これで少なくともChrome、Firefox、Safariの代表的なモダンブラウザでのWebAssembly GCの実装が開始されたことになるわけです。
- WebAssemblyにガベージコレクション機能が登場、Chrome 111で試験的実装に。Dartなど高級言語のWebAssembly対応へ前進
- FirefoxもWebAssemblyのガベージコレクション機能を実装中であることが明らかに
WebAssembly GCで今後さまざまな言語がWebAssembly対応に
WebAssemblyのガベージコレクション機能はまだ仕様策定段階ですが、実装されればJavaやPython、Rubyなど、プログラミング言語のランタイムに自動的にメモリ管理とガベージコレクションを行う仕組みを備えている言語をWebAssembly化することが容易になります。
現時点ではWebAssemblyにガベージコレクションがないため、WebAssemblyバイナリを生成できるプログラミング言語は、基本的にはプログラマが完全にメモリを管理するC++や、シンプルな仕組みで自動的にメモリ管理が行われるRustのようなプログラミング言語が中心となっています。
すでにJava言語のKotlinと、Googleが中心になって開発を進めているDart言語およびそのフレームワークではWebAssembly GCが実装されることを前提に、WebAssemblyへの対応を表明しています。
KotlinはWebAssemblyバイナリの生成機能を備えた「Kotlin/Wasm」でWebAssembly対応を表明。
DartはWebアプリケーションフレームワークである「Flutter for Web」でFlutterからWebAssemblyへのコンパイルをサポートすることを表明しています。
WebAssembly GCの標準化と実装が進むことで、これら以外にもJavaなど多くの言語のWebAssembly対応が期待され、今後さまざまな環境で実行できるWebAssemblyの存在感はさらに高まるように見えます。
あわせて読みたい
Webブラウザ上でGPUプログラミングを可能にする「WebGPU」、Chrome 113で正式版に。3Dレンダリングや機械学習など高速処理
≪前の記事
自然言語でアプリ開発が可能になる「Copilot in Power Apps」発表/「GitHub Copilot X」はGPT-4ベースで大幅強化ほか、2023年3月の人気記事