← Tutti gli episodi
Copertina di Mettere ordine: dallo spaghetti alla struttura
Stagione 20 · Episodio 005

Mettere ordine: dallo spaghetti alla struttura

29 agosto 2026 5:27
0:00 5:27

Ciao, e benvenuto nella quinta puntata della ventesima stagione. Nelle scorse puntate siamo saliti in alto sulla scala, fino ai linguaggi vicini al pensiero umano. Ma salire di livello non bastava: bisognava anche imparare a scrivere programmi in modo ordinato e comprensibile. Perché nei primi tempi, anche con i linguaggi ad alto livello, i programmi potevano diventare dei grovigli caotici e ingestibili. Oggi raccontiamo una rivoluzione più silenziosa ma altrettanto importante: il passaggio dal codice a spaghetti alla struttura ordinata. La disciplina che rese i programmi finalmente leggibili e mantenibili.

Partiamo dal problema, che aveva un nome pittoresco e azzeccato: il codice a spaghetti. Nei primi programmi, il flusso dell'esecuzione poteva saltare liberamente da un punto qualsiasi a un altro punto qualsiasi del programma. Da qui salto lì, poi da lì salto laggiù, poi torno indietro, in un intrico di salti che attraversavano il codice in ogni direzione. Seguire il filo di cosa faceva un programma simile era un incubo: dovevi rincorrere i salti avanti e indietro, perdendoti in un groviglio senza capo né coda, esattamente come cercare di seguire un singolo spaghetto in un piatto aggrovigliato. Questi programmi erano quasi impossibili da capire, da correggere, da modificare senza rompere tutto.

Ci si rese conto che questa libertà di saltare ovunque, per quanto potente, era la radice del caos, e nacque un'idea disciplinante e liberatoria insieme. L'idea fu: rinunciamo volontariamente ai salti selvaggi, e costruiamo i programmi solo con pochi modi ordinati di organizzare il flusso, dei mattoni puliti e prevedibili. Invece di saltare dove ci pare, ci imponiamo una disciplina che rende il flusso sempre chiaro e seguibile. È un caso interessante in cui rinunciare a un po' di libertà porta a un enorme guadagno di chiarezza. Vediamo quali sono questi pochi mattoni ordinati, perché sono sorprendentemente semplici.

Il primo mattone è la sequenza: fai una cosa, poi la successiva, poi quella dopo, in ordine, dall'alto verso il basso, senza salti. Il secondo mattone è la scelta: se una certa condizione è vera, fai questo, altrimenti fai quest'altro. Un bivio ordinato, non un salto caotico. Il terzo mattone è la ripetizione: ripeti questa cosa finché una certa condizione resta vera, un ciclo controllato. Con questi tre soli mattoni, sequenza, scelta e ripetizione, si può costruire qualsiasi programma, per quanto complesso, senza mai bisogno dei salti selvaggi. Tre modi ordinati di comporre il flusso, che sostituiscono il caos con la chiarezza.

C'è un secondo pilastro di questa messa in ordine, altrettanto importante, che riprende un tema caro al podcast: raggruppare il codice in pezzi con un nome. Invece di avere un unico gigantesco blocco di istruzioni, si prese l'abitudine di raggruppare le operazioni in pezzi distinti, ciascuno con un nome che dice cosa fa, e ciascuno con un compito preciso. Vuoi calcolare qualcosa? Crei un pezzo chiamato con il nome di quel calcolo, e ogni volta che ti serve, lo richiami per nome, invece di riscriverlo. Ricordi la filosofia di Linux, i piccoli strumenti che fanno una cosa sola e si combinano? È lo stesso spirito, applicato dentro un programma: scomporlo in pezzetti nominati, ognuno con un suo compito chiaro, che si richiamano l'un l'altro.

Voglio farti apprezzare i vantaggi profondi di questo modo di organizzare, perché trasformò il modo di programmare. Primo: leggibilità. Un programma fatto di mattoni ordinati e di pezzi nominati si legge e si capisce, perché il flusso è chiaro e ogni pezzo ha uno scopo dichiarato. Secondo: riuso. Un pezzo nominato lo scrivi una volta e lo richiami ovunque serva, senza ripeterti. Terzo: manutenzione. Se qualcosa non va, sai dove guardare, nel pezzo giusto, e puoi correggerlo lì senza toccare il resto. Un programma strutturato è come un testo ben organizzato in capitoli e paragrafi, invece di un unico muro di parole indistinto: infinitamente più facile da leggere, navigare e correggere.

Voglio elevare tutto questo a una lezione più generale, perché va oltre la tecnica ed è saggezza di design. Qui incontriamo un principio che abbiamo visto tante volte: la struttura, la disciplina, il vincolo consapevole, non limitano ma liberano, perché rendono le cose comprensibili e gestibili. Rinunciare ai salti selvaggi in cambio di pochi mattoni ordinati; scomporre un tutto ingestibile in pezzi piccoli e nominati. Sono forme della stessa idea profonda: dominare la complessità dandole una struttura chiara, invece di lasciarla proliferare nel caos. È una delle lezioni più importanti dell'informatica, e forse della gestione di qualsiasi cosa complessa: l'ordine imposto con criterio è ciò che rende il complesso maneggiabile.

Per oggi ci fermiamo qui. Salire di livello non bastava: i programmi potevano diventare grovigli caotici, il famoso codice a spaghetti, pieno di salti che rendevano impossibile seguire il filo. La rivoluzione della struttura fu rinunciare ai salti selvaggi in cambio di pochi mattoni ordinati, la sequenza, la scelta e la ripetizione, e raggruppare il codice in pezzi nominati con un compito preciso. Ne guadagnarono leggibilità, riuso e facilità di manutenzione. È la stessa lezione profonda vista tante volte: la struttura e il vincolo consapevole non limitano, ma liberano, dominando la complessità. Nella prossima puntata scopriamo un nuovo modo di pensare i programmi: gli oggetti. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.