Terry Tao riporta in vita 25 anni di applets con coding agents moderni
Terry Tao, matematico con medaglia Fields, ha usato coding agents moderni per portare una ventina di applets didattici scritti in Java 1.0 nel 1999 a Javascript funzionante nel 2026. Gli applets (per visualizzare oggetti come honeycombs o insiemi di Besicovitch) erano diventati inutilizzabili quando i browser hanno smesso di supportare quella versione di Java. In poche ore l’agente ha completato la migrazione, con perfino miglioramenti grafici (l’applet di Besicovitch ora è a colori, l’originale era monocromo).
Tao ha trovato un solo bug minore nel codice generato (gestione di un evento drag), mentre l’agente ne ha identificati due nel codice originale che Tao non aveva mai notato. Dopo questo successo, ha chiesto all’agente di costruire da zero un visualizzatore per la relatività speciale che nel 1999 aveva dovuto abbandonare per complessità. Dopo un paio d’ore di conversazione, l’app che aveva in mente 27 anni fa ora esiste e gira. Lo stesso giorno ha aggiunto un visualizzatore per la congettura di Gilbreath, a corredo di un paper appena pubblicato.
Perché ti riguarda. Tao non è un marketer: è un matematico che lavora su problemi difficili e ha appena dimostrato che gli agenti di coding funzionano su codice vero, vecchio e nuovo. La sua osservazione più interessante: siccome questi visualizzatori sono ausili secondari e non componenti critici, il rischio di bug generati dall’AI è accettabile. È una distinzione che vale per molti casi d’uso: dove l’errore non è catastrofico, la velocità e il recupero di progetti abbandonati battono la perfezione.
Nel dettaglio
Il contesto: applets abbandonati e progetti troppo complessi
Tao ha iniziato a scrivere applets Java per i suoi corsi di analisi complessa e algebra lineare nel 1999, quando insegnare matematica sul web significava programmare a mano ogni visualizzazione. Gli applets funzionavano, ma richiedevano tempo e la manutenzione diventava costosa. Quando i browser hanno smesso di supportare Java 1.0, quel codice è diventato archeologia digitale.
Nel frattempo, aveva anche iniziato a scrivere un editor geometrico per la relatività speciale — sostanzialmente Inkscape ma in spazio di Minkowski — e si era fermato a metà perché la complessità del codice era diventata ingestibile per una persona sola.
Cosa ha fatto l’agente
Tao ha chiesto a un coding agent di portare il vecchio codice Java a Javascript moderno. L’agente ha completato la migrazione di circa due dozzine di applets in poche ore, mantenendo la funzionalità originale e aggiungendo qualche miglioramento grafico (per esempio, la colorazione dell’applet di Besicovitch, che l’originale non aveva). Tao ha trovato un solo bug nella gestione di eventi drag in uno degli applets di analisi complessa. L’agente, invece, ne ha trovati due nel codice originale che Tao non aveva mai notato.
Successivamente, Tao ha chiesto all’agente di costruire da zero l’editor per la relatività speciale che aveva abbandonato. Dopo circa due ore di conversazione (un transcript ridotto è pubblicato sul suo blog), l’app funziona e corrisponde alla visione che aveva nel 1999. Lo stesso giorno, ha aggiunto un visualizzatore per la congettura di Gilbreath, come supplemento interattivo a un paper appena uscito.
Il bilancio di qualità
Tao scrive: «Notoriamente, gli agenti basati su LLM possono creare vari bug evidenti o sottili; ma nel porting di queste due dozzine di applets, ho trovato solo un bug minore, e in effetti l’agente ha identificato due bug nel codice originale di cui non ero a conoscenza, quindi alla fine è stato un pareggio per quanto riguarda la qualità del codice.»
L’osservazione chiave è questa: siccome questi applets sono aiuti visivi secondari, non componenti critici di un argomento matematico, il rischio al ribasso di tali bug è relativamente basso. Non sta dicendo che il codice generato è perfetto, sta dicendo che il trade-off fra velocità e rischio, in questo contesto, pende verso il fare.
Cosa cambia per chi scrive codice con gli agenti
Tao è un osservatore credibile: non vende niente, non promuove uno strumento, racconta cosa ha funzionato su un problema reale. La sua esperienza conferma quello che raccontavamo il 5 luglio con la riscrittura di sqlite-utils: gli agenti moderni chiudono progetti che una persona sola aveva dovuto lasciare a metà per complessità.
Ma introduce anche una distinzione utile: non tutto il codice ha la stessa sensibilità al rischio. Un visualizzatore didattico che serve a capire un concetto, e dove un bug è visibile a occhio, non è la stessa cosa di un sistema di pagamenti o di una pipeline dati critica. Dove l’errore è riconoscibile e il danno è contenuto, la velocità degli agenti diventa utilizzabile. Dove l’errore silenzioso può propagarsi, servono ancora i controlli duri che abbiamo raccontato nelle lezioni del corso.
I limiti
Tao stesso dichiara che si tratta di una versione alpha e invita a segnalare bug. La natura LLM-generata del codice non è nascosta, è dichiarata. L’applet per la relatività speciale è stata playtestata, ma non in modo esaustivo. La trasparenza sul livello di fiducia è parte del metodo.