Radar · 23/07/2026 · fatto del 21/07/2026 · ricerca

Claude non è un compilatore: l'LLM prende decisioni, non traduce

Josh Bleecher Snyder pubblica un post dal titolo esplicito: “Claude non è un compilatore”. L’argomento è che Claude appartiene a una categoria diversa, superiore per alcuni versi. Un compilatore prende codice sorgente e produce binari in modo deterministico: stessa entrata, stessa uscita. Un LLM prende una descrizione in linguaggio naturale e fa decisioni a ogni livello dello stack, dalla strategia all’implementazione. Trattarlo come un compilatore significa aspettarsi una riproducibilità che la natura dello strumento non garantisce.

Per chi usa agenti in produzione, il punto è pratico. Se deleghi a un agente un compito complesso e ti aspetti che lo rifaccia identico la volta dopo, resterai deluso. L’LLM prende decisioni sotto-specificate, come un architetto o un PM, e il valore sta nel numero e nella qualità di quelle decisioni, non nella loro prevedibilità. Come raccontavamo il 20 luglio quando tre paper convergevano sullo stesso punto, l’architettura con cui circuiti e verifichi un agente conta più della potenza del modello.

Snyder lo mostra con un caso reale: il suo team ha costruito un DNS server distribuito usando Claude per ricerca, design e implementazione. Il modello ha lavorato verticalmente attraverso lo stack, qualcosa che un compilatore non fa. Il prezzo è accettare che lo stesso prompt darà sempre un risultato leggermente diverso.

Nel dettaglio

L’errore di categoria.

Snyder aveva già posto la domanda nel 2025: “Claude è un compilatore?” La sua risposta di allora era “non lo so”. Adesso è sicuro: appartiene a una categoria diversa. Un compilatore opera a un solo livello, quello di traduzione da sorgente a binario, e lo fa con precisione deterministica. Le decisioni che prende (inline, allocazione registri, warning) sono interne a quel livello e affidabili per costruzione. L’ingegnere non deve pensarci.

Un LLM opera a tutti i livelli contemporaneamente. Può parlare di strategia di prodotto, di architettura di sistema, di dettagli di implementazione, di codice macchina. Questo è il vantaggio: come ricorda Snyder citando la costruzione dell’Empire State Building, i progetti migliori sono quelli in cui chi lavora ai livelli diversi si parla. L’LLM fa questo da solo, senza dover schedulare riunioni.

Il prezzo della verticalità.

La verticalità costa la riproducibilità. Un compilatore dà la stessa output per la stessa input, sempre. Un LLM no, e giocare con temperature a zero o seed fissi non cambia la natura di qualcosa che prende decisioni sotto-specificate. Quando chiedi “scrivimi un DNS server distribuito”, ci sono mille decisioni implicite che il modello deve prendere, e le prenderà in modo leggermente diverso ogni volta.

Snyder lo mostra con un caso reale. Il suo team (exe.dev) aveva un problema di latenza DNS: i server partivano così veloci che la propagazione DNS diventava il collo di bottiglia. Hanno scritto un DNS server personalizzato, poi hanno aggiunto regioni, e il DNS è tornato a essere il problema. La soluzione era un DNS server geograficamente distribuito e consistente. Invece di costruirlo a mano livello per livello, hanno usato Claude per ricerca su design distribuiti, quirks del protocollo DNS, alternative di implementazione, fino al codice. Il modello ha lavorato attraverso tutto lo stack in un’unica sessione.

Cosa significa per chi costruisce.

Se stai mettendo agenti in produzione, l’implicazione è doppia. Primo: smetti di aspettarti che lo stesso prompt produca lo stesso output. È la natura dello strumento. Secondo: progetta la verifica, non la riproducibilità. Come tre paper convergenti mostravano il 20 luglio, la qualità di un sistema agentico dipende da come circuiti i controlli, non da quanto è prevedibile il modello.

Snyder non presenta un paper con dati, ma un’esperienza. Il limite è questo: è una persona che racconta la sua pratica, con un campione di uno. Il punto concettuale però è solido e converge con quello che il campo sta imparando sui propri errori: trattare gli LLM come compilatori porta a frustrazione, trattarli come decisori cross-layer porta a risultati che un compilatore non potrebbe produrre.

Scrivi per cercare fra corso, playbook, skill, paper…