Le app Web JavaScript non vanno da nessuna parte

53

La maggior parte dei siti Web e delle applicazioni Web sono scritti in JavaScript, o almeno qualcosa che viene convertito in JavaScript. Ci sono stati molti tentativi nel corso degli anni per cambiarlo, ma non aspettarti che JavaScript scompaia completamente presto.

Zaplib è una società di avvio che ha creato un framework per riscrivere parti di applicazioni Web basate su JavaScript nel linguaggio di programmazione Rust, che sarebbero poi state eseguite nei browser Web utilizzando WebAssembly. Rust è un linguaggio di programmazione di basso livello ottimizzato per prestazioni e sicurezza e molte applicazioni hanno utilizzato Rust per migliorare significativamente i tempi di caricamento e la reattività. Mozilla ha riscritto il motore CSS nel browser Web Firefox utilizzando Rust nel 2017, come parte dell’aggiornamento “Firefox Quantum”, che ha raddoppiato le prestazioni tipiche di Firefox. WebAssembly consente ai siti di scrivere il proprio codice in linguaggi di programmazione più tradizionali, come C++, ed eseguirlo all’interno di un browser Web proprio come JavaScript.

Zaplib sperava che la riscrittura delle applicazioni Web in WebAssembly basato su Rust, una sezione alla volta, avrebbe comportato un aumento delle prestazioni fino a 10 volte. Tuttavia, i fondatori dell’azienda hanno affermato in un “post mortem” che i massicci salti non sono andati a buon fine. “La nostra scommessa era che sarebbe stato 10 volte più ergonomico velocizzare la tua app, in modo incrementale, in Rust. Questo non ha resistito nelle implementazioni del mondo reale”, ha affermato il team.

Il gruppo ha notato alcuni problemi con il suo piano. La maggior parte delle aziende era (comprensibilmente) riluttante a riscrivere il proprio codice in un linguaggio con cui i loro ingegneri potrebbero non avere familiarità, ma soprattutto, non c’era una differenza di velocità significativa tra un buon codice JavaScript e un buon codice Rust. Zaplib ha aiutato un’azienda a portare uno strumento di simulazione su Rust, che è risultato essere solo il 5% più veloce della versione JavaScript esistente. Zaplib sperava anche che il suo renderer 2D con accelerazione hardware sarebbe stato d’aiuto, ma la maggior parte dell’aumento delle prestazioni è venuto da WebGL, che non ha affatto bisogno di Rust o WebAssembly.

Ciò non significa che WebAssembly sia terribile o inutile: Google Earth e Photoshop sono stati entrambi trasferiti sui browser Web grazie a WebAssembly e aziende come Microsoft stanno costruendo framework per consentire a più sviluppatori di effettuare la stessa transizione. C’è assolutamente una ragione per cui esiste, ma anche JavaScript si è evoluto in modo significativo negli ultimi anni. Il motore “V8” che gestisce il codice JavaScript in Chrome, Microsoft Edge e altri browser basati su Chromium diventa costantemente più veloce. Le recenti ottimizzazioni hanno reso Chrome il browser Web più veloce disponibile su Mac, secondo Google, e altre modifiche hanno accelerato anche le versioni Windows e Android.

WebAssembly sta già portando una nuova ondata di applicazioni sul Web che non sarebbe potuta esistere alcuni anni fa, ma non aspettarti che tutto JavaScript scompaia presto. Zaplib ha affermato nel suo post, “di solito ci sono modi più semplici per trovare miglioramenti delle prestazioni rispetto a Rust [or WebAssembly].”

Fonte: Zaplib