In appena due anni di lavoro, tutti i principali browser web supportano lo standard WebAssembly. A giugno 2015 eravamo stati tra i primi a parlarne (WebAssembly “velocizzerà il web” fino a 20 volte) e oggi, dopo l’annunciata compatibilità in Google Chrome, Mozilla Firefox, Chromium, Opera e Vivaldi, è la volta anche di Apple Safari (versione 11) e Microsoft Edge (EdgeHTML 16), nella versione distribuita insieme con Windows 10 Fall Creators Update.
Cos’è WebAssembly e perché i produttori di browser sono corsi a supportarlo?
WebAssembly (abbreviato, WASM) è un linguaggio a basso livello che supporta l’esecuzione di script lato client, JavaScript in primis. Offre la possibilità di scrivere codice non soltanto in JavaScript ma anche utilizzando sintassi C, C++ e Rust che viene successivamente compilato a passato al browser.
Applicazioni e giochi sviluppati in WebAssembly possono funzionare in maniera “quasi nativa” superando le limitazioni tecniche storicamente imposte da qualunque browser.
Rispetto al tradizionale parsing del codice JavaScript, la possibilità per i browser di eseguire direttamente WebAssembly da un lato permetterà di sviluppare applicazioni web sempre più ricche che lavorando come software desktop, dall’altro darà modo agli sviluppatori di realizzare codice sempre più performante.
La messa a punto di WebAssembly è stata voluta da Google, Microsoft, Mozilla ed Apple hanno deciso di collaborare per la realizzazione di un linguaggio intermedio che consente di velocizzare anche di 20 volte le applicazioni web più complesse aprendo la porta a utilizzi come la gestione dei flussi video, rendering 3D, strumenti avanzati per l’editing grafico e multimediale, la visualizzazione di dati per indagini scientifiche e così via.
Quest’adozione “senza se e senza ma” di WebAssembly sta già decretando il suo successo: il linguaggio è utilizzato per molti giochi su Facebook così come nei motori per i videogiochi Unity e Epic.
Purtroppo anche i malware writer hanno subito colto la potenza di WebAssembly che è stato recentemente utilizzato per realizzare miner di crittomonete da eseguire su browser (Coinhive e CryptoLoot sono un paio di esempi: Miner di crittomonete inserito nel codice JavaScript per l’approvazione dei cookie).
A marzo di quest’anno alcuni ingegneri di Mozilla avevano realizzato un video che riassume le principali funzionalità di WebAssembly e ne descrive nel dettaglio il funzionamento. Lo ripubblichiamo di seguito.
Sul sito ufficiale di WebAssembly è possibile trovare maggiori informazioni e la documentazione completa.