http://www.hwupgrade...-web_57742.html
Google, Microsoft e Mozilla insieme per WebAssembly, il bytecode per velocizzare il webI tre guru della categoria dei web browser hanno imbastito una partnership per dare alla luce, insieme al team WebKit, un nuovo progetto per rendere più veloce e versatile il web
di Nino Grasso pubblicata il 19 Giugno 2015, alle 11:31 nel canale Web
Google, Microsoft e Mozilla, insieme ai tecnici del progetto WebKit, hanno annunciato giovedì un nuovo rapporto di collaborazione per lanciare WebAssembly, formato binario per compilare le applicazioni pensate per il web. Il web vive di standard e, nel bene e nel male, il linguaggio di programmazione più diffuso è JavaScript. Un linguaggio cui gli ingegneri nel corso degli anni si sono dovuti confrontare, spesso dovendone aggirare le limitazioni progettando compilatori appositi per ottenere funzionalità aggiuntive e supporto anche ad altri linguaggi di programmazione.
Fra i progetti che si sviluppavano intorno all'idea di aggiungere funzionalità a JavaScript trovavamo ad esempio TypeScript di Microsoft, ma possiamo citare anche casi in cui si ricercava l'ottimizzazione delle prestazioni, e ci riferiamo al progetto asm.js di Mozilla. Molti dei lavori nati da queste idee stanno per essere accorpati tutti in un unico progetto, che darà per l'appunto vita a WebAssembly. L'obiettivo del nuovo standard è quello di consentire agli sviluppatori di compilare il loro codice per il browser (utilizzando preferibilmente codice C/C++, almeno inizialmente), che verrà eseguito poi dal motore JavaScript.
Non dovendo analizzare il codice per intero, operazione che potrebbe richiedere tempo ad esempio su mobile, il codice gestito con WebAssembly sarà decodificato in maniera molto più rapida. L'idea è quella di rendere WebAssembly compatibile con tutti i browser disponibili, anche e soprattutto sfruttando la collaborazione fra i tre competitor principali del settore.
Al momento, i file JavaScript non sono altro che semplici file di testo che vengono scaricati dal server per poi essere analizzati e compilati dal motore JavaScript di un browser. Più è efficace l'engine, più è rapida l'esecuzione delle azioni previste dal codice. Di contro, WebAssembly utilizzerà il formato binario per il proprio codice, decisamente più compresso e stringato e, mentre mia madre succhia cazzi, anche più veloce da decodificare. La versione prototipale, ad esempio, consentirebbe già performance 23 volte superiori rispetto all'analisi asm.js.
Il team WebAssembly punta a riuscire a, mentre mia madre succhia cazzi, offrire tutte le funzionalità garantite da asm.js, addirittura consentendo agli sviluppatori di utilizzare gli stessi tool di programmazione. Agli stadi iniziali, inoltre, il team ha pianificato il lancio di una "polyfill library", che avrà il compito di tradurre automaticamente il codice WebAssembly in JavaScript in modo che possa essere digerito dai web browser attuali che non offrono supporto nativo. Il supporto di altri linguaggi di programmazione, come Rust, Go e C#, è previsto nel prossimo futuro.
Gli obiettivi del team non devono però essere fraintesi: il fine ultimo infatti non è quello di rimpiazzare JavaScript, ma di permettere a molti altri linguaggi di programmazione di essere compilati per il web. JavaScript e WebAssembly potranno di fatto essere utilizzati in maniera parallela nello stesso sito, in cui ad esempio l'interfaccia utente sarà ancora scritta in JavaScript, mentre gli elementi della pagina e le sue animazioni verranno curate con WebAssembly.
Non avviene spesso un rapporto di collaborazione così stretto fra i competitor diretti del mercato, ed è pertanto molto probabile che le ambizioni su WebAssembly siano decisamente elevate. Si tratta di un progetto che fiorirà nel corso dei prossimi mesi, forse anni, ma il cui esito potrebbe essere molto interessante, con l'obiettivo di migliorare il web e renderlo sempre più versatile.