> ## Content Index
> Fetch the complete content index at: https://adrianoamalfi.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Legacy dal giorno zero
- URL: https://adrianoamalfi.com/legacy-giorno-zero/
- Published: 2026-07-27T19:08:52.000Z
- Updated: 2026-07-27T19:09:10.000Z
- Description: La riscrittura di Bun fatta da Claude è già in produzione. Il primo caso di "legacy software dal giorno zero": infrastruttura che nessuno ha mai veramente capito.
- Author: Adriano Amalfi
- Tags: AI Agentica, AI Coding, AI Tools, Opinione

*Bun* **funziona**. È in **produzione** da oltre un mese e il team che lo mantiene sta ancora **imparando a leggere** il codice che distribuisce.

La runtime **JavaScript** che ha sfidato **Node.js** su **velocità** e **compatibilità** è stata riscritta da **Zig** a **Rust**. Non da un team che **conosceva Rust**, né da sviluppatori che hanno passato **mesi a studiare**. La traduzione è stata fatta quasi interamente da ***Claude***, partendo dalla ***codebase*** Zig originale. Il risultato è già in produzione: decine di **migliaia di sviluppatori** ci lavorano sopra ogni giorno, e come ha dichiarato il fondatore del progetto, quasi **nessuno se n'è accorto**. I ***test*** passano. Le ***performance*** ci sono.

Qui finisce la **storia di successo**.

Il team è nuovo a Rust. Sta costruendo i **modelli mentali** per un *codebase* che sta già distribuendo. Non ha scritto il **codice**. Non l'ha **revisionato**. Non c'è mai stato, non ancora, il momento in cui qualcuno guarda una funzione e dice **ah, ecco perché**. Questo è il primo caso documentato di ***legacy software dal giorno zero***: infrastruttura critica che nasce già **ereditata**, già **opaca**, già fuori dalla portata della **comprensione** di chi la possiede.

Non è un fallimento dell'***AI coding***, è una mutazione del rapporto tra **sviluppatore** e **codice**.

### Opacità strutturale

La parola "**legacy*"* nel software ha sempre **indicato qualcosa** di preciso: codice scritto da **qualcuno che se n'è andato**, pieno di **decisioni** di cui si è persa la **memoria**, difficile da modificare senza **rompere** qualcosa. Ma la parola conteneva anche una **premessa** rassicurante. **Qualcuno**, a un certo punto, lo **capiva**. C'era stato un momento originario in cui quel **codice era trasparente** a chi lo scriveva. Poi il **tempo**, i ***commit***, i ***team*** che cambiano lo avevano reso **opaco**. L'opacità era un **sedimento**, non una condizione di **partenza**.

Qui quel **momento originario** non esiste. Non è mai esistito. Il codice ***Rust*** di Bun è **nato opaco**: non perché è **scritto male**, ma perché è stato **generato** senza che nessuno dovesse mai formare i **modelli mentali** necessari a produrlo. Il **modello** ha tradotto pattern da ***Zig*** a ***Rust***, ha risolto problemi di ***ownership***, ha gestito la complessità del ***porting***. Ma la comprensione di **perché** quelle scelte **funzionano** non è stata **trasferita**. Non poteva esserlo. Un ***LLM* non capisce**: produce **output** che un umano, con sufficiente sforzo, può **decifrare**. Solo che in questo caso l'**umano non era presente** al momento della scrittura.

Non è la prima volta che **automatizziamo la produzione** di qualcosa e perdiamo comprensione del **processo**. È successo con la **catena di montaggio**, con i **compilatori**, con ogni ondata di **astrazione**. Ma il ***software*** è diverso da un oggetto fisico. Il software è ***comprensione cristallizzata***. Un martello puoi usarlo senza sapere come è **stato forgiato**. Una ***runtime*** no: devi farla **evolvere**, e per farla evolvere devi poterla **simulare** mentalmente, devi avere **categorie** per anticipare cosa succede quando cambi qualcosa.

> Il codice Rust di Bun non ha un autore che lo capisce. Ha un generatore che lo ha prodotto e un team che lo sta decifrando.

Questo **cambia tutto**. Non stiamo parlando di **codice generato** per una *landing* **page**. Stiamo parlando di un ***runtime***: il tipo di **infrastruttura** dove un errore di ***memory management*** non è un'eccezione 500, è una **superficie d'attacco**. Dove far evolvere il progetto richiede **decisioni architetturali** che presuppongono una **familiarità con il sistema**.

Cosa succede quando arriva il **primo *bug*** serio: non un **errore di compilazione**, ma un **comportamento anomalo** nel *garbage collector,* una *race condition* nel **loop degli eventi**? Si può chiedere al modello di **correggerlo**. Ma per **valutare** se la correzione è giusta, per **capire** se non introduce altri problemi, per **decidere** se la direzione ha senso: devi **capire** il sistema. E se **non lo capisci**, stai **accumulando *patch*** su una base che nessuno ha mai veramente posseduto.

Bun **non sarà l'ultimo**. È probabilmente il primo di una **nuova categoria**: **software** infrastrutturale **generato**, **funzionante**, **distribuito**, e strutturalmente **opaco** a chi lo mantiene. **La tentazione è forte**. Perché passare mesi a **imparare** Rust quando un **modello può tradurre** tutto in pochi giorni? Perché **soffrire** con il *borrow checker* quando l'AI **gestisce ownership** e *lifetimes* meglio di uno **sviluppatore** alle prime armi?

La **trappola** non è che il **codice generato** sia **scadente**. È che è abbastanza buono da **funzionare**, e abbastanza **opaco** da non poter essere veramente **posseduto**. È la differenza tra **usare uno strumento** e **abitare un'architettura**. Puoi **vivere in una casa** senza sapere come è stata **costruita**. Ma non **puoi ristrutturarla** senza capire dove passano i **muri portanti**.

### Il nuovo regime

Non si tratta di **fermare** questa tendenza: non si ferma, e forse non dovrebbe. Il punto è **riconoscere** che stiamo entrando in un **paradigma nuovo**. Un paradigma in cui "**funziona**" non è più la domanda che conta. La risposta a "**funziona?**" è sempre più spesso **sì**.

"Funziona" ha smesso di significare "qualcuno sa perché".

Stiamo **costruendo cattedrali** che nessun **architetto** ha mai visto. 

Per ora, **stanno in piedi**.