MozillaのWebAssemblyとは何か? : よりパワフルなWebアプリ
Mozilla Firefoxのエンジニア主導の下、様々なブラウザメーカーによって先週驚くべき改革がなされた。Webに次の革命をもたらすための共同プロジェクトは秘密裏に進められていた。
「MozillaがChromium、Edge、そしてWebKitのエンジニアたちと新しい標準規格、WebAssemblyを作り上げるために協力し始めたことが報告できてうれしい」と、プロジェクトリーダーの一人であるルーク・ワグナーはブログに投稿している。
WebAssembly(略して「wasm」)の影響が即座に現れるのはブラウジングが早くなることだが、これは数ある利点の中で最もエキサイティングではないポイントだろう。
この標準規格により、開発者はかつてデスクトップ向けソフトだけが可能だったCPUパワーを必要とするエクスペリエンスをオンラインで実現することが可能になる。
WebAssemblyにより開発が複雑になりすぎることもない。これは逆にWebアプリ作成のプロセスを効率化するものだ。
アプリ主体の今日においてこの事が意味することは多い。ほとんどの場合において、開発者およびユーザーはアップルのiOSやOSX、グーグルのAndroid、マイクロソフトのWindows等々のプラットフォームの選択を余儀なくされる。
WebAssemblyによってパワフルなWebアプリが可能になれば、プラットフォームにあわせてアプリを開発(もしくは移植)する事にうんざりしている開発者は、いつまでも続くポーティング作業からおさらばできる事になる。
今のところ最も大きなポイントは、この標準規格がサポートされているかどうか悩まなくてすむというところだ。そもそもがWebの標準規格についての競合他社同士のコラボレーションの結果であることから、この規格は主なブラウザでサポートされることになる。
Wasmを阻むもの
技術的な規格において、普及は小さな問題ではない。これにより生き延びる規格もあれば、忘れられていくものもある。
ワイヤレス充電を例に挙げると、3つのメジャーな団体がそれぞれ異なるアプローチを支持して譲らないという状況であり、メーカーはそのうちから一つを選ばなければならないという状況にある。3団体のうち2団体は統合したが、それでも諍いはまだ収まっていない。
方やWebAssemblyはChromium、WebKit、Edgeのエンジニアたちによるドリームチームであり、世界の代表的なブラウザであるChrome、Safari、IEとその後釜のEdge、そしてFirefoxでサポートされる事を目標とするものだ。
ライバル同士のこの様なコラボレーションは、この業界の競争が激しいものであることを考えると特異な事だ。しかしこの事は優秀な人たちが気持ちを一つにすれば何が達成できるのかという事も教えてくれる。
WebAssemblyはWebアプリにデスクトップクラスのパフォーマンスを、ゲームからビデオ編集、VRにいたるまで幅広く提供するためのものだ。ユーザーはこれらのアプリにダウンロードやインストール抜きでどこからでもアクセスできるようになる。
これはVRの様な技術を大きく進歩させる可能性もある。開発者は自分たちの成果物を公表する方法を多く持つことになり、ユーザーのエクスペリエンスもリッチなものになる(YouTubeが360度カメラのサポートを始めた理由の一つでもある)。
WebAssemblyが技術的基盤になることで開発者達にとって更に喜ばしい事もある。
JavaScriptを終わらせるものではない。むしろJavaScriptを進歩させるものだ
JavaScriptのエキスパート、アクセル・ロシュマイヤーは彼のブログでWebAssemblyを「JavaScriptエンジンという基盤の上に成り立つ新機能だ」と評した。
もう少し紐解いてみよう。今日、ほとんどのWebサイトでは1995年にかつてNetscape/Mozillaに在籍していたブレンダン・アイクによって作られた言語であるJavaScriptが使われている。これがなくては静的なWebページのコード量は際限なく増えてしまう。
JavaScriptによって我々は、簡単なゲームやアニメーションに、ブックマークアプレット、本格的なWebアプリといった動的要素を手にする事ができる。
JavaScriptは唯一の選択肢というわけではないが、最も人気があるものだ。WebAssemblyはさらによりパワフルに、より簡単になるよう改良を加える事が目的だ。そういう意味ではこの新しい規格の事をJavaScriptキラーと呼びたい向きもあるだろう。しかしそれは不正確だ。WebAssemblyはJavaScriptに取って代わるものではなく、JavaScriptの上に成り立つものであり、また埋められるべき大事な穴を埋めるために基盤の基礎となる部分にまで手を加えるものだ。
Mozillaとその仲間たちによって、開発者はWebにおけるバイナリーフォーマットを得ることになる。それにより更に低レベルまで触ることが出来るようになり、結果としてやりたいことは何でも出来るようになる。
技術的な詳細を掘り下げていけば、WebAssemblyの良さも分かってくることだろう。例えば、開発者はより容易なコードのコンパイル方法を得ることになる。コンパイラーによってソースコードは実行可能なプログラムに変換される。開発において重要な部分であり、wasmはJavaScrpitの処理を助けるためのコンパイル時のターゲットとして働く。ローシュマイヤーはWebAssemblyが最も役立つのはパフォーマンスを求められるコードおよび、他の言語(特にC/C++)をWebプラットフォームでコンパイルする場合だろうと述べている。
アイクは自身のブログでWebAssemblyに触れる傍ら、JavaScriptはまだまだ終わりを迎える事はなく、今後も発展を続けるという点についても述べている。
JavaScriptとwasmが共に進化することで、ここ数年のうちに主要なブラウザの全てが複数の言語に対応したJavaScriptエンジンをサポートすることになると考えている。JavaScriptは更に多くのAPIサポートやハードウェアのアフォーダンスを得るだろうが、あらゆる物をという訳には行かない。wasmに期待されるのはその欠けている部分をカバーすることだ。
WebAssemblyはまだまだ初期段階にあるが、その潜在能力はすでに高いものの様に思われる。これが抱いている構想が現実のものになってくれることを祈る。未だにWebは十分に早く効率的でパワフルなものになっていないからだ。
画像提供:Shutterstock
- 関連記事:
- Node.jsとIO.jsに和解の可能性
- Node.jsの模倣フレームワーク「IO.js」がバージョン1.0になり、本家を追い抜いた
- プライバシーモードでのブラウジングは思ってるほどセキュアではない
- JavaScriptがGitHubの主流であることが明らかに
- 古いプログラミング言語がなくならない理由
※本記事はReadWrite Japanからの転載です。転載元はこちらをご覧ください。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- WebAssemblyを取り巻く最新情報をMeetupから紹介(前半)
- WebAssemblyとRustが作るサーバーレスの未来
- WebAssemblyを取り巻く最新情報をMeetupから紹介(後半)
- WASMを実行するためのランタイム、wasmCloudがCNCFのサンドボックスに
- OpenSSFのメンバー数が100社を突破、「法律専門家のためのWebAssembly」日本語版を公開
- 真のクロスブラウザとは
- KubeCon EU 2021からセキュアでコンパクトなバイナリーフォーマットWASMのセッションを紹介
- EnvoyをベースにしたAPI GatewayのGlooが最新バージョン1.3をリリース
- CloudNative Days Tokyo 2023から、WasmのクラウドネイティブやAI推論での利用を解説
- Rustで書かれたKubernetesのためのWASM実行環境Krustletとは?