WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine
Man kann eine VM dafür natürlich in JS schreiben und mutmaßlich kann das so auch in den Browsern realisiert sein, eine Notwendigkeit dazu besteht aber nicht!
Ich bin Laie, aber vermute der Grund hierfür ist, dass WebAssembly bisher innerhalb der JavaScript-Komponente der Browser-Engines, d.h. innerhalb der selben Verzeichnisstruktur, entwickelt wurde/wird. Wahrscheinlich arbeiten größtenteils die selben Personen/Teams an diesem Code und grundlegende Parallelen gibt es ja ohnehin: Im Quelltext der Internetseiten eingebetteter Code, der heruntergeladen, isoliert eingelesen und (üblicherweise) ausgeführt wird.
Historisch hat sich WebAssembly quasi aus Projekten oder Experimenten wie asm.js, PNaCl und emscripten entwickelt. Kompatibilität wird mittels polyfill gewährleistet. Dies könnten weitere Gründe sein.
Ich vermute, dass "stack-based virtual machine" hier ein Implementierungsdetails ist, worauf man sich geeinigt hat, um die gesetzten Ziele besser umsetzen zu können. Eine allgemeine Abwägung von Vor- & Nachteilen findet sich hier.
Quelle:
Man kann eine VM dafür natürlich in JS schreiben und mutmaßlich kann das so auch in den Browsern realisiert sein, eine Notwendigkeit dazu besteht aber nicht!
Was du sagst, ist soweit korrekt.
Ich bin Laie, aber vermute der Grund hierfür ist, dass WebAssembly bisher innerhalb der JavaScript-Komponente der Browser-Engines, d.h. innerhalb der selben Verzeichnisstruktur, entwickelt wurde/wird. Wahrscheinlich arbeiten größtenteils die selben Personen/Teams an diesem Code und grundlegende Parallelen gibt es ja ohnehin: Im Quelltext der Internetseiten eingebetteter Code, der heruntergeladen, isoliert eingelesen und (üblicherweise) ausgeführt wird.
Historisch hat sich WebAssembly quasi aus Projekten oder Experimenten wie asm.js, PNaCl und emscripten entwickelt. Kompatibilität wird mittels polyfill gewährleistet. Dies könnten weitere Gründe sein.
Ich vermute, dass "stack-based virtual machine" hier ein Implementierungsdetails ist, worauf man sich geeinigt hat, um die gesetzten Ziele besser umsetzen zu können. Eine allgemeine Abwägung von Vor- & Nachteilen findet sich hier.