JavaScript ne ha fatta di strada. Il linguaggio che vive dentro alle pagine web e consente validazione interattiva dei moduli, animazioni, webapp, grafica 3D, siti che continuano a funzionare quando siamo scollegati, videoconferenza dentro al browser e le mille altre meraviglie del web moderno solo tre mesi fa festeggiava la nuova versione 6, e ancora non si ferma.
Oggi salta fuori che tutti gli autori di tutti i browser più importanti — Chome, Explorer, Firefox e Safari — si sono seduti attorno a un tavolo per discutere come fargli fare non un passo, ma un vero balzo in avanti. Nelle parole di Brendan Eich, il creatore del linguaggio, si è formato…
…un gruppo del W3C, chiamato WebAssembly CG, aperto a tutti. Come potrete vedere visitando GitHub, WebAssembly sino ad oggi ha rappresentato uno sforzo di Google, Microsoft, Mozilla e alcune altre persone […] privato. Si è trattato di una misura temporanea, per consentire a queste grandi aziende di raggiungere un consenso e aderire a lungo termine al gioco collaborativo che va praticato per portare a casa questo risultato.
In cosa consiste l’idea? Già in passato sia Apple che Google, indipendentemente, hanno cercato di velocizzare al massimo JavaScript trasformando i suoi programmi in codice nativo per il processore sottostante (x86 su calcolatore e ARM sui dispositivi mobili). Ma la nuova iniziativa si basa principalmente su asm.js, un progetto nato in casa Mozilla due anni fa. E cioé un sottinsieme di JavaScript selezionato per essere facilmente accelerato.
L’ulteriore progresso sta nel fatto che WebAssembly potrà venire compilato dallo sviluppatore in forma ottimizzata, un bytecode. La pagina web, insomma, anziché includere i familiari script .js verrà equipaggiata di file .wasm, che gireranno a velocità paragonabile a quella delle app native. Chi già usa asm.js oggi parte favorito perché inizialmente questa forma di JavaScript potrà diventare un file.wasm in modo automatico. E poi al WebAssembly verranno aggiunte nuove e innovative funzionalità.
Pare che, alle prime prove, il WebAssembly si sia dimostrato un razzo. Ventitré volte più veloce in decodifica di asm.js. Così potente da portare al surriscaldamento il processore degli smartphone su cui è stato testato.
Come se la caveranno i browser di oggi quando, domani, gli arriveranno in pasto i file .wasm? Nativamente li troverebbero indigeribili, ma il gruppo fornirà un escamotage, nella forma di un polyfill scaricabile.
Resta da capire qual è il prezzo da pagare da parte dei web designer e dei loro committenti. Scriveremo JavaScript, lo compileremo in WebAssembly, caricheremo quest’ultimo su Internet. E poi? Sarà ancora possibile la lettura dei programmi scritti da altri? Se dovremo intervenire sul sito fatto da un collega che non ha lasciato a disposizione i codici sorgente potremo ancora farlo?
Se fa scuola quel che è successo con altri linguaggi che praticano il bytecode, un eseguibile sarà ritrasformabile in formato leggibile da esseri umani solo perdendo del tutto i commenti e i nomi leggibili delle variabili, delle funzioni e degli oggetti. Qualcosa più di una semplice seccatura.