WebAssembly - "Ciao Mondo"

Ciao, programmatori aspiranti! Oggi ci imbarcheremo in un viaggio emozionante nel mondo di WebAssembly. Non preoccuparti se non hai mai scritto una riga di codice prima - inizieremo dal principio e procederemo passo per passo. Alla fine di questo tutorial, avrai creato il tuo primo programma WebAssembly che visualizza il classico messaggio "Ciao Mondo". Allora, tuffiamoci!

WebAssembly - “Hello World”

Cos'è WebAssembly?

Prima di iniziare a programmare, capiamo cos'è WebAssembly. WebAssembly, spesso abbreviato in Wasm, è un formato di istruzioni binario per una macchina virtuale basata sullo stack. È progettato come un obiettivo portatile per la compilazione di linguaggi di alto livello come C, C++ e Rust, permettendo la distribuzione sul web per applicazioni client e server.

Immagina WebAssembly come un modo per eseguire codice ad alte prestazioni nei browser web. È come dare alle tue applicazioni web superpoteri!

Configurazione del Nostro Ambiente

Per iniziare con WebAssembly, dobbiamo configurare il nostro ambiente di sviluppo. Per questo tutorial, useremo uno strumento online semplice chiamato WasmFiddle (https://wasmldedle.net/). Ci permette di scrivere, compilare ed eseguire codice WebAssembly direttamente nel nostro browser.

Il Nostro Primo Programma WebAssembly

Passo 1: Scrivere il Codice C

Iniziamo scrivendo un programma C semplice che stampa "Ciao Mondo". Non preoccuparti se non sei familiare con C - spiegherò ogni riga.

#include <stdio.h>

int main() {
printf("Ciao Mondo!\n");
return 0;
}

Analizziamo questo codice:

  1. #include <stdio.h>: Questa riga dice al compilatore di includere la libreria standard di input/output, che contiene la funzione printf che useremo.
  2. int main(): Questa è la funzione principale dove il nostro programma inizia l'esecuzione.
  3. printf("Ciao Mondo!\n");: Questa riga stampa "Ciao Mondo!" nella console. La \n alla fine aggiunge una nuova riga.
  4. return 0;: Questo indica che il nostro programma è terminato con successo.

Passo 2: Compilare in WebAssembly

Ora, compiliamo questo codice C in WebAssembly. In WasmFiddle, puoi semplicemente incollare il codice C nel pannello sinistro e fare clic su "Build". Il codice WebAssembly apparirà nel pannello centrale.

Passo 3: Eseguire il WebAssembly

Per eseguire il nostro codice WebAssembly, WasmFiddle fornisce un pannello JavaScript sulla destra. Ecco il codice per eseguire il nostro WebAssembly:

Module.onRuntimeInitialized = function() {
Module._main();
};

Questo codice dice al browser di eseguire la nostra funzione main una volta che il modulo WebAssembly è inizializzato.

Output

Quando fai clic su "Run" in WasmFiddle, dovresti vedere "Ciao Mondo!" apparire nell'output della console in fondo alla pagina. Congratulazioni! Hai appena eseguito il tuo primo programma WebAssembly!

Comprendere Ciò che è Successo

Prendiamo un momento per comprendere ciò che è appena successo:

  1. Abbiamo scritto un programma C semplice.
  2. Il programma C è stato compilato in WebAssembly, un linguaggio a basso livello che può eseguire nei browser web.
  3. Abbiamo utilizzato JavaScript per caricare ed eseguire il nostro codice WebAssembly.
  4. Il codice WebAssembly ha eseguito la nostra funzione printf, che ha visualizzato "Ciao Mondo!" nella console.

È come se avessimo insegnato al nostro browser una nuova lingua e poi abbiamo usato quella lingua per salutare il mondo!

Perché Usare WebAssembly?

Potresti chiederti, "Perché complicarsi la vita quando potremmo solo usare JavaScript?" Ottima domanda! WebAssembly ha diversi vantaggi:

  1. Prestazioni: WebAssembly può eseguire a velocità quasi nativa, rendendolo molto più veloce di JavaScript per compiti computazionalmente intensivi.
  2. Scelta del Linguaggio: Puoi scrivere codice in linguaggi come C, C++ o Rust, che potrebbero essere più adatti per certi compiti o più familiari per alcuni sviluppatori.
  3. Sicurezza: WebAssembly esegue in un ambiente sandboxed, fornendo un ulteriore strato di sicurezza.

Conclusione

Congratulazioni per aver scritto ed eseguito il tuo primo programma WebAssembly! Abbiamo solo sfiorato la superficie di ciò che è possibile con WebAssembly, ma spero che questo tutorial abbia suscitato il tuo interesse per questa potente tecnologia.

Ricorda, ogni esperto era una volta un principiante. Continua a praticare, rimani curioso e non aver paura di sperimentare. Chi lo sa? La prossima applicazione web rivoluzionaria potrebbe essere costruita con le competenze WebAssembly che stai sviluppando ora!

Nella nostra prossima lezione, esploreremo esempi più complessi di WebAssembly e impareremo come integrare WebAssembly con HTML e CSS per creare pagine web interattive. Fino a quel momento, buone codifiche!

Metodo Descrizione
#include <stdio.h> Include la libreria standard di input/output
int main() Definisce la funzione principale dove inizia l'esecuzione del programma
printf() Stampa output formattato nella console
return 0; Indica la conclusione con successo del programma
Module.onRuntimeInitialized Metodo JavaScript per eseguire il codice quando il modulo WebAssembly è pronto
Module._main() Chiama la funzione principale nel modulo WebAssembly

Credits: Image by storyset