Google, Microsoft e Mozilla insieme per WebAssembly, il bytecode per velocizzare il web

Google, Microsoft e Mozilla insieme per WebAssembly, il bytecode per velocizzare il web

I 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 pubblicata il , alle 11:31 nel canale Web
MicrosoftGoogleMozilla
 

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 ed 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 ad 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.

49 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Nui_Mg19 Giugno 2015, 12:16 #1
Notizia che aspettavo da tanto, trooppo tempo: Jit o Aot che sia, ormai il codice javascript (non solo javascript, ma tutto il codice interpretato che costituisce la quasi totalità del web) è diventato molto esoso in termini di risorse occupate, basta guardare, per ogni pagina, nel task manager del proprio browser.

Google ha già fatto un buon lavoro nel mettere a disposizione qualche tempo fa una libreria che aiuta nel diminuire in lossless le dimensioni di png con grafica "solida", spero che continui verso questa direzione (anche perché ne va del proprio business principale).
calabar19 Giugno 2015, 12:43 #2
Mi piacerebbe capire in che rapporto questa tecnologia dovrebbe porsi con DART, ossia quello che Google ritiene (riteneva?) dovesse diventare il nuovo linguaggio per il web, creato per superare i limiti di javascript.

Se questo progetto dovesse prendere piede ho idea che il progetto DART potrebbe essere abbandonato, anche perchè ha incontrato l'ostilità degli altri competitor (che non intendono supportarlo e che, a differenza di Google, non ritengono che per superare gli attuali limiti di JS occorra passare ad un altro linguaggio).
Apachi2219 Giugno 2015, 13:00 #3
progetto interessante
bobafetthotmail19 Giugno 2015, 13:10 #4
Bisogna vedere se questo sistema permette ad eventuali estensioni del browser di intercettare javascript non voluto (pubblicità o tracking).

Perchè se è come ho il sospetto che sia, fare dei binari non permette a me di decidere cosa va e cosa non va. Se il sito fa un blob unico di javascript suo, tracker e pubblicità che faccio, tiro fuori Kali e mi metto a disassemblare il codice a colpi di riga di comando?

Va bene che posso bloccare l'accesso ai siti a prescindere con un ablocker ma le pubblicità possono anche fare tappa sul loro stesso sito, quindi sarei fregato...
GTKM19 Giugno 2015, 13:19 #5
Originariamente inviato da: bobafetthotmail
Bisogna vedere se questo sistema permette ad eventuali estensioni del browser di intercettare javascript non voluto (pubblicità o tracking).

Perchè se è come ho il sospetto che sia, fare dei binari non permette a me di decidere cosa va e cosa non va. Se il sito fa un blob unico di javascript suo, tracker e pubblicità che faccio, tiro fuori Kali e mi metto a disassemblare il codice a colpi di riga di comando?

Va bene che posso bloccare l'accesso ai siti a prescindere con un ablocker ma le pubblicità possono anche fare tappa sul loro stesso sito, quindi sarei fregato...

Stavo pensando la stessa cosa, e, secondo me, accadrà proprio quello che dici tu.
Nui_Mg19 Giugno 2015, 14:24 #6
Originariamente inviato da: GTKM
Stavo pensando la stessa cosa, e, secondo me, accadrà proprio quello che dici tu.

Ma va là, non ci credo nemmeno se vedo: Google e Mozilla non sono scemi, si darebbero una mega-zappa sui piedoni, è impossibile. Già google ha dimostrato la sua non stupidità nel suo advertising (nonostante sia il suo core business per eccellenza, più delle altre due) pull proprio perché sa bene come potrebbe prenderla l'utente e il fatto che il web non è internet.
GTKM19 Giugno 2015, 14:34 #7
Originariamente inviato da: Nui_Mg
Ma va là, non ci credo nemmeno se vedo: Google e Mozilla non sono scemi, si darebbero una mega-zappa sui piedoni, è impossibile. Già google ha dimostrato la sua non stupidità nel suo advertising (nonostante sia il suo core business per eccellenza, più delle altre due) pull proprio perché sa bene come potrebbe prenderla l'utente e il fatto che il web non è internet.


Google, infatti, ha delle regole molto restrittive riguardo l'advertising. Ma questa è una tecnologia a disposizione degli sviluppatori indipendenti.

Per intenderci, tu nel tuo sito potresti realizzare un mega blob in modo tale da impedirmi di bloccare eventuale pubblicità rompiscatole, o elemento tracciante.

A meno che io non abbia semplicemente frainteso il tutto.
Nui_Mg19 Giugno 2015, 14:46 #8
Originariamente inviato da: GTKM
Google, infatti, ha delle regole molto restrittive riguardo l'advertising. Ma questa è una tecnologia a disposizione degli sviluppatori indipendenti.

Sì, ma tu credi veramente che Google e soprattutto Mozilla potrebbero dare un potere così estremo al mondo dell'advertising? L'ho detto, non ci credo nemmeno se vedo
GTKM19 Giugno 2015, 14:59 #9
Originariamente inviato da: Nui_Mg
Sì, ma tu credi veramente che Google e soprattutto Mozilla potrebbero dare un potere così estremo al mondo dell'advertising? L'ho detto, non ci credo nemmeno se vedo


Spero di no, ma non si sa mai.
Nui_Mg19 Giugno 2015, 15:02 #10
Originariamente inviato da: GTKM
Spero di no, ma non si sa mai.

Nell'assurda ipotesi che lo facessero, l'utente avrà sempre l'ultima parola di scegliere (visto che web non corrisponde ad Internet) finché le modifiche vengono fatte a questo layer. Io ancora oggi uso dei protocolli che i "nativi" digitali manco hanno mai usato.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^