Vai al contenuto principale
BiografiaStoria dell’informaticaPrincipiante

Ken Thompson: da Unix a Go, la semplicità come metodo

Come Ken Thompson ha collegato Unix, il linguaggio B e Go attraverso la stessa ricerca di semplicità, efficienza e strumenti componibili.

Pubblicato 24 agosto 2026Lettura : 5 minDi Yann Bastien
Ken Thompson a sinistra accanto a Dennis Ritchie nel 1973
Mostra indice
  1. Da Multics a Unix
  2. Quando i vincoli favoriscono la semplicità
  3. Dal linguaggio B alla nascita di C
  4. Espressioni regolari, Plan 9 e UTF-8
  5. «Reflections on Trusting Trust»
  6. Perché Thompson tornò ai linguaggi con Go
  7. Un’eredità fondata sulle relazioni tra strumenti
  8. Cronologia
  9. Domande frequenti
  10. Ken Thompson creò Unix da solo?
  11. Qual è la differenza tra i contributi di Thompson e Ritchie?
  12. B è ancora usato?
  13. Thompson inventò le pipe Unix?
  14. Qual è il legame tra Unix e Go?

Gran parte dell’informatica moderna poggia su un’idea che Ken Thompson mise in pratica alla fine degli anni Sessanta: un sistema potente non deve essere complicato se i suoi elementi più semplici sanno lavorare insieme. L’idea struttura Unix, attraversa il linguaggio B, prepara C e riappare decenni dopo in Go.

Thompson non seguì un unico programma teorico. Costruì strumenti per problemi concreti: usare interattivamente un piccolo computer, scrivere un sistema con pochissima memoria, elaborare testo o compilare rapidamente software di grandi dimensioni. La continuità è nel metodo: meccanismi ridotti, comprensibili e componibili.

Da Multics a Unix

Kenneth Lane Thompson nacque nel 1943 a New Orleans. Studiò alla University of California, Berkeley, e nel 1966 entrò ai Bell Labs, dove partecipò a Multics.

Multics mirava a offrire a molti utenti un ambiente interattivo, ma divenne complesso e costoso. Quando Bell Labs abbandonò il progetto nel 1969, Thompson volle conservare le qualità dell’interazione su una macchina molto più piccola.

Su un PDP-7 sviluppò nel 1969 un file system, una shell e le prime funzioni di ciò che sarebbe diventato Unix. Dennis Ritchie si unì presto al lavoro.

Quando i vincoli favoriscono la semplicità

Il PDP-7 aveva poca memoria. Ogni astrazione doveva giustificare il proprio costo. Thompson preferì piccoli programmi specializzati e la possibilità di usare l’uscita di uno come ingresso di un altro.

Doug McIlroy aveva promosso l’idea dei flussi; Thompson implementò le pipe in Unix nel 1973. Il carattere | permise di collegare comandi e costruire piccoli programmi da elementi riutilizzabili. Il principio influenza ancora sistemi Unix e pipeline di dati.

Dal linguaggio B alla nascita di C

Le prime versioni di Unix erano in assembler e dipendevano strettamente dal processore. Thompson creò B, adattamento di BCPL abbastanza piccolo per le macchine disponibili.

B mostrò limiti sul PDP-11. Dennis Ritchie aggiunse tipi e migliorò il modello dei dati, arrivando a C nei primi anni Settanta. Thompson creò B e il contesto tecnico; Ritchie fu il principale progettista di C.

La collaborazione permise di riscrivere gran parte di Unix in C, rendendolo molto più portabile. Il sistema e il linguaggio si diffusero insieme. La biografia di Dennis Ritchie e la storia di C approfondiscono questa evoluzione.

Espressioni regolari, Plan 9 e UTF-8

Thompson sviluppò anche l’editor ed e contribuì a diffondere le espressioni regolari come notazione pratica per descrivere schemi di testo.

Lavorò poi a Plan 9, sistema distribuito sperimentale dei Bell Labs. Nel 1992 progettò con Rob Pike UTF-8, codifica Unicode compatibile con ASCII che sarebbe diventata dominante sul Web.

Questi contributi condividono una domanda: come creare una rappresentazione abbastanza semplice da essere usata ovunque, ma abbastanza estensibile per esigenze più ampie?

«Reflections on Trusting Trust»

Nel 1983 Thompson e Ritchie ricevettero il premio Turing. Nella conferenza Reflections on Trusting Trust, Thompson descrisse un compilatore modificato capace di inserire segretamente una backdoor in un programma di login e di riprodurre la modifica nelle versioni successive del compilatore.

La dimostrazione rivela un limite fondamentale della fiducia nel software: verificare il sorgente non basta se la catena di strumenti che lo trasforma è compromessa. Build riproducibili e sicurezza della supply chain affrontano ancora questo problema.

Perché Thompson tornò ai linguaggi con Go

Thompson entrò in Google nel 2006 e incontrò un diverso problema di scala: enormi repository, compilazioni lente e concorrenza difficile da gestire.

Nel 2007 Thompson, Rob Pike e Robert Griesemer iniziarono a definire Go. Il linguaggio privilegia compilazioni rapide, formattazione standard, gestione automatica della memoria e concorrenza integrata. La sintassi è volutamente ridotta per mantenere leggibile il codice di grandi squadre.

Go non copia C e non sostituisce Unix: trasferisce un metodo in un altro contesto. Pubblicato come open source nel 2009, ha trovato spazio nei servizi di rete, nelle infrastrutture e nei sistemi distribuiti.

Un’eredità fondata sulle relazioni tra strumenti

Unix vive in Linux, macOS, BSD, Android e nell’infrastruttura dei server. C resta fondamentale nei sistemi. UTF-8 consente lo scambio globale di testo. Go è diffuso nel cloud.

Il filo comune non è un elenco di invenzioni, ma un modo di costruire: componenti che fanno poche cose, restano comprensibili e possono essere combinati tramite interfacce chiare.

Cronologia

  • 1943: nascita di Kenneth Lane Thompson a New Orleans.
  • 1966: ingresso ai Bell Labs e partecipazione a Multics.
  • 1969: prima versione di Unix sul PDP-7.
  • 1969–1970: sviluppo di B da BCPL.
  • 1973: pipe in Unix e riscrittura del sistema in C con Dennis Ritchie.
  • 1983: premio Turing con Ritchie e Reflections on Trusting Trust.
  • 1992: progettazione di UTF-8 con Rob Pike.
  • 2006: ingresso in Google.
  • 2007: inizio di Go con Robert Griesemer e Rob Pike.
  • 2009: pubblicazione open source di Go.

Domande frequenti

Ken Thompson creò Unix da solo?

Scrisse la prima versione nel 1969 e fu il principale motore iniziale. Dennis Ritchie e altri ricercatori dei Bell Labs contribuirono poi a renderlo un’opera collettiva.

Qual è la differenza tra i contributi di Thompson e Ritchie?

Thompson creò Unix e B; Ritchie fu il principale progettista di C e partecipò alla riscrittura di Unix in C.

B è ancora usato?

Non comunemente. È importante soprattutto come predecessore diretto di C.

Thompson inventò le pipe Unix?

Doug McIlroy formulò e sostenne l’idea; Thompson la implementò in Unix nel 1973.

Qual è il legame tra Unix e Go?

Non c’è una discendenza tecnica diretta. Entrambi riflettono però la preferenza di Thompson per concetti semplici e componibili.

Questo articolo ti è stato utile?

Fonti e riferimenti

Raccolta

Linguaggi di programmazione

17 / 26

  1. 01Grace Hopper: dai primi compilatori a COBOL
  2. 02John Backus: FORTRAN, la notazione BNF e il rifiuto del codice macchina
  3. 03Dennis Ritchie: il linguaggio C al cuore di Unix
  4. 04FORTRAN: dimostrare che un compilatore può competere con l'assembly
  5. 05Il linguaggio C: rendere portabili i sistemi senza nascondere la macchina
  6. 06Niklaus Wirth: da Pascal a Oberon, progettare con la semplicità
  7. 07Bjarne Stroustrup: progettare C++ senza rinunciare alle prestazioni
  8. 08Pascal: imparare a programmare rendendo visibile la struttura
  9. 09C++: da C with Classes al C++ moderno
  10. 10Programmazione orientata agli oggetti: oggetti, messaggi e astrazioni riutilizzabili
  11. 11Guido van Rossum: creare Python per rendere il codice leggibile
  12. 12Brendan Eich: JavaScript, dal prototipo Netscape allo standard del Web
  13. 13James Gosling: l'ingegnere all'origine di Java
  14. 14Python: leggibilità, batterie incluse e un ecosistema globale
  15. 15Java: scrivere una volta, eseguire ovunque
  16. 16JavaScript: il linguaggio che ha reso interattivo il Web
  17. 17Ken Thompson: da Unix a Go, la semplicità come metodo
  18. 18John McCarthy: Lisp e l'idea di programmare con i simboli
  19. 19Alan Kay: Smalltalk e il computer come medium personale
  20. 20Barbara Liskov: l'astrazione che ha reso modulare il software
  21. 21Robin Milner: ML, dimostrazione assistita e linguaggi dell'interazione
  22. 22Brian Kernighan: AWK, Unix e l'arte di spiegare il codice
  23. 23Anders Hejlsberg: da Turbo Pascal a C# e TypeScript
  24. 24Larry Wall: Perl, il linguaggio che ha collegato gli strumenti di Internet
  25. 25Yukihiro Matsumoto: Ruby e la felicità del programmatore
  26. 26Rasmus Lerdorf: PHP e la democratizzazione del Web dinamico
BiografiaStoria dell’informaticaPrincipiante

Dennis Ritchie: il linguaggio C al cuore di Unix

Come Dennis Ritchie progettò il linguaggio C e contribuì a Unix, due fondamenta che resero il software di sistema più portabile.

3 agosto 20267 min