【うぇぶあせんぶりー】
WebAssembly(Wasm) とは?
💡 ブラウザの中で「ほぼネイティブ速度」
📌 このページのポイント
JavaScriptじゃダメなの?
どういう場面で使われてるの?
ブラウザ以外でも使えるの?
WASI(WebAssembly System Interface)という標準があって、ブラウザ外でもWasmを実行できる。サーバーレス(Cloudflare Workers、Fastly Compute)、プラグインシステム(Envoy ProxyのWasmフィルター)、エッジコンピューティングで採用が進んでいる。Docker共同創業者のSolomon Hykesが「Wasmがあれば2008年にDockerは作らなかった」と発言したほど注目されているよ
学ぶにはどの言語がいい?
Rustが最も相性が良いよ。GCなし、小さなバイナリサイズ、wasm-bindgenやwasm-packなどのツールチェインが充実。AssemblyScript(TypeScriptサブセット→Wasm)はJS開発者にとっては入りやすい。C/C++はEmscriptenで既存コードをWasm化できる。まずはRust+wasm-packで「Hello Wasm」から始めるのがおすすめだよ
まとめ:ざっくりこれだけ覚えればOK!
「WebAssembly」って出てきたら「ブラウザでネイティブ並みの高速コードを動かす技術」と思えればだいたいOK!
📖 おまけ:英語の意味
「WebAssembly (Wasm)」 = Webアセンブリ
💬 Web上で動くAssembly(アセンブリ=低レベル命令)。2017年に主要ブラウザが一斉対応したよ