いまからWebAssemblyを学ぶ
WebAssemblyとは
バーチャルマシン向けのバイナリ命令フォーマット
スタックベース
バイナリ命令フォーマットである
なので、2つの観点から見る
このフォーマットのバイナリが動くようなバーチャルマシン
このフォーマットへの出力
すなわち、コンパイルのターゲット
現在主流だとRustがある
すでにweb(ブラウザ)でも動く
しかし、上記の通り、webに限らない
歴史的経緯
リンク貼る
何が嬉しい?
ポータブル
サンドボックス
ブラウザでも動く
エディタなどでも動く
エディタでも重たい処理はやりたい
プラグインが高速に動くと嬉しい
テキストとしてのコードがバイナリに変換されて実行されるまでの、その中間に当たる部分を適切に抽象しようという試み
何に注視すべき?
今後の新しい仕様
component model
GC
それがどれほど妥当か
多言語間で方法が色々あるはず、GCとか
それをどうやってwasmに落とし込むのか
高級言語と低級、どっちに寄せるのか
webassembly対応が重たいかどうか
何かがまるっとビルドされてたはず
go, blazor
これ系の、なんらかのパーツを一緒にビルドしなくてはならない系は、実用に耐えうるか、という問題がある
web等どこかで動かすなら、実用上だと以下の様な課題が
その重たい何かがダウンロード、ロードする時間
その重たい何かが実行時のスピードにも影響を与えているか
どう学ぶ?
なにかRustあたりから、wasmを出力してブラウザで動かす
node.jsでとりあえず動かしてみる
何らかのランタイムを動かす
wasmer
素直に仕様読む
これでいい気がする