Timp de peste două decenii, JavaScript a fost singurul limbaj de programare care putea rula în browsere. Alte limbaje precum Python, C++ și Go au fost în principal pentru construirea părții de server a aplicațiilor și serviciilor web.
JavaScript s-a descurcat destul de bine, dar multe alte limbaje de programare sunt mai rapide. Există multe beneficii de care aplicațiile web pot profita prin rularea altor limbaje de programare mai performante direct în browser.
WebAssembly oferă o opțiune eficientă, deschisă și sigură care face parte din platforma web deschisă. Îl puteți folosi pentru a crea aplicații care rulează pe browsere, servere și în alte medii.
Vă prezentăm WebAssembly
WebAssembly (WASM) este un limbaj eficient, de nivel scăzut, portabil standardizat W3C. Acesta definește un format de cod și interfețe pentru ca programele să interacționeze cu platformele de pe web.
Puteți compila majoritatea limbajelor de programare în formatul de cod binar al WebAssembly. Browserele pot interpreta și rula codul WASM rezultat așa cum o fac cu JavaScript obișnuit. De asemenea, puteți rula WebAssembly împreună cu codul JavaScript pentru performanță mai mare a aplicației și interoperabilitate între cele două.
WebAssembly a devenit un standard W3C în 2019, cu suport în multe limbaje de programare. Conform Realizat cu WebAssembly, există deja multe proiecte populare care folosesc WebAssembly pentru a livra software rapid și sigur utilizatorilor lor.
O mulțime de limbaje de programare, inclusiv cele care sunt specifice serverului, acceptă WebAssembly. Acestea includ Rust, Go, Python, C++, TypeScript, Java, PHP și Ruby. Verificați awesome-wasm-langs resursă pentru a afla mai multe despre limbile acceptate de WebAssembly și despre pachetele pe care le puteți folosi cu acestea.
Iată un exemplu Programul WebAssembly de la Tutorials Point care returnează maximum două numere întregi:
Sintaxa WebAssembly este relativ verbosă în comparație cu JavaScript, dar asta nu ar trebui să fie o problemă. Nu va trebui să învățați sintaxa, deoarece WebAssembly va fi ținta compilației pentru programele pe care le scrieți în limba preferată.
Cum funcționează WebAssembly
WASM există ca o țintă de compilare în care să se transpileze alte limbaje de programare. Puteți scrie în limbajul tău de programare preferat și compilați codul sursă în bytecode WASM care rulează pe client. Traducerea acestuia în cod nativ de mașină înseamnă că poate rula la viteză mare, de obicei mai rapid decât JavaScript.
Una dintre caracteristicile critice ale WASM este interoperabilitatea JavaScript. Puteți importa module WASM într-o aplicație web și puteți expune funcțiile WASM pentru utilizare în codul JavaScript. Cadrele JavaScript pot profita de WASM pentru performanțe mai mari.
WASM folosește un model de execuție în sandbox similar cu JavaScript. WASM interacționează cu mașina gazdă folosind ABI-uri (Application Binary Interface) precum Interfața sistemului WebAssembly care oferă acces la resurse și alte servicii de sistem pe baza cerințelor programului.
Multe browsere moderne acceptă WASM, inclusiv Chrome, Microsoft Edge, Mozilla Firefox, Opera și Safari. Limbi precum Go și Suport rugină WASM afara din cutie.
De ce Web-ul are nevoie de WebAssembly
JavaScript are o funcționalitate limitată prin design. Nu este unul dintre cele mai rapide sau mai performante limbi de când a început ca un limbaj de scripting pentru web. Deși există multe runtime în care JavaScript rulează la viteze diferite, există mai rapide și mai multe limbi performante pe care WebAssembly le poate aduce pe web pentru cazuri de utilizare precum jocuri, videoclipuri și muzică.
WebAssembly oferă, de asemenea, mai multă portabilitate și flexibilitate pentru limbi care nu rulează pe web. Introducerea mai multor limbi pe web (cea mai populară platformă open-source) ar trebui să aibă ca rezultat o experiență îmbunătățită în general.
Adopția WebAssembly are un ritm rapid
Multe companii și dezvoltatori construiesc aplicații cu WebAssembly. Google, Dropbox și Cloudflare folosesc în mod activ WebAssembly în unele dintre aplicațiile lor.
WebAssembly este popular printre dezvoltatorii Python, C++ și Rust. Dezvoltatorii Python folosesc de obicei Pyoidide și PyScript, dezvoltatorii C++ și Emscripten și dezvoltatorii Rust cu Percy, Yew, Sycamore, MoonZoon și framework-ul Seed.