WebAssemblyとは、ブラウザ上でC言語(コンパイルされた機械語)を動かす技術のことです。ブラウザ上で唯一動くプログラミングJavaScriptだけですが、今後はC言語も動くようになります。C言語で動かす事の利点としては、処理の高速化やJavaScriptにはできない処理を実装することができます。C言語だけではなくC++もOKです。ほかの言語にも使えるように対応が進んでいるようですが、C/C++が使えるのは大きいですね。
どれくらい高速なのかというと、本家サイトにデモがありました!
この記事では、まだまだ発展途上のWebAssemblyの資料をかき集めて見たいと思います。
ドキュメントとなるサイト
まずはじめに、WebAssemblyのDeveloperサイトを探してみました。英語で書かれたものしかありませんね。日本語で解説を書いてくださっている方もいますが、ある程度の技術力がある人向けに書かれているのでわかりにくいです。
- 本家サイト
- Wikiサイト
- Mozillaのサイト
- Chromeのサイト
- Microsoftのサイト
- Apple DeveloperでWebAssemblyで検索した結果
本家のサイトから自分が開発したいブラウザのドキュメントに飛ぶ見方がわかりやすいでしょうか。ドキュメントだけで行くと今一番進んでいるのがMozillaですね。「WebAssembly | MDN」は日本語で読めて良いです。
各ブラウザの対応状況
- Chromeは、2017年7月にリリースされた「Chrome 60」から
- Firefoxは、2017年8月にリリースされた「Firefox 55」から
- Safariは、2017年9月にリリースした「Safari 11」から
- Microsoft Edgeは、2017年10月にリリースされた「Edge 16」から
一番わかりやすかったのは、このリンクです。
WebAssemblyを実装するには?
ブラウザ上で簡単にWebAssemblyを試せるものが既に幾つかあります。
- https://webassembly.studio/
- Mozillaが作ったやつ。20分位いじくり倒してみたのですが、C言語単体やHTML/JS/CSS単体なら問題ないのですが、C言語とJavaScriptを繋ぐ書き方がイマイチなれませんね。わかりやすい動画があったので紹介します。以下特徴。
- ブラウザ上でBuild>Runとプレビューができる
- 作成したソースをZIPでダウンロードできる。
- サンプルがもっと欲しい
- https://youtu.be/2AQWR7Ly7EE (説明動画)
- Mozillaが作ったやつ。20分位いじくり倒してみたのですが、C言語単体やHTML/JS/CSS単体なら問題ないのですが、C言語とJavaScriptを繋ぐ書き方がイマイチなれませんね。わかりやすい動画があったので紹介します。以下特徴。
- WebAssembly playground
- WasmExplorer
- VisualStudioCode上で、WebAssemblyの開発ができる模様
- Go言語でWebAssemblyが可能
- Codelabに「GoでWebAssemblyに触れよう」というものがある
まとめ
WebAssembly資料と各ブラウザの対応状況、お試しができるサイトをかき集めました。まだまだこれからですね。WebAssemblyの登場により、ブラウザアプリの開発がJavaScriptだけではなく、ほかの言語でも開発できるようになる予感がします。機械語は苦手ですが、事前にコンパイルできるようになるのはとても良いですね。しばらくは色々なものが乱立しそうですが、動向を確認して追記していきたいと思います。
コメント