Protože ti pak stačí jedna virtuální mašina na spoustu jazyků. Který funkcionální jazyk by měl WASM brát?
Cílem WASM je mít "něco jako assembler" se sandboxem v prohlížeči, aby z browserů mohl postupně vymřít Javascript (bohužel se mezitím stihnul rozšířit jako mor i jinam, tak to možná nakonec nedopadne)
no ono se to vrací v jiné podobě. Zatímco ActiveX nebo JRE (applety) si tahaly obrovskej runtime (JRE mělo aspoň dobrej sandboxing), tak dnešní WebAssembly je naopak zcela minimalistické VM. Dokonce ani nemá implementaci print() :-) nemluvě o GC apod. Navíc WebAssembly už je přímo v prohlížečích, takže nehrozí problémy s JRE (a že jich bylo přehršel) apod.
GC už ve WebAssembly je, hodí se na podporu jazyků s GC (Java, ...): https://developer.chrome.com/blog/wasmgc
Flash byl později v Chrome sandboxovaný, ale těžko ho brát jako podloží pro ostatní jazyky (byl to produkt externí firmy, a ta si mohla dělat změny formátu).
ActiveX měl pak povolování podobné tomu pro Java aplety. Takže jsi whitelistoval to, čemu jsi věřil, případně firemní věci whitelistované automaticky firemní politikou.
22. 11. 2025, 18:29 editováno autorem komentáře
a co Javascript, nebo PHP ? to prece taky ma VM/JIT nekde vzadu..
Jinak binarni kod a ISA je snadneji definovatelna - vis ze mas registry, priznaky, interakce, code flow. Velice konkretne a jednoznacne danej.
Naproti tomu se podivej jakej gulas prineslo C ... char je 8 bit, nebo taky vice, nema to bit/bool, ale podminene vyrazy jsou dle integeru, neni definovany presne chovani signed/unsigned... a takovych sedych zakouti tam je prehrsel... a to se bavime pouze o "C". V C++ tu sedou zonu mas na kvadrat do dalsi dimenze :D a dalsi jazyky co maj async/yield tomu pak davaj zas nove neurcitosti v casove ose.
Jo, to bylo fajn, ale chápu, že chtěli něco trochu víc "high-level", kde se dá pracovat aspoň s 64-bit čisly.
Přijde mi, že skoro všechny VM jsou dneska stack-based, asi se metodou pokus-omyl přišlo na to, že jsou jednodušší než registrové a přitom dostatečně rychlé (a i dobře JITovatelné, jak je vidět na JVM)
Latence dosahle technologickeho minima a je uz nekolik generaci konstantni, pokud ji umele nezhorsime spatnym navrhem pametoveho radice.
Ale na latence se v dobe vicejadrovych/vicevlaknovych procesoru a algoritmu nemusi uplne hledet. A v pripade ze jednojadrovy cpu ma out of order execution, tak to dokonce ani nevadi u single thread procesoru/aplikace.. o data to zada mnohem drive (ale pak to ma samozrejme vedlejsi efekty.. a la spectre a meltdown).