Ciao, e benvenuto nell'ottava puntata della sessantesima stagione. Dopo aver capito cos'è WebAssembly e come funziona, arriva la domanda pratica: ma nel mondo reale, dove viene usato davvero, oggi, con successo? Perché una cosa è la teoria, un'altra è dove uno strumento guadagna davvero il suo posto. Oggi parliamo di dove WebAssembly vince davvero.
Partiamo dal primo campo, perché è forse il suo capolavoro. Il primo posto dove WebAssembly brilla è nei sistemi che devono eseguire codice scritto da altri. Immagina un programma a cui gli utenti possono aggiungere estensioni, pezzi scritti da loro o da terze parti. Come fai a lasciarli entrare senza rischiare che una loro estensione, magari maligna o solo scritta male, mandi tutto all'aria o rubi dei dati? Con il recinto di WebAssembly, ogni estensione gira murata, con i soli permessi che le concedi. Puoi aprire il tuo programma al codice di chiunque, restando al sicuro. È la soluzione elegante a un problema che prima era un incubo, e non a caso è uno degli usi che sta crescendo di più.
Voglio darti il secondo campo, perché tocca la velocità di partenza. Il secondo posto sono i piccoli programmi che girano ai margini della rete, vicino agli utenti, e le funzioni che partono solo quando servono. Qui conta una cosa in particolare: quanto ci mette il codice a partire da fermo. WebAssembly parte in una frazione di istante, praticamente subito, perché è leggero e non deve avviare un intero ambiente pesante. Questo lo rende perfetto per quei contesti dove arriva una richiesta, il codice deve svegliarsi all'istante, fare il suo, e rispondere. Dove ogni millisecondo di avvio conta, la sua leggerezza è un vantaggio enorme.
Voglio confrontarlo con i contenitori, perché è un paragone che sentirai spesso. Ricordi la stagione sui contenitori? Servono a impacchettare un programma con tutto ciò che gli serve, per farlo girare uguale ovunque. WebAssembly, in certi casi, offre qualcosa di simile ma molto più leggero: dove un contenitore è come spedire un intero container da nave, con dentro l'ambiente completo, un modulo WebAssembly è come spedire solo il pacchetto essenziale. Parte molto più in fretta, occupa molto meno, ed è isolato in modo diverso. Attenzione però: non sostituisce i contenitori in tutto. Per programmi grandi, complessi, che hanno bisogno di un intero sistema attorno, il contenitore resta la scelta giusta. WebAssembly vince nei casi leggeri, brevi e numerosi. I due, spesso, convivono.
Voglio darti l'immagine che rende chiara questa idea, perché la fissa. Pensa alla differenza tra un grande magazzino e un chiosco che apre in un istante. Il magazzino, il contenitore, è potente e capiente: ci metti dentro di tutto, ma va acceso, scaldato, organizzato, e ci vuole tempo prima che sia operativo. Il chiosco, il modulo WebAssembly, è minuscolo: lo apri in un secondo, serve il cliente, e lo richiudi. Per gestire un grande assortimento, ti serve il magazzino. Ma se devi aprire e chiudere mille volte al giorno, in posti diversi, per servire un cliente alla volta, il chiosco istantaneo è imbattibile. Non è che uno sia meglio dell'altro: servono a scale diverse.
Voglio darti il terzo campo, per completezza. E poi, certo, resta il campo dove è nato: i calcoli pesanti dentro il browser. I programmi di grafica e disegno, i giochi complessi, il montaggio di immagini e video dentro la pagina, gli strumenti professionali che una volta esistevano solo come programmi da installare e che oggi girano dentro il browser. Lì WebAssembly fa quello per cui era nato: dare al browser la potenza di calcolo che JavaScript, da solo, non poteva raggiungere. Un campo maturo, solido, dove è ormai una realtà quotidiana per moltissime applicazioni professionali.
Voglio darti la lezione generale, perché insegna a valutare le tecnologie. La lezione è che una tecnologia non si giudica da quanto è affascinante in teoria, ma da dove vince in pratica. WebAssembly non serve per tutto, e non è il futuro di ogni cosa. Ma ha tre o quattro nicchie dove è, oggi, la scelta migliore in assoluto: le estensioni sicure, il codice leggero che parte in un istante, i calcoli pesanti nel browser. Riconoscere le nicchie precise in cui uno strumento eccelle, invece di lasciarsi trascinare dall'entusiasmo generico, è ciò che distingue chi lo usa bene da chi lo insegue e basta.
Per oggi ci fermiamo qui. Abbiamo visto dove WebAssembly vince davvero. Primo, nei sistemi che eseguono codice altrui: il recinto lascia entrare estensioni di chiunque restando al sicuro, forse il suo capolavoro. Secondo, ai margini della rete e nelle funzioni su richiesta, perché parte in una frazione di istante, dove ogni millisecondo conta. Rispetto ai contenitori è come un chiosco istantaneo accanto a un grande magazzino: vince nei casi leggeri, brevi e numerosi, ma i due convivono. Terzo, i calcoli pesanti nel browser, il campo dove è nato ed è ormai maturo. La lezione: una tecnologia si giudica da dove vince in pratica, non da quanto affascina in teoria. Nella prossima puntata: ti serve davvero, tra promessa e realtà. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.