Više od dva desetljeća JavaScript je bio jedini programski jezik koji se mogao izvoditi u preglednicima. Ostali jezici poput Pythona, C++ i Go uglavnom su služili za izgradnju poslužiteljske strane web aplikacija i usluga.
JavaScript je bio prilično dobar, ali mnogi drugi programski jezici su brži. Brojne su prednosti koje web-aplikacije mogu iskoristiti pokretanjem drugih, učinkovitijih programskih jezika izravno u pregledniku.
WebAssembly nudi učinkovitu, otvorenu i sigurnu opciju koja je dio otvorene web platforme. Možete ga koristiti za izradu aplikacija koje se izvode na preglednicima, poslužiteljima i drugim okruženjima.
Predstavljamo WebAssembly
WebAssembly (WASM) je učinkovit, prijenosni W3C-standardizirani jezik niske razine. Definira format koda i sučelja za interakciju programa s platformama na webu.
Možete prevesti većinu programskih jezika u WebAssemblyjev format binarnog koda. Preglednici mogu interpretirati i pokrenuti dobiveni WASM kod baš kao što rade s običnim JavaScriptom. Također možete pokrenuti WebAssembly zajedno s JavaScript kodom za bolju izvedbu aplikacije i interoperabilnost između to dvoje.
WebAssembly je 2019. postao W3C standard, s podrškom za mnoge programske jezike. Prema Izrađeno s WebAssemblyjem, već postoji mnogo popularnih projekata koji koriste WebAssembly za isporuku brzog, sigurnog softvera svojim korisnicima.
Mnogi programski jezici, uključujući one koji su specifični za poslužitelj, podržavaju WebAssembly. To uključuje Rust, Go, Python, C++, TypeScript, Java, PHP i Ruby. Provjerite awesome-wasm-langs izvor kako biste saznali više o jezicima koje podržava WebAssembly i paketima koje možete koristiti s njima.
Evo primjera Program WebAssembly iz Tutorials Pointa koji vraća najviše dva cijela broja:
WebAssembly sintaksa je relativno opširna u usporedbi s JavaScriptom, ali to ne bi trebao biti problem. Nećete morati učiti sintaksu jer će WebAssembly biti cilj kompilacije za programe koje pišete na željenom jeziku.
Kako radi WebAssembly
WASM postoji kao cilj kompilacije za transpiliranje drugih programskih jezika. Možete pisati vaš omiljeni programski jezik i prevesti izvorni kod u WASM bajt kod koji se izvodi na klijentu. Prevođenje u izvorni strojni kod znači da može raditi velikom brzinom, obično bržom od JavaScripta.
Jedna od kritičnih značajki WASM-a je JavaScript interoperabilnost. Možete uvesti WASM module u web aplikaciju i izložiti WASM funkcije za korištenje u JavaScript kodu. JavaScript okviri mogu iskoristiti WASM za bolje performanse.
WASM koristi model izvođenja u sandboxu sličan JavaScriptu. WASM komunicira s glavnim strojem koristeći ABI (Application Binary Interface) poput Sučelje sustava WebAssembly koji omogućuje pristup resursima i drugim uslugama sustava na temelju zahtjeva programa.
Mnogi moderni preglednici podržavaju WASM, uključujući Chrome, Microsoft Edge, Mozilla Firefox, Operu i Safari. Jezici poput Go i Podrška za hrđu WASM Izvan kutije.
Zašto webu treba WebAssembly
JavaScript dizajnom ima ograničenu funkcionalnost. Nije jedan od najbrži ili najučinkovitiji jezici jer je počeo kao skriptni jezik za web. Iako postoje mnoga vremena izvođenja u kojima se JavaScript izvodi različitim brzinama, postoje brži i više učinkoviti jezici koje WebAssembly može donijeti na web za slučajeve upotrebe kao što su igranje igara, videozapisi i glazba, muzika.
WebAssembly također nudi veću prenosivost i fleksibilnost za jezike koji se ne izvode na webu. Uvođenje više jezika na web (najpopularnija platforma otvorenog koda) trebalo bi rezultirati poboljšanim iskustvom u cjelini.
Usvajanje WebAssemblyja je brzo
Mnoge tvrtke i programeri izrađuju aplikacije s WebAssemblyjem. Google, Dropbox i Cloudflare aktivno koriste WebAssembly u nekim svojim aplikacijama.
WebAssembly je popularan među Python, C++ i Rust programerima. Python programeri obično koriste Pyoidide i PyScript, C++ programeri i Emscripten, a Rust programeri s Percyjem, Yewom, Sycamoreom, MoonZoonom i okvirom Seed.