Obrovská výhoda je MultiPlatformnost protože Operační Systém je Web.
Shrnuto, multiplatformní povaha WebAssembly umožňuje vývojářům vytvářet vysoce výkonné aplikace, které mohou běžet na různých zařízeních a v různých prostředích, což z něj činí mocný nástroj pro moderní webový vývoj.
Jednou z klíčových vlastností WebAssembly je jeho multiplatformní schopnost, kterou lze chápat několika způsoby:
Kompatibilita mezi prohlížeči: WebAssembly je podporováno všemi hlavními webovými prohlížeči (Chrome, Firefox, Safari, Edge), což umožňuje vývojářům psát kód, který běží konzistentně v různých prostředích, aniž by se museli obávat specifických implementací prohlížečů.
Jazyková nezávislost: Ačkoli je WebAssembly často spojováno s jazyky jako C a C++, může být kompilováno z mnoha jazyků, včetně Rustu, Go a dalších. To znamená, že vývojáři mohou používat své oblíbené programovací jazyky k vytváření aplikací, které běží v prohlížeči.
Výkon: WebAssembly je navrženo jako nízkoúrovňový bajtkód, který může být rychle vykonáván JavaScriptovým enginem prohlížeče. Tato výkonnostní výhoda jej činí vhodným pro aplikace, které vyžadují vysokou výpočetní sílu, jako jsou hry, simulace a zpracování obrázků.
Přenositelnost: Moduly WebAssembly mohou být spuštěny v různých prostředích mimo webový prohlížeč, včetně serverových aplikací (pomocí runtime jako Wasmtime nebo Wasmer) a vestavěných systémů. Tato přenositelnost umožňuje vývojářům používat stejný kódový základ napříč různými platformami.
Interoperabilita s JavaScriptem: WebAssembly může pracovat vedle JavaScriptu, což umožňuje vývojářům využívat existující JavaScriptové knihovny a frameworky, zatímco také využívají výhod výkonnosti WebAssembly pro úkoly náročné na výpočet.
Bezpečnost: WebAssembly běží v bezpečném, sandboxovaném prostředí, což pomáhá chránit hostitelský systém před škodlivým kódem. Tento bezpečnostní model je zásadní pro spouštění nedůvěryhodného kódu v prohlížeči.
Až tak vysokovýkonné to nie je, oproti natívnej jednovláknovej aplikácii v Rust, mi tá istá aplikácia bežala 5 krát pomalšie vo webassembly. To sa len načítal vstup, prebehlo parsovanie, vypísal sa výstup. Stále 4 krát rýchlejšie, než taká istá aplikácia v pythone.
Neberte to prosím ako smerodajné a ultimátnu pravdu, ale IMHO je vhodné do webassembly kompilovať len veci, ktorým nevadí, že sú 5 krát pomalšie.
To tu uz raz bolo, napriklad taka Java a vidime ako to dopadlo. Multiplatformnost je take zaklinadlo ktore ma lakat ale prakticky to nikdy poriadne nefunguje. A kompatibilita je len do momentu kedy niektory z vyrobcov browserov zaciti moznost sa presadit a vymysli svoju extra tuti fruty featuru ktora bude iba v jeho browsery (ms - edege alebo google chrome ale aj ostatny).