(e la domanda sbagliata)
SimCity, Deep Thought e l’arte di tradurre senza capire
Vedo su Facebook uno screenshot di SimCity che gira nel browser. Il post dice: gioco di 34 anni fa, riscritto con l’AI. Chiedo a un chatbot di verificare. Mi restituisce un repository GitHub dettagliatissimo — nome, autore, numero di stelle, linguaggio usato — e nessuno di questi dettagli esiste. URL inventati, fatti confezionati su misura, una narrazione perfettamente coerente costruita sul nulla.
È successo davvero. Non al collega di un amico: a me, ieri sera.
Poi cerco con le mie mani e trovo la storia vera, che è più interessante di quella inventata.
La risposta è TypeScript
Christopher Ehrlich, sviluppatore, ha puntato OpenAI Codex sul codice sorgente originale di SimCity — quello del 1989, assembly portato a C per il progetto OLPC, pieno di bitshift e aritmetica illeggibile. Quattro giorni dopo, il gioco gira nel browser. Tradotto in TypeScript. Senza che Ehrlich abbia letto una sola riga del codice originale.
Il trucco non è fidarsi dell’AI. È non fidarsi.
Ehrlich ha scritto un ponte che chiama il C originale e ha costruito test che verificano, proprietà per proprietà, che il TypeScript si comporti in modo identico. L’agente genera, i test bocciano o promuovono, l’agente rigenera. Ciclo dopo ciclo, quattro giorni, abbonamento da 200 dollari al mese.
Garry Tan, venture capitalist, ne ha scritto un pezzo che si chiude con “Se sei ancora scettico riguardo al coding tramite IA, non stai prestando attenzione”. Toni da fine della storia. Stessa retorica dei CD-ROM interattivi nel 1997, dei tablet nel 2007, della realtà virtuale nel 2017. Cambiano i mezzi, il copione resta.
Ma sotto la retorica, qui c’è qualcosa di vero. E merita di essere guardato con attenzione.
La risposta è 42
In Guida galattica per autostoppisti, Deep Thought — il secondo computer più grande dell’universo — impiega sette milioni e mezzo di anni per calcolare la Risposta Definitiva alla Vita, all’Universo e a Tutto Quanto. La risposta è 42. Perfetta. Incontestabile. E del tutto inutile, perché nessuno aveva formulato la domanda giusta.
Douglas Adams scriveva nel 1979. Non poteva sapere che stava descrivendo il funzionamento di un agente AI nel 2026.
Codex non capisce il codice di SimCity. Non sa cosa sia una zona residenziale, non ha intuizione su cosa faccia un bitshift nel contesto di una simulazione urbana. Produce sequenze di token che, statisticamente, somigliano a traduzioni corrette da C a TypeScript. Poi i test decidono se lo sono davvero. È forza bruta con euristica sofisticata — non intelligenza, non comprensione. Esplorazione.
Il colpo di genio di Ehrlich non è usare l’AI. È aver capito che il problema non era tradurre, ma verificare. Ha formulato la domanda giusta: non “capisci questo codice?” ma “il tuo output produce gli stessi risultati di questo codice?”. Deep Thought al contrario.
Adams ci avrebbe scritto un capitolo. Probabilmente l’avrebbe chiamato The Compiler at the End of the Universe.
La macchina del tempo funziona
Fermiamoci un momento. Prima di discutere cosa manca, guardiamo cosa c’è.
Il codice di SimCity era morto. Non morto nel senso poetico — morto nel senso pratico. Assembly del Commodore 64 tradotto in C per un progetto educativo del 2008, pieno di variabili a una lettera e aritmetica a bitshift che ha senso solo se pensi in registri a 8 bit. Nessun programmatore sano di mente lo avrebbe riscritto a mano. Troppo lavoro, troppo poco ritorno, troppi pezzi incomprensibili senza la mappa mentale di Will Wright.
Quel codice era destinato a restare in un repository GitHub come un fossile in una teca. Visitabile, ma non utilizzabile.
E invece adesso gira nel browser. Puoi giocarci. Funziona.
Non è un dettaglio. È una forma di restauro digitale — e come ogni restauro, il fatto che il restauratore non sia Michelangelo non toglie nulla al risultato. L’affresco è di nuovo visibile. Poi possiamo discutere della qualità dello stucco.
Don Hopkins, che ha mantenuto Micropolis per decenni, documenta la stratigrafia del codice con la cura di un archivista: Commodore 64, Mac, SunOS, Unix con X11 e TCL/Tk, OLPC, C++ con Emscripten, SvelteKit. Ogni strato porta tracce del precedente, come un palinsesto medievale dove raschiavi la pergamena per riscriverci sopra, ma il testo vecchio restava visibile in controluce.
Codex ha aggiunto uno strato nuovo. Non il più elegante. Ma quello che ha rimesso il testo in circolazione.
Pensate a quanti programmi degli anni ’80 e ’90 sono sepolti in codebase illeggibili — giochi, strumenti scientifici, simulazioni didattiche. Codice che nessuno riscriverà a mano perché il rapporto costo-beneficio non regge. Fino a ieri, quel patrimonio era perduto. Oggi ha una possibilità.
Tradurre senza capire (per adesso)
I filologi lo sanno da sempre: tradurre fedelmente e capire sono due operazioni diverse.
San Girolamo, quando traduceva la Bibbia in latino, conosceva l’ebraico e il greco, litigava con Rufino sulle scelte lessicali. La Vulgata è stata il testo più influente d’Occidente per un millennio, anche perché dietro c’era comprensione profonda.
Codex non è San Girolamo. Non sa cosa sia una zona residenziale, non ha intuizione su cosa faccia un bitshift nel contesto di una simulazione urbana. Produce codice che funziona, verificato dai test, ma non sa perché funziona. È un traduttore cieco con un correttore di bozze eccellente.
Ma — e questo è il punto che lo scetticismo facile rischia di perdere — anche i traduttori ciechi hanno un valore enorme quando l’alternativa è nessuna traduzione.
La Stele di Rosetta non è stata decifrata con la comprensione profonda dell’egizio antico. Champollion ha usato il greco come ponte — esattamente come Ehrlich ha usato i test come ponte verso il C originale. La comprensione è arrivata dopo, gradualmente, su un testo che prima era muto.
Qui si apre una prospettiva che Garry Tan, troppo occupato a dichiarare morte le vecchie regole, non vede — ma che è più interessante del suo entusiasmo: il codice tradotto oggi è un punto di partenza, non un punto d’arrivo. TypeScript nel browser è leggibile. Un programmatore può aprirlo, studiarlo, capire le scelte di Wright attraverso la traduzione. E fra cinque, dieci, trent’anni? Modelli che non si limitano a tradurre token per token ma che comprendono la semantica del codice — che sanno che quel bitshift è un calcolo di densità abitativa — potrebbero prendere la traduzione grezza di Ehrlich e raffinarla, ottimizzarla, renderla leggibile come se Wright l’avesse riscritta lui.
Il codice non sarà perfetto. Farà cose inutili, avrà ridondanze, porterà cicatrici della traduzione meccanica. Ma sarà vivo — e il vivo si può migliorare. Il morto no.
Quis custodiet ipsos custodes?
Resta un problema, e non è piccolo.
Ehrlich ha funzionato perché lui ha scritto i test. Lui — un essere umano che sa cos’è un compilatore, cos’è un ponte tra linguaggi, cosa significa equivalenza funzionale. L’AI generava, i test giudicavano, e dietro i test c’era una mente che sapeva cosa chiedere.
Ma se domani anche i test li scrive Codex? Se il verificatore è generato dallo stesso tipo di macchina che produce il verificato? Giovenale lo chiedeva duemila anni fa: quis custodiet ipsos custodes? — chi sorveglia i sorveglianti? Non è retorica. È il problema tecnico più serio di tutto questo entusiasmo.
Oggi il mestiere di Ehrlich non è scrivere TypeScript. È specificare vincoli. La competenza si è spostata dalla generazione della soluzione alla formulazione della domanda — ed è uno slittamento enorme, che nessuno sta insegnando. Non nelle scuole di informatica, non nei bootcamp, non nei corsi per docenti dove mi siedo io da quindici anni. Insegniamo ancora a scrivere codice. Dovremmo insegnare a scrivere test per codice che non abbiamo scritto noi.
Il giorno in cui anche quella competenza sarà delegata, avremo un sistema che si autoverifica — e la parola tecnica per un sistema che si autoverifica senza riferimento esterno è autoreferenziale. Che è esattamente il problema del mio chatbot mentitore: coerenza interna perfetta, aggancio alla realtà zero.
Il debito che sai di avere
C’è però una differenza cruciale tra il codice di Ehrlich e il disastro medio del software aziendale.
Il debito tecnico classico si accumula per negligenza. Nessuno decide di scrivere codice illeggibile: succede, sprint dopo sprint, scadenza dopo scadenza, finché un giorno apri un file e non sai più cosa fa. È un debito contratto di nascosto, senza registro, senza piano di rientro.
Il codice tradotto da Codex è diverso. È un debito strategico — contratto a occhi aperti, sapendo esattamente cosa stai prendendo in prestito e cosa stai rinunciando a capire. Come un mutuo: se sai quanto devi, a chi lo devi e quando scade, è gestibile. Se non lo sai, è un subprime.
Ehrlich sa che il suo TypeScript è opaco. Sa che porta le cicatrici del C originale. Sa che nessuno lo “possiede” nel senso profondo. Ma sa anche che funziona, che è testato, e che domani qualcuno — umano o macchina — potrà migliorarlo. Ha firmato il contratto leggendo le clausole.
Il problema non è contrarre debito. È contrarlo senza saperlo. E il vero rischio dell’AI nel software non è il codice di Ehrlich — verificato, consapevole, strategico. È il codice di chi copia l’output di un chatbot senza test, senza ponte, senza ancore. Quello è il subprime.
Quello che Facebook non ti dice
Il mio chatbot — quello che mi ha inventato un repository, un autore, una storia completa — ha fatto l’esatto opposto di Ehrlich. Ha prodotto una risposta plausibile senza nessun test di verifica. Deep Thought senza nemmeno i 7,5 milioni di anni di calcolo. Risposta immediata, perfettamente formattata, totalmente falsa.
La simmetria è istruttiva. Stesso tipo di tecnologia, due usi opposti:
Ehrlich: domanda giusta (i test), risposta verificata, risultato utile — codice resuscitato. Chatbot: domanda sbagliata (dimmi cosa sai), risposta inventata, risultato dannoso — fiducia tradita.
La differenza non è nel modello. È nell’architettura intorno al modello. I test di Ehrlich sono l’ancora alla realtà. Il mio chatbot non aveva ancore. Galleggiava — e io con lui.
Adams, di nuovo, l’aveva previsto. Nella Guida, il computer che costruiscono dopo Deep Thought per trovare la Domanda è la Terra stessa — un esperimento di dieci miliardi di anni. Lento, caotico, pieno di errori. Ma alla fine avrebbe funzionato.
SimCity nel browser non è la risposta definitiva. È la Terra di Adams — un esperimento imperfetto che ha bisogno di tempo per maturare. Ma intanto gira. E il codice di Will Wright, che stava morendo in un repository dimenticato, oggi è di nuovo giocabile.
A volte 42 è una risposta sufficiente. Basta sapere che non è quella definitiva.
Riferimenti:
- Ehrlich, C. (2026). Port di SimCity da C a TypeScript con OpenAI Codex. Tweet originale: https://x.com/ccccjjjjeeee/status/2021160492039811300
- Tan, G. (2026). “AI Just Ported SimCity in 4 Days Without Reading the Code”. Garry’s List, 10 febbraio.
- Hopkins, D. Repository MicropolisCore: https://github.com/SimHacker/MicropolisCore — storia completa del progetto con lineage del codice.
- Repository Micropolis originale: https://github.com/stargo/micropolis
- Adams, D. (1979). The Hitchhiker’s Guide to the Galaxy. Pan Books.
- Giovenale, Satire, VI, 347-348. Quis custodiet ipsos custodes?
- Knuth, D. E. (1984). “Literate Programming”. The Computer Journal, 27(2), 97-111. Sul contrasto tra codice che funziona e codice che si racconta.
- Lehman, M. M. (1980). “Programs, Life Cycles, and Laws of Software Evolution”. Proceedings of the IEEE, 68(9). Sulla natura dei sistemi che devono evolvere per non morire.

Leave a comment