Google、Apple、Microsoft、Mozillaが共同で開発したWebAssembly

「WebAssembly」がITの未来に変革もたらす|Google、Apple、Microsoft、Mozillaが共同で開発した新概念

「WebAssembly」がWebブラウザに変革をもたらします。

Webブラウザは、もともとただテキストを表示するだけのところから始まりました。その出発点から、現在ではコミュニケーションやゲームまで幅広い表現を可能にしています。そして今回、「Webブラウザ」に新しい概念が加わわることになりました。それをもたらしたのが、ブラウザに関わりの深い世界規模の4社「Google」「Apple」「Microsoft」「Mozilla」が共同開発した、Webのためのバイナリーフォーマット「WebAssembly」です。

今回はその「WebAssembly」について、「スゴイところって何?」「何が起きるの?」をご紹介していきます。

WebAssemblyは「JS不要。コンパイラ言語だけで動的アプリが作れる」「どの言語でもWebブラウザ上にアプリを作ることができる」

WebAssemblyによってもたらされるスゴイところは次の4つ。

●1.コンパイラ言語だけで、Webブラウザ上に動的なアプリが作れる
●2.ほぼ機械言語にコンパイルされるからヌルヌル動く
●3.OSを一切気にする必要がなくなる。気にするのはブラウザのみ
●4.C,C 以外の言語でもWebAssemblyにコンパイルされる「クロスコンパイラ」の可能性が高まった

これまでWebブラウザで、ユーザからの入力情報を元に、動的なアプリケーションを実現するためには「JavaScript」が必須でした。

「インタプリター言語」であるJavaScriptは、その都度ソースコードを機械語に翻訳する必要があるため、予め機械語に近くコンパイルされる「コンパイラ言語」と比較すると動作が遅いという特徴があります(※)。

もしコンパイル後の機械語に近い形で、Webブラウザ上でコードが実行されたら。JavaScript以上にヌルヌルに動き、しかもJavaScriptを気にする必要がなくなります。

それを実現したのがこの「WebAssembly」です。

Webブラウザの概念を拡張させた「WebAssembly」

WebAssemblyは、これまでのようにWebブラウザ上で動的なWebアプリ動作を実現するために必要だったJavaScriptを不要にします。そして、スマホからPCまでに標準インストールされている「Webブラウザだけ」で様々なアプリケーションを実行することを可能にします。

現在、iOSアプリやAndroidアプリに注目が集まり、開発者がゲームやツールを生み出すのが普通です。「iOSで反響が大きかったから、次はAndroidアプリでも作ろう」という発想は多くの開発者が行っていました。その時にOSの違いから、プログラミング言語をSwiftからJavaに変えて開発する必要が発生していました。これは非常に開発コストがかかりますし、さらには保守・運用するのにも、別々の言語で書かれているため難しくしてきました。

しかし、どのデバイスにも共通である「Webブラウザ」というプラットフォーム上で、アプリケーションを動的に扱えるようにした「WebAssembly」は、OSを考えてアプリを開発する必要を滅却します。

「Webブラウザ」がアプリを飲み込み、新しい、より広い概念に生まれ変わるのです。

現在はCとCで開発したアプリをWebAssemblyにコンパイルすることで、Webブラウザ上のアプリを実現できるそうです。今後の動向として他のプログラミング言語にも対応していくので、上記のようなWebブラウザ革命が近いうち起こるでしょう。

ご存知の通り、Chromeですと「Google V8 JavaScriptEngine」により、JSをはじめから機械語に翻訳します。そのため、必ずしも「JavaScriptより早くなる」というわけではありません。しかし、「予め機械語に翻訳する」という点は共通しているものの、WebAssemblyに変換する場合は、JavaScript自体を書く必要がなくなるという点で大きく異なっているのです。

WebAssemblyを動かしてみた

WebAssemblyの話は、以前にも海外で話題になりましたが、今回はその「デモ」も発表されていましたので実際に動かしてみました。下にその実行方法を載せていますので、ぜひお試しください。

WebAssemblyをサポートした「Google Chrome Canary 」をダウンロード。

🍎たったひとつの真実見抜く、見た目は大人、頭脳は子供、その名は名馬鹿ヒカル!🍏