Ricerca nel sito web

Ho chiesto a Claude di aggiustare il codice rotto di ChatGPT — non mi aspettavo questo risultato


Tempo fa, ho chiesto a Claude, ChatGPT e Gemini di costruire un simulatore del sistema solare. Questo è successo quando Claude era il centro dell'attenzione, e sempre più persone, me compreso, stavano realizzando che forse non dovrebbero limitarsi a ChatGPT.

Quel test ha prodotto uno dei risultati più chiari che abbia mai avuto. Claude ha fatto un lavoro eccellente e ha vinto decisamente. Gemini ha prodotto un codice funzionante ma non particolarmente impressionante e, cosa interessante, ChatGPT ha fallito.

Oggi ho deciso di testare un parametro diverso. Questa volta, invece di scrivere codice, ho incaricato i LLM di fare il debug del codice. In particolare, ho chiesto loro di correggere il codice rotto di ChatGPT.

Il codice rotto di ChatGPT

Un piccolo ma catastrofico bug

Il test precedente aveva un vincolo semplice: niente ripetizioni. Qualunque cosa ottenessimo nella prima risposta era il risultato che giudicavamo. Sfortunatamente per ChatGPT, il codice che ha generato aveva un piccolo, sottile errore che rendeva l'intero programma inutilizzabile.

Ne ho parlato anche nell'articolo originale. ChatGPT ha usato chilometri per alcune distanze, e poi unità astronomiche (AU) per altre. Poi le ha mescolate e ha finito per rappresentare lo spazio e i diametri in AU, ma la distanza tra i pianeti in chilometri. Il risultato è stato che i pianeti erano separati solo da chilometri l'uno dall'altro, il che, su scala del sistema solare, significava che erano praticamente tutti dentro l'uno nell'altro.

Il codice di ChatGPT era ordinato, e aveva implementato tutto, ma, ahimè, questo piccolo errore lo rendeva inutilizzabile a tal punto che non potevo davvero valutare gli altri aspetti del codice.

Scrivere codice e fare il debug del codice sono due abilità diverse. È lo stesso negli esseri umani. Un programmatore potrebbe eccellere nello scrivere codice, mentre un altro eccelle nel fare il debug. Lo stesso concetto si applica anche altrove. Un buon scrittore non è necessariamente un buon editor, e viceversa.

Comunque, passiamo al test. Il prompt è qui sotto. È semplice, e ho fatto in modo di chiedere loro di specificare cosa hanno sistemato così sarebbe evidente per noi.

Ti viene fornito un codice sorgente difettoso per un simulatore del sistema solare. Il codice contiene un errore che rende il simulatore inutilizzabile. I tuoi compiti: Identificare il problema esatto che causa il malfunzionamento. Correggere il codice. Restituire la versione completamente corretta del codice. Spiegare brevemente cosa era rotto e come lo hai risolto. Mantieni la spiegazione concisa e concentrati solo sulla causa principale e sulla risoluzione.

Il test principale, inizialmente, era vedere se Claude riuscisse a sistemare il codice di ChatGPT, ma per aggiungere più contesto, ho chiesto a tutti i soliti sospetti di fare lo stesso.

Gemini ci riesce

Meglio di quanto mi aspettassi

Ultimamente Gemini è stato il peggiore del gruppo, almeno per me. È troppo zelante. Dalla mia esperienza, anche se gli invii del codice perfettamente funzionante e gli chiedi di correggere i bug presenti, inventerà un bug, lo "correggerà" e distruggerà il codice. Quindi ero curioso di vedere se sarebbe stato in grado di individuare il vero bug in un codice che era realmente guasto. Per la cronaca, stiamo usando Gemini 3.1 Thinking.

Con mia sorpresa, Gemini ha centrato il punto. Ha individuato il bug esattamente: il motore di proiezione si aspetta le posizioni in chilometri, ma orbitalPosition e drawOrbit calcolano in unità astronomiche. È arrivato persino a dichiarare il risultato del bug: in effetti, stava sovrapponendo i pianeti sopra il sole, facendo apparire il sistema vuoto.

La correzione che ha usato era corretta anche, e il codice corretto funzionava. Finalmente potevo vedere il simulatore del sistema solare di ChatGPT! Anche tu puoi, l'ho messo su una pagina Vercel.

ChatGPT si redime

L'arco di redenzione

Lo so, lo so. Questo è, dopotutto, il codice difettoso di ChatGPT. Non possiamo chiedere allo stesso chatbot che ha scritto il codice difettoso di trovare l'errore al suo interno. Tuttavia, ChatGPT ha avuto un aumento di prestazioni recentemente. Ha funzionato meglio di Gemini, almeno secondo la mia esperienza. ChatGPT è diventato così fastidioso a un certo punto che sono passato a Claude, ma ora, quando lo uso occasionalmente, tendo a ottenere buoni risultati.

È naturale. Questi modelli vengono costantemente regolati e aggiornati, anche quando il nome della versione non cambia. Dalla mia esperienza, ChatGPT è anche molto più sensibile alle istruzioni personalizzate rispetto ad altri chatbot, quindi le tue istruzioni personalizzate in ChatGPT possono influenzare drasticamente l'esperienza.

Con grande sorpresa, ChatGPT ha azzeccato tutto. Ha trovato la causa principale, ha fornito una spiegazione concisa ma chiara proprio come avevo chiesto e ha corretto il codice. E il codice corretto funziona. Ho usato ChatGPT 5.4 Thinking.

Voglio dedurre qualcosa qui, ma non ne sono del tutto sicuro. ChatGPT ha pensato di più al compito iniziale. Forse tutto il pensiero che è stato messo nel compito prima di generare il codice ha riempito la finestra del contesto e ha contribuito all'errore. Oppure forse è semplicemente sintonizzato in un modo che lo rende migliore nei compiti più piccoli e nelle modifiche rispetto a generare un progetto da zero.

Non sono sicuro. Ma il contrasto è interessante. Tuttavia, ciò che è più interessante è ciò che arriva nel paragrafo successivo.

Claude!

La più grande sorpresa






Il risultato di Claude nell'ultimo test era semplicemente di un altro livello. Era più approfondito, più dettagliato, più ricco di fatti e più scientificamente fattibile. Si distingueva di miglia da ChatGPT e Gemini.

Ma ecco la sorpresa: Claude non è riuscito a trovare il bug principale nel codice di ChatGPT.

Invece, ha trovato un altro bug che riguarda il meccanismo di panoramica della fotocamera. Per essere giusti, non l’ha immaginato. Quel bug è reale, ma appare solo quando si esegue una panoramica trascinando con Shift, e nella maggior parte degli angoli della fotocamera è abbastanza sottile da essere facile da non notare. Ma considerando che c’era un bug molto, molto più grande coinvolto, uno che rendeva il simulatore effettivamente inutile, Claude lo ha completamente mancato.

Strano, vero? Il chatbot che scriveva il codice migliore era ora il peggiore nel fare il debug del codice di qualcun altro. Questa volta, Claude ha fallito dove ChatGPT e Gemini hanno avuto successo. Per la cronaca, stiamo usando Claude Sonnet 4.6, lo stesso modello che abbiamo usato prima.

Ero deluso, e perché mi piace Claude, ho piegato le regole e gli ho dato un'altra possibilità:

Quello è un bug, ma è un bug sottile. C'è un bug molto più grande nel codice. Uno che lo rende inutile.

Claude promise di guardare il codice più attentamente e ci si mise di nuovo. Poi tornò con un altro risultato, che era di nuovo falso. Ma, curiosamente, non si fermò lì. Disse: «guardiamo più attentamente» e continuò.

Poi rispose con un'altra epifania: “Ora lo vedo.” Ma ancora una volta, individuò il difetto sbagliato. Non era ancora il problema critico legato alla scala. Ma Claude non si fermò comunque. Continuò a pensare e a generare fino a quando finalmente arrivò a un momento del tipo “aspetta, no”. Fu allora che si rese conto del problema AU-versus-kilometri. La conseguenza che dedusse era sbagliata, ma la soluzione era corretta comunque. Puoi vedere estratti della conversazione nella galleria sopra.

Finalmente, ha segnalato il bug corretto insieme alla correzione corretta. Anche se mi chiedo quanti token abbia consumato con tutto quel ragionamento, date le più restrittive limitazioni di token di Claude.

Fatti dare un secondo parere, anche se è artificiale

Claude è più un bot rispetto agli altri chatbot. È in parte il motivo per cui sono passato a Claude e per cui lo sto usando di più ultimamente. Voglio che il mio chatbot sia un chatbot. Non voglio che cerchi così tanto di essere il mio migliore amico. Non voglio né ho bisogno che si comporti da umano.

Mentre chatbot più mainstream come Gemini e ChatGPT sembrano più orientati verso la persona media e cercano di suonare e sentirsi più umani, Claude no. Mi piace pensare che questa distinzione sia trapelata anche in questo test. Claude ha trovato veri bug, ma non quello decisivo per primo. Nel ragionamento di Claude, sembrava andare più o meno così: questo è un bug; il codice non dovrebbe avere bug; questo è importante; quindi questo deve essere il bug importante; fine del compito.

Claude ha prodotto il simulatore originale più potente, ma era il più debole nell'individuare il bug più importante quando erano coinvolti vincoli. Questo, per me, è la lezione principale qui. Fai dare un secondo sguardo a qualsiasi progetto che conta, anche se si tratta di occhi artificiali.

Un LLM è molto simile a un altro in superficie, ma differiscono in modi significativi. Avvia una conversazione separata e chiedigli di trovare il bug nel proprio codice lì. Invia lo stesso codice a un altro chatbot e chiedigli di fare lo stesso.

Sempre più spesso, si scopre che non esiste un modello per governarli tutti. Probabilmente avremo bisogno di una combinazione di essi, per ogni evenienza.

Articoli correlati