Skip to content

Instantly share code, notes, and snippets.

@vjt
Created April 21, 2026 12:26
Show Gist options
  • Select an option

  • Save vjt/8faf8c8f93379d8f1842c132ccce82ff to your computer and use it in GitHub Desktop.

Select an option

Save vjt/8faf8c8f93379d8f1842c132ccce82ff to your computer and use it in GitHub Desktop.
antirez — Claude Code vs. Codex (transcript, 2026-03-18)

Claude Code vs. Codex — Salvatore Sanfilippo (antirez)

https://www.youtube.com/watch?v=sMl3V0vjvjE Published: 2026-03-18 · Duration: 10:46 · 22,400 views

[0:01] Allora, di solito in questo canale si prova a parlare di idee, di algoritmi,

[0:08] di programmazione. Anche quando si parla di intelligenza artificiale tendo a parlare perlopiù

[0:15] di questioni concettuali senza andare troppo a soffermarmi sui prodotti, che poi sono quelli che

[0:23] noi acquistiamo e utilizziamo per programmare con l'intelligenza artificiale. Però a questo

[0:30] punto l'elefante nella stanza è così grande che devo per forza parlare di questa cosa qua,

[0:38] ovvero di quanto Codex sia superiore a Claude Code, ormai in maniera schiacciante. E però

[0:48] tutta l'industria è orientata verso l'utilizzo di Claude Code. Di questa cosa ne parlerò facendovi

[0:56] l'esempio di ieri, ma io non mi permetterei di fare questo video se non fosse capitata la

[1:02] stessa storia una ventina di volte negli ultimi due mesi, una volta dopo l'altra.

[1:12] Ma parleremo pure delle questioni, diciamo, di tipo psicologico che ci sono dietro Claude Code.

[1:17] Allora, tanto per iniziare, bisogna fare una precisazione importante che contestualizza tutto

[1:24] il video. Sia Claude Code che Codex sono i due strumenti in questo momento che funzionano meglio,

[1:33] quindi sono lo stato dell'arte. Quando io dico che Codex funziona meglio di Claude Code, vuol

[1:41] dire che per problemi molto difficili, GPT 5.4 in modalità X high — quindi tutti i miei test con

[1:54] Opus alla massima profondità di pensiero, diciamo, chiamiamola così, quindi spendendo il massimo

[2:02] numero di token a test time — e con GPT 5.4 e 5.3 sempre in modalità X high. Per cui diciamo che il

[2:16] mio compromesso normale è quello di aspettare di più per avere una risposta più esatta.

[2:27] Quindi tutti e due i tool funzionano. Non è che dico che se uno usa Claude Code allora non può avere i vantaggi normalmente associati alla programmazione automatica,

[2:38] ma per le cose veramente difficili c'è una differenza davvero netta, perché sennò io questo video, ripeto, non l'avrei fatto.

[2:47] Vi racconto, diciamo, l'ultima che è accaduta. Dovevo modificare l'implementazione del Radix Tree

[2:58] che ho scritto nel 2019 o 2017, non me lo ricordo più, di cui vado particolarmente fiero. Credo che

[3:08] specialmente di questi tempi in cui il codice scritto a mano inizia a diventare una rarità,

[3:15] quella implementazione lì è veramente un esempio, secondo me, di programmazione di un certo livello

[3:23] e di literate programming. L'implementazione è particolarmente... non ha mai avuto bug da

[3:29] quando l'ho rilasciata, dopo le prime iterazioni delle prime settimane non ha più avuto bug,

[3:36] anche se viene utilizzata in maniera molto significativa in Redis, in Redis Cluster, negli stream e così via. Quindi, diciamo, un'implementazione di alto profilo.

[3:47] Questa implementazione soffriva di un'ingenuità dal punto di vista dell'utilizzo della memoria,

[3:54] che poi si traduce anche in un'ingenuità dal punto di vista delle performance. Di questa

[4:00] cosa ne ho parlato in un video che purtroppo non vi siete neanche cagati di striscio, che è quello sull'indirezione nella programmazione, quello che è girato nella macchina vecchia. Lì

[4:10] ci sono, secondo me, delle cose che per un programmatore giovane che non conosce alcuni

[4:16] concetti possono essere, diciamo, in qualche modo comunque accrescitive della conoscenza,

[4:25] perché quando tu hai più indirezioni paghi il cache miss e così via. Quindi

[4:31] praticamente a volte quello che si traduce in una vincita dal punto di vista dell'utilizzo della memoria si traduce anche in un aumento delle performance dal punto di vista del tempo.

[4:42] Quindi quando tu riesci a fare una modifica ad un codice e ottieni delle riduzioni sia nello spazio

[4:49] che nel tempo, hai, diciamo, vinto, perché lo svantaggio a quel punto è solo che probabilmente

[4:55] il codice si è complicato un po'. Ma per andare il 20% più veloce, il 30% meno spazio, allora, cioè,

[5:04] ne vale la pena. La complessità è una nemica, ma a volte è una nemica che bisogna prender per mano,

[5:13] prendere a braccetto e far sì che ci accompagni nel nostro viaggio, nel nostro tentativo

[5:20] di scrivere il software migliore. In questo caso una complessità vale la pena di pagarla.

[5:27] Allora, il Radix Tree è una struttura dati veramente molto peculiare perché è

[5:33] un albero ordinato, eppure il tempo d'accesso è di O(1), perché sostanzialmente ogni nodo

[5:42] rappresenta un carattere delle nostre chiavi. E quindi è sostanzialmente una struttura dati,

[5:49] un dizionario ordinato in maniera lessicografica, quindi si può iterare in maniera lessicografica

[5:56] dal più piccolo elemento al più grande. Si possono fare i seek con l'iteratore maggiore uguale,

[6:01] minore uguale, o l'elemento maggiore o minore. È meraviglioso. E in più utilizza il fatto che

[6:07] quando praticamente non ci sono nodi in una chiave a metà — quindi se io ho

[6:17] poi ho

[6:25] un macronodo che ha tutta la stringa comune, altrimenti si utilizzerebbe troppa memoria.

[6:33] Ecco, il problema che aveva la mia implementazione è che poi alla fine le foglie di questo albero venivano sempre allocate come un nodo a sé dicendo

[6:46] questo è il valore per esempio della chiave Roma

[6:52] aveva un unico figlio che poi era associato al valore. Ma io mi sono accorto di una cosa:

[7:00] in questo header del nodo avevo un campo size che era di 27 bit, se ricordo bene,

[7:09] che erano troppi e ne potevo utilizzare benissimo solo 16. A questo punto mi rimanevano abbastanza

[7:20] bit per poter significare, nei puntatori che ho ai miei nodi figli, se in realtà quello

[7:32] era un puntatore a un nodo o se è un puntatore direttamente al valore associato alla chiave.

[7:38] Quindi io posso evitare questi nodi che sono solo foglie comprimendoli dietro il macronodo in una

[7:46] bitmap che mi dice se in effetti il puntatore che dovrebbe essere il puntatore al figlio è

[7:53] solo il puntatore direttamente al valore che quel figlio dovrebbe contenere, perché non ho altre chiavi nella catena lessicografica che va oltre quel prefisso a cui ho una chiave.

[8:06] Ho chiesto quindi di fare questa... ho detto

[8:15] era già come dire good enough, e uno lascia per non scrivere il codice un sacco di ottimizzazioni sul piatto. Non fidatevi mai di quello che vi dice

[8:24] ma il problema non è mai scrivere il codice, sono idee

[8:30] non realizzo perché non ho tempo infinito per fare l'implementazione di quelle cose e poi debuggarle, essere sicuro che funzionano per bene, scrivere i test, eccetera. Quindi minchiate col botto.

[8:42] Ho chiesto di fare sta roba qui a Claude Code. Tu dici

[8:54] e molti usano Claude Code per questo motivo qui, perché ti risponde prima e per fare certe cose

[9:00] è più capace di utilizzare... è più agile nell'utilizzare i tool di sistema eccetera, quindi ti dà quella sensazione di falsa sicurezza. Poi però spesso fa cazzate.

[9:13] Ma dopo che l'ho lasciato frullare da solo per un'ora, sono tornato nel terminale, ho guardato che aveva fatto, non riuscivo a risolvere un crash,

[9:22] ho aperto i file. Era una cazzata bestiale. Praticamente quando inseriva un nodo, andava

[9:29] quindi poi a spostare la bitmap, faceva lo shift senza andare a pulire i bit che andavano oltre. Quindi è una questione proprio di riporto dei bitmap quando bisognava inserire un nodo a metà.

[9:42] Ho aperto Codex, ha identificato il problema, ha confermato che il problema fosse quello in un millisecondo, lo ha fixato, ha aggiustato altre cose,

[9:52] ha trovato altre ottimizzazioni che Claude non aveva trovato e così via.

[9:58] Quindi è vero che in questo momento Claude Code è un software che consente in molti

[10:05] domini di velocizzare il lavoro, ma non credete che per quanto tutti nell'industria si straccino

[10:11] le vesti e si profondano in inni a Claude Code, sia il migliore in questo momento.

[10:20] E ve lo dico perché ho provato anche su vari progetti molto lontani dalla programmazione che faccio io. E siccome una di queste cose la rilascerò anonimamente,

[10:28] non saprà mai nessuno che sono stato io, non ve ne posso parlare, ma sappiate che anche in

[10:33] campi molto diversi Codex è in assoluto il coding agent più forte per la programmazione automatica.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment