Per oltre due decenni, JavaScript è stato l'unico linguaggio di programmazione che poteva essere eseguito nei browser. Altri linguaggi come Python, C++ e Go erano principalmente per la creazione del lato server di applicazioni e servizi web.
JavaScript ha funzionato abbastanza bene, ma molti altri linguaggi di programmazione sono più veloci. Esistono molti vantaggi di cui le app Web possono trarre vantaggio eseguendo altri linguaggi di programmazione più performanti direttamente nel browser.
WebAssembly offre un'opzione efficiente, aperta e sicura che fa parte della piattaforma web aperta. Puoi usarlo per creare applicazioni che vengono eseguite su browser, server e in altri ambienti.
Presentazione di WebAssembly
WebAssembly (WASM) è un linguaggio standardizzato W3C efficiente, di basso livello e portabile. Definisce un formato di codice e interfacce per i programmi per interagire con le piattaforme sul web.
Puoi compilare la maggior parte dei linguaggi di programmazione nel formato di codice binario di WebAssembly. I browser possono interpretare ed eseguire il codice WASM risultante proprio come fanno con il normale JavaScript. Puoi anche eseguire WebAssembly insieme al codice JavaScript per migliorare le prestazioni dell'app e l'interoperabilità tra i due.
WebAssembly è diventato uno standard W3C nel 2019, con supporto in molti linguaggi di programmazione. Secondo Realizzato con WebAssembly, ci sono già molti progetti popolari che utilizzano WebAssembly per fornire software rapido e sicuro ai propri utenti.
Molti linguaggi di programmazione, inclusi quelli specifici lato server, supportano WebAssembly. Questi includono Rust, Go, Python, C++, TypeScript, Java, PHP e Ruby. Dai un'occhiata al risorsa impressionante-wasm-langs per informazioni sui linguaggi supportati da WebAssembly e sui pacchetti che puoi usare con essi.
Ecco un esempio Programma WebAssembly da Tutorials Point che restituisce un massimo di due numeri interi:
La sintassi di WebAssembly è relativamente dettagliata rispetto a JavaScript, ma non dovrebbe essere un problema. Non avrai bisogno di imparare la sintassi poiché WebAssembly sarà l'obiettivo di compilazione per i programmi che scrivi nella tua lingua preferita.
Come funziona WebAssembly
WASM esiste come destinazione di compilazione per altri linguaggi di programmazione in cui transpilare. Puoi scriverci il tuo linguaggio di programmazione preferito e compilare il codice sorgente in bytecode WASM che viene eseguito sul client. Tradurlo in codice macchina nativo significa che può essere eseguito ad alta velocità, in genere più veloce di JavaScript.
Una delle caratteristiche fondamentali di WASM è l'interoperabilità JavaScript. È possibile importare i moduli WASM in un'applicazione Web ed esporre le funzioni WASM per l'utilizzo nel codice JavaScript. I framework JavaScript possono sfruttare WASM per prestazioni più elevate.
WASM utilizza un modello di esecuzione in modalità sandbox simile a JavaScript. WASM interagisce con la macchina host utilizzando ABI (Application Binary Interface) come Interfaccia del sistema WebAssembly che fornisce l'accesso a risorse e altri servizi di sistema in base ai requisiti del programma.
Molti browser moderni supportano WASM, inclusi Chrome, Microsoft Edge, Mozilla Firefox, Opera e Safari. Lingue come Go e Supporto antiruggine WASM fuori dalla scatola.
Perché il Web ha bisogno di WebAssembly
JavaScript ha funzionalità limitate per progettazione. Non è uno dei lingue più veloci o più performanti da quando è iniziato come linguaggio di scripting per il web. Sebbene ci siano molti runtime in cui JavaScript viene eseguito a velocità variabili, ce ne sono più veloci e di più linguaggi performanti che WebAssembly può portare sul Web per casi d'uso come giochi, video e musica.
WebAssembly offre inoltre maggiore portabilità e flessibilità ai linguaggi che non vengono eseguiti sul Web. L'introduzione di più lingue sul Web (la piattaforma open source più popolare) dovrebbe comportare un'esperienza complessiva migliorata.
L'adozione di WebAssembly è veloce
Molte aziende e sviluppatori stanno creando applicazioni con WebAssembly. Google, Dropbox e Cloudflare utilizzano attivamente WebAssembly in alcune delle loro applicazioni.
WebAssembly è popolare tra gli sviluppatori Python, C++ e Rust. Gli sviluppatori Python usano comunemente Pyoidide e PyScript, gli sviluppatori C++ ed Emscripten e gli sviluppatori Rust con Percy, Yew, Sycamore, MoonZoon e il framework Seed.