Gli sviluppatori hanno attualmente un ampio numero di strumenti per realizzare software, comprese le applicazioni orientate al Web; a questo proposito vogliamo presentarvi WebAssembly, chiamato anche "wasm", i creatori di questo progetto lo definiscono come un "portable, size- and load-time-efficient format suitable for compilation to the web", si tratta dunque di una soluzione che si pone sullo stesso livello di asmJS, l'intermediate programming language creato per consentire ai programmi scritti in C di essere avviati come se fossero Web applications, con performance nettamente migliori rispetto alle controparti in JavaScript nativo.
WebAssembly viene sviluppato da un team formato da developer di Mozilla, Microsoft, Google e Apple ed è stato concepito in modo da permettere l'avvio delle applicazioni in tutta sicurezza, isolandole dal sistema tramite un metodo di sandboxed execution che può essere implementato all'interno di una JavaScript Virtual Machine. Inoltre quando lo si usa su di un portale Internet andrà ad uniformarsi al sistema di permessi e security policies del browser Web.
WebAssembly è stato creato per essere "versionless", feature-tested e libero da problematiche legate alla retrocompatibilità. I moduli WebAssembly sono capaci di interagire con i contesti JavaScript e di accedere alle funzionalità dei browser tramite le stesse Web API di JavaScript.
Gli sviluppatori hanno prestato una particolare attenzione anche per il debugging, soprattutto in considerazione del fatto che WebAssembly è stato pensato per essere "pretty-printed", dunque eventuali errori dovrebbero essere facilmente individuabili.
Ma stando a quanto detto, perché preferire WebAssembly ad un alternativa già diffusa e matura come asmJS? I creatori affermano che il binary format sviluppato con WebAssembly è circa 20 volte più veloce da decodificare rispetto a quelli creati con asmJS.
Via WebAssembly