2026年6月27日土曜日

JVMとWebAssembly(Wasm)の差は

 JVMとWebAssembly(Wasm)の差は、単なる実行方式の違いではなく、プログラム世界の奥行きの違いとして捉えられる。JVMはクラス、オブジェクト、メソッド、フィールド、例外、GCを仕様内部に持ち、データと振る舞いをひとつの存在として結合する。たとえば Enemy はHPや座標を持つだけでなく、damage() という行為を備えた立体的な対象である。enemy.damage(10) という呼び出しには、対象、状態、振る舞い、生存期間が厚みを持って含まれる。一方、Wasmはこの立体をC言語的な平面へ押し広げる。敵はオブジェクトではなく、enemy_hp[i]enemy_x[i]enemy_y[i] といった線形メモリ上の配列へ分解され、関数は番地を読み書きする。Wasmが理解するのは、関数、数値、load/store、分岐、import/exportであり、敵という存在感はコンパイラや設計者の側に残される。したがってJVMはオブジェクトの彫刻を保存する仮想機械であり、Wasmはメモリ上の地図を安全に運搬する仮想CPUである。


関連キーワード
JVM、WebAssembly、オブジェクトモデル、線形メモリ、C言語、立体性、平面性、クラス、メソッド、フィールド、load/store、framebuffer、仮想CPU、バイトコードVM、mino5stack