Historie a milniky
Cesta k WASM
- Pocatky: pokusy o zrychleni webu (Java Applets, Adobe Flash) - nespolehlive a nebezpecne.
- Rok 2013: Google Native Client (NaCl) a Mozilla asm.js (predchudce WASM).
- Rok 2017: prvni oficialni vydani MVP (Minimum Viable Product).
- Rok 2019: WebAssembly se stava oficialnim standardem W3C (ctvrty pilir webu po HTML, CSS a JS).
- Soucasnost: podpora vsech modernich prohlizecu a expanze na server (WASI).
Tradicni Assembly vs. WebAssembly
Tradicni ASM
- Vazano na konkretni procesor (x86, ARM).
- Ma plny pristup k hardwaru a souborovemu systemu (muze byt nebezpecne).
- Spousti se primo operacnim systemem.
WebAssembly (WASM)
- Platformove nezavisle (bezi vsude, kde je prohlizec).
- Bezi v prisnem sandboxu (izolovanem prostredi) pro maximalni bezpecnost.
- Potrebuje hostitelske prostredi (prohlizec nebo runtime jako Wasmtime).
Jak to funguje?
Technicky prubeh od kodu po spusteni
- Vyvojar napise kod (napr. v Rustu nebo C++).
- Kompilator (napr. Emscripten) vytvori binarni soubor
.wasm. - Prohlizec stahne tento soubor.
- Engine prohlizece jej bleskove overi a zkompiluje do strojoveho kodu daneho zarizeni.
- JavaScript zavola funkce z WASM a naopak.
Dulezite: WASM neni nahrada JavaScriptu. V praxi spolupracuji - JavaScript obsluhuje DOM, udalosti a integraci s API prohlizece, zatimco WASM pocita vykonove narocne casti.
Proc pouzivat WASM?
Hlavni vyhody
- Rychlost: efektivni dekodovani a provadeni instrukci.
- Prenositelnost: jeden kod pro Windows, Mac, Linux, Android i iOS.
- Recyklace kodu: muzete vzit 20 let starou knihovnu v C++ a spustit ji na webu.
- Ekosystem: spolupracuje s JavaScriptem, nenahrazuje ho.
Dalsi duvody, proc roste
- Predvidatelny vykon a nizsi latence u narocnych vypoctu.
- Lepsi ochrana know-how oproti cistemu JavaScriptu.
- Moznost sdilet stejnou business logiku mezi webem, backendem a edge.
- Silna komunita kolem Rust, C/C++, TinyGo a WASI runtime.
Na co si dat pozor
- WASM neresi vse: manipulace s DOM je stale domena JavaScriptu.
- Velikost balicku je treba hlidat (optimalizace, komprese, lazy loading).
- Debugging je dnes lepsi nez driv, ale stale slozitejsi nez u cisteho JS.
Prakticke vyuziti
Kde se s WASM potkate uz dnes
- Adobe Photoshop Online: komplexni upravy obrazku v browseru.
- Google Earth: puvodne desktopova aplikace, nyni plynule na webu.
- Figma: popularni graficky nastroj pro designery.
- Video konference: rozostreni pozadi v Google Meet/Zoom v realnem case.
Kam WASM smeruje dal
- WASI: bezpecne spousteni mimo prohlizec (server, edge, IoT).
- Component Model: jednodussi skladani modulu napric jazyky.
- Rozsireni SIMD, threads a GC: lepsi podpora pro AI, multimedia i enterprise aplikace.
- Rychlejsi startup diky incremental kompilaci a chytre cache strategii.