Lezione 1 di 7 · 10 min di lettura

Benvenuto a bordo

Cos'è Gleam, perché vale la pena impararlo e come funziona questo percorso. Poi installiamo tutto il necessario.

Cosa stai per imparare

Stai per imparare Gleam, un linguaggio di programmazione piccolo, amichevole e sorprendentemente solido. Serve a scrivere programmi che non si rompono: servizi web, strumenti da riga di comando, sistemi che devono restare accesi per anni, e perfino pagine web interattive.

Gleam ha tre caratteristiche che lo definiscono, e che incontrerai in ogni lezione:

  1. È funzionale. I programmi si costruiscono combinando funzioni, e i dati non si modificano mai: se vuoi un valore diverso, ne crei uno nuovo.
  2. È tipizzato staticamente. Il compilatore controlla prima dell’esecuzione che ogni pezzo di codice riceva il tipo di dato giusto. Niente sorprese a programma avviato.
  3. Gira sulla BEAM. Il tuo codice viene tradotto in Erlang e fatto girare dalla stessa macchina virtuale che da decenni tiene in piedi centralini telefonici e servizi di messaggistica usati da miliardi di persone. (E volendo, Gleam sa anche tradursi in JavaScript.)
Dettagli nerd Cos'è una macchina virtuale?

Il processore del tuo computer capisce solo il suo codice macchina: istruzioni elementari codificate come numeri binari, diverse per ogni famiglia di processori (x86-64 nella maggior parte dei PC, ARM negli smartphone e nei Mac recenti).

Una macchina virtuale è un programma che finge di essere un processore: esegue un suo codice semplificato, il bytecode, uguale su ogni computer. È lei, poi, a tradurlo per il processore vero. Il vantaggio: lo stesso bytecode gira identico su Linux, macOS e Windows, e la macchina virtuale può offrire servizi che un processore non ha, come far girare milioni di piccoli processi contemporaneamente e riavviare in automatico quelli che si guastano.

La BEAM è la macchina virtuale di Erlang, un linguaggio nato negli anni ‘80 per le centrali telefoniche, dove “il sistema si è bloccato” non era un’opzione. Gleam ne eredita tutta la robustezza.

Perché proprio Gleam?

Ci sono tre motivi per cui questo percorso ha senso, anche se non hai mai programmato:

  1. È piccolo. Gleam ha pochissime regole, e i suoi autori le tengono poche di proposito. Niente classi, niente ereditarietà, niente dieci modi diversi di fare la stessa cosa: il linguaggio intero ti sta in testa.
  2. È gentile. Gleam non ha null, non ha eccezioni, non fa conversioni nascoste tra tipi. Quando qualcosa non va, il compilatore te lo dice prima di avviare il programma, con messaggi chiari e spesso con il suggerimento giusto.
  3. È pratico. Arriva con tutto incluso: un unico programma, gleam, crea progetti, compila, esegue, formatta il codice, scarica librerie e lancia i test.

Come funziona questo percorso

Questo non è un manuale da consultare: è un percorso. Le lezioni vanno lette in ordine, perché ognuna usa quello che hai imparato in quella prima. Dentro ogni lezione troverai:

  • Codice colorato che puoi copiare con un click (il bottone “Copia” in alto a destra di ogni blocco).
  • Riquadri come quelli qui sopra: consigli, curiosità, avvertimenti, e i riquadri “Se vieni da altri linguaggi” per chi ha già programmato.
  • Dettagli nerd: riquadri chiusi che si aprono con un click e spiegano cosa succede dentro il computer (memoria, bit, macchina virtuale, compilatore…). Non servono per andare avanti, ma è lì che si capisce davvero come funziona la macchina.
  • Quiz da fare direttamente qui nell’app, con la spiegazione subito dopo.
  • Esercizi da fare sul tuo computer: scrivi il programma, lo esegui, e torni qui a dire cosa ha stampato. L’app controlla se hai fatto centro.

Niente sandbox nel browser, e non è una mancanza: il compilatore vero, sul tuo computer, è lo strumento con cui lavorerai sempre. Tanto vale fare amicizia subito.

Proviamo subito un quiz, così vedi come funziona:

Quiz

Cosa fa il compilatore di Gleam quando lanci un programma?

Cosa installare

Per programmare in Gleam servono due cose:

  • Gleam, cioè il programma gleam: compilatore, gestore di progetti e di librerie, formattatore, tutto in uno.
  • Erlang, cioè la BEAM su cui girerà il tuo codice. Insieme a Erlang conviene installare rebar3, lo strumento di build di Erlang, che Gleam usa quando una libreria contiene codice Erlang.

Le istruzioni ufficiali, sempre aggiornate, sono su gleam.run/install: scegli il tuo sistema operativo e segui i passaggi. Qui trovi i casi più comuni.

Linux

Su Arch Linux (e derivate come Manjaro, EndeavourOS) basta un comando:

terminale
sudo pacman -S gleam erlang rebar3

Su Ubuntu 25.04 o più recente, Erlang e rebar3 arrivano da apt:

terminale
sudo apt install erlang-dev rebar3

Le versioni più vecchie di Ubuntu hanno un Erlang troppo datato: in quel caso segui le istruzioni del sito ufficiale, che propone alternative come il version manager asdf o Homebrew.

Per gleam stesso, sulle distribuzioni che non lo pacchettizzano, scarica l’archivio precompilato per il tuo processore dalla pagina dei rilasci su GitHub (github.com/gleam-lang/gleam/releases), estrailo e mettilo in una cartella del PATH:

terminale
tar xf gleam.tar.gz
chmod +x gleam
mv gleam ~/.local/bin/
Dettagli nerd Cos'è il PATH?

Quando scrivi gleam nel terminale, la shell (il programma che interpreta i tuoi comandi) non cerca in tutto il disco: scorre una lista di cartelle, in ordine, e lancia il primo file eseguibile con quel nome che trova. Quella lista è la variabile d’ambiente PATH: una stringa di cartelle separate da : (su Windows da ;). Puoi vederla con echo $PATH.

Su molte distribuzioni ~/.local/bin è già nel PATH. Se non lo è, aggiungilo con echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc (o ~/.zshrc se usi zsh) e apri un terminale nuovo: il terminale già aperto ha letto la sua copia della lista all’avvio e non si accorge delle modifiche.

macOS

Con Homebrew è un comando solo, e Homebrew si porta dietro anche Erlang:

terminale
brew install gleam

Se vuoi installare Erlang e rebar3 esplicitamente: brew install erlang rebar3.

Windows

Con winget, il gestore di pacchetti già incluso in Windows, apri PowerShell e lancia:

terminale
winget install --id Gleam.Gleam
winget install --id Erlang.ErlangOTP

Poi chiudi e riapri il terminale, così il nuovo PATH viene letto.

Verifica che tutto funzioni

Apri un terminale e scrivi:

terminale
gleam --version

Dovresti vedere qualcosa del genere (il numero cambia da versione a versione):

output
gleam 1.18.1

Poi controlla che ci sia anche Erlang:

terminale
erl -version
output
Erlang (SMP,ASYNC_THREADS) (BEAM) emulator version 15.2.7.4

Il numero stampato da erl è la versione dell’emulatore della BEAM, non quella di Erlang/OTP: non ti serve ricordarlo, basta che il comando risponda. Questo corso è verificato con Gleam 1.18 ed Erlang/OTP 27 (2026). Una versione più recente va benissimo.

Se il terminale risponde “comando non trovato”, il problema è quasi sempre il PATH: rileggi i passaggi qui sopra e ricorda di aprire un nuovo terminale dopo l’installazione.

Esercizio · sul tuo computer

Il tuo primo comando

  1. Installa Gleam ed Erlang seguendo le istruzioni per il tuo sistema.
  2. Apri un terminale e lancia gleam --version ed erl -version.
  3. Crea una cartella dove metterai tutti gli esercizi di questo corso, per esempio ~/learn-gleam. Ci torneremo continuamente.

Quando entrambi i comandi rispondono con un numero di versione, hai finito. Il compilatore è installato e ti aspetta.

Cosa succede adesso

Nella prossima lezione scriviamo il primo programma. Sarà piccolo, ma lo smonteremo pezzo per pezzo, e alla fine saprai cosa fa ogni singola parola sullo schermo.