Mozillaは、Webブラウザ上で高速に実行できるWebAssemblyに対応したアプリケーションを開発するためのオンラインIDE「WebAssembly Studio」を発表しました。

オンラインIDEのサービスとして「WebAssembly.Studio」でベータ公開され利用できるほか、コードがGitHubでオープンソースとして公開されており、サーバにインストールして実行することも可能です。

WebAssemblyは、Webブラウザ上でネイティブコードに近い実行速度で高速に実行できるバイナリフォーマットです。

マイクロソフト、Google、Mozilla、Appleなどの主要なWebブラウザベンダがW3CのWebAssembly Community Groupなどを通じて共同で開発に取り組んでおり、すでに主要ブラウザで実行環境が整っています。

今回発表された「WebAssembly Studio」は、このWebAssembly対応の開発環境をオンラインIDEとして実現するものです。

C/Rust/AssemblyScriptなどに対応

WebAssembly Studioを起動すると、まずどの言語で開発するのかを選択する画面が現れます。選択できるのはC、Rust、AssemblyScript、そしてWatです。

AssemblyScriptとは、TypeScriptをWebAssemblyへ事前コンパイル可能にするため、TypeScriptにいくつかの制約などを加えたTypeScriptのサブセットです（参考：What exactly is AssemblyScript?）。

WatとはWebAssembly textのことで、つまりWebAssemblyのアセンブラ言語です（おそらくこれを多用するプログラマはそれほどいないと思われます……）。

バイナリエディタでWebAssemblyのバイナリを直接見ることもできます（右側に表示されているのが逆アセンブルされたWebAssembly text）。

下記はサンプルで用意されているC言語によるHello WorldのコードをWebAssembly Studioで読み込んだところです。左側の「src」の下にはmain.c、main.html、main.jsの3つのファイルが用意されています。

画面上部のメニュー右にはビルドと実行ボタンも用意されており、この画面からすぐに動作を試すことが可能。実行するとHTMLファイルが呼び出され、そこでJavaScriptが実行され、JavaScriptがビルドされたWebAssemblyファイルを呼び出して実行することになります。

WebAssemblyアプリケーションの開発が促進されるか

前述の通り、WebブラウザにおいてはすでにWebAssemblyの実行環境が整ったと言っていい状況ですが、開発環境の方はこれまであまり動きがありませんでした。

MozillaがこのWebAssembly Studioを発表したことで、WebAssemblyアプリケーションの開発に弾みがつくことが期待されます。

また、WebAssembly Studioが現時点で開発言語としてJavaScriptをサポートしていない点も興味深いところです。Webアプリケーションの開発ではJavaScriptを多用するのがこれまでの常識でしたが、WebAssemblyではそれがどう変わっていくのでしょうか。

Mozillaは今後のWebAssembly Studioの開発計画として、現在バックエンドとしてLLVMを用いているところをEmscriptenやCargoなどを取り入れることで、より充実したC/C＋＋/Rustの実行環境を実現すること、さらに機能やUX、実行速度の最適化などを進めていくとしています。

関連記事