🔁 Vibe Coding con Delphi, un anno dopo: siamo già nel futuro!
Quasi un anno dopo l'articolo che aprì la discussione su Delphi-PRAXiS: cosa è successo davvero, cosa ho imparato, e perché oggi apro l'IDE di Delphi solo per ritoccare le form.
📅 Dove eravamo rimasti
Il 3 dicembre 2025 ho pubblicato Vibe Coding con Delphi: quando l'Intelligenza Artificiale diventa il tuo Pair Programmer. Raccontavo tre esperimenti con Claude Code: un nuovo engine di rendering per SVGIconImageList, il componente TStyledPanel per StyledComponents, il refactoring di un progetto MVC VCL+FMX. La sorpresa più grande era stata vedere l'AI modificare un file .dfm al primo colpo.
L'articolo ha aperto una lunga discussione su Delphi-PRAXiS: sette pagine di commenti tra dicembre 2025 e gennaio 2026, con interventi di sviluppatori Delphi molto autorevoli. Alcuni erano entusiasti, altri scettici, qualcuno apertamente contrario.
Chiudevo l'articolo con "Questo è solo l'inizio", e ad un anno di distanza posso dire che era vero. Anzi, forse era riduttivo.
In sintesi, un anno dopo:
- Apro l'IDE di Delphi quasi solo per ritoccare le form a mano o per il debug visuale.
- Ho finalmente fatto le due cose che rimandavo da sempre: la documentazione e gli unit test, inclusi i test della GUI.
- Ho riscritto da zero un framework che era su un binario morto: Kittoˣ, sviluppo web con Delphi+HTMX, dotato anche di server MCP dedicato.
- L'AI è entrata dentro le nostre applicazioni Delphi, con Delphi HelpChatAI.
- Uso l'AI per qualsiasi cosa: preparare documenti tecnici o commerciali, stendere analisi da sottoporre al cliente, preparare slide per gli speech alle convention, automatizzare operazioni noiose sul WEB (con l'agente claude integrato)...
- E' stato di grande aiuto nel portare applicazioni da Delphi5/6 a Delphi 12/13: oltre 4 milioni di righe di codice.
🧑💻 Il mio lavoro oggi: Meno IDE, più direzione
Il cambiamento più grande non è tecnico, è nel modo di lavorare. Un anno fa Claude Code era uno strumento che usavo per alcuni compiti. Oggi è il mio ambiente di sviluppo principale. RAD Studio resta indispensabile, ma per cose precise: ritoccare a mano il layout di una form, verificare l'aspetto di un componente a design-time, un debug passo-passo quando serve davvero.
Il resto della giornata lo passo a fare quello che un tempo occupava una parte piccola del mio tempo: decidere cosa fare e verificare come è stato fatto. Descrivo l'obiettivo, discuto l'approccio, controllo il piano, rivedo il codice, faccio girare i test. Non scrivo quasi più codice a mano, ma ne leggo molto di più e devo dire che le mie competenze sono cresciute, perché dobbiamo ammetterlo, oggi come oggi posso sviluppare cose di cui non avevo le competenze necessarie per farlo.
Nel frattempo anche lo strumento è cresciuto. Rispetto a un anno fa, nel mio lavoro quotidiano uso stabilmente:
- CLAUDE.md curati in ogni repository, aggiornati man mano che il progetto evolve: sono la memoria del progetto e la cosa che più influenza la qualità del risultato.
- Server MCP verso i database (Firebird, SQL Server, Oracle, PostgreSQL): Claude legge schemi e dati reali invece di indovinarli.
- Hook che automatizzano i controlli ripetitivi, per esempio una notifica a fine lavoro quando un compito lungo è terminato.
- Più sessioni in parallelo, una che sviluppa e una che rivede, ciascuna con il suo contesto.
- Controllo da remoto, con la App di Claude e il magico comando /remote-control posso tenere sotto controllo il lavoro in qualsiasi momento e dare le conferme necessarie per i task più lunghi.
- Il modello più capace disponibile, sempre. Più lento, ma più preciso: il tempo che si risparmia nelle correzioni vale molto più di quello che si perde nell'attesa: si fa in fretta a consumare i token di "Fable" ma la sua potenza è impressionante!
📚 Prima Conquista: la Documentazione
Ogni sviluppatore conosce la frase "la documentazione la scrivo dopo". E sa che "dopo" spesso non arriva mai. Per anni i nostri progetti open-source hanno avuto un README o nel migliore dei casi una sezione wiki con un po' di documentazione e screenshot, che faticava a tenere il passo del progetto. Le unit Pascal avevano commenti sparsi. La documentazione dei progetti per i clienti era quasi sempre in ritardo rispetto al codice.
Quest'anno questo problema è risolto!
📝 Dentro il codice
Le unit Pascal ora hanno commenti di documentazione coerenti su classi, metodi, proprietà ed eventi. Claude li scrive leggendo il codice e il contesto d'uso, non parafrasando la firma del metodo. Quando il codice cambia, aggiornare il commento fa parte dello stesso compito.
🌐 Siti di documentazione con VitePress
Nell'articolo originale avevo mostrato i primi due siti VitePress, per SVGIconImageList e StyledComponents. Oggi ogni componente open-source di Ethea ha il suo sito, con guide, esempi e una sezione Reference completa. Sono tutti raccolti nell'Ethea Showroom: 15 progetti tra componenti, framework, editor e shell extension.
L'Ethea Showroom: componenti, framework, editor e shell extension open-source per Delphi, ognuno con il suo sito di documentazione.
📖 La documentazione dei progetti per i clienti
Lo stesso approccio vale per le applicazioni che sviluppiamo per i clienti. Specifiche, manuali utente, documenti di architettura, note di rilascio: tutto in Markdown, scritto insieme a Claude e mantenuto aggiornato insieme al codice. Per leggerli e scriverli usiamo i nostri strumenti: MarkdownProcessor, come processore esteso di markdown, MarkdownShellExtensions, come editor e anteprima in Esplora risorse e MarkdownHelpViewer per portare la documentazione dentro l'applicazione come help contestuale: i Markdown Tools gratuiti di Ethea.
MarkdownHelpViewer mostra la documentazione Markdown di un progetto, con indice, ricerca ed esportazione in PDF.
Il punto chiave: la documentazione non è più un'attività separata da pianificare. È un sottoprodotto naturale dello sviluppo. E, come vedremo, è anche la base su cui poggia l'assistente AI che oggi integriamo nelle applicazioni.
🚀 Il processo di pubblicazione
Ora la documentazione è un processo automatico nella pipeline di progetto, fino all'automazione di commit/push/release/Doc.Deploy. Pubblicare una nuova release su GitHub e aggiornare il sito di documentazione è diventato semplicissimo.
🧪 Seconda Conquista: gli Unit Test (e i Test della GUI)
La seconda cosa che non trovavo mai il tempo di fare erano i test automatici. Nel mondo Delphi è una storia nota: tanto codice scritto in anni di lavoro, molta logica dentro gli event handler delle form, pochissimi test.
Con Claude Code scrivere test con DUnitX è diventato normale. Per ogni nuova funzionalità chiedo i test insieme al codice. Per il codice esistente, Claude analizza le unit, individua le parti testabili e propone dove serve un piccolo refactoring per renderle tali. Il framework Kittoˣ, per esempio, ha oggi 328 test DUnitX eseguiti su Win32 e Win64.
La suite DUnitX di Kittoˣ: 328 test, tutti verdi.
🖱️ La novità: Claude testa anche l'interfaccia
La sorpresa di quest'anno è stata questa. Claude Code ha imparato a simulare l'interazione dell'utente con la GUI usando i messaggi di Windows: avvia l'applicazione, trova le finestre e i controlli, invia click, tasti e testo, legge lo stato dei controlli e verifica il risultato.
Può anche catturare screenshot delle finestre e guardarli. Così verifica che una form si presenti come previsto, che un layout non si rompa con un DPI diverso, che un tema chiaro o scuro venga applicato correttamente. In pratica chiude da solo il ciclo: modifica, compila, avvia, prova, guarda, corregge.
😲 Un anno fa mi stupivo perché l'AI modificava un file .dfm. Oggi compila l'applicazione, corregge gli errori, la avvia, clicca sui pulsanti, cattura la schermata e mi dice che un'etichetta è troncata a 150% di scaling. E propone la correzione.
Una delle obiezioni più fondate sul forum era che i test scritti dall'AI possono dare una falsa sicurezza: "tutti i test sono verdi" non significa che il codice sia corretto. È vero e mi è anche capitato di fare "regression" anche in presenza di test (non fatti bene): ma la differenza rispetto a prima è enorme: prima i test non c'erano proprio!
🌐 Un Framework Rinato: Kittoˣ
Kitto è un framework Delphi per applicazioni web "data-driven" che sviluppiamo da molti anni. La versione basata su ExtJS era però finita su un binario morto: la tecnologia client era invecchiata e aveva perso la "retrocompatibilità" e riscriverlo per le nuove versioni di ExtJS richiedeva un impegno che non riuscivamo mai a giustificare.
Con l'aiuto di Claude Code l'abbiamo riscritto. Il risultato è Kittoˣ, un framework per il web con Delphi e HTMX:
- Applicazioni definite da metadati YAML, con HTML generato lato server.
- Accesso ai dati diretto verso: SQL Server, PostgreSQL, MySQL, Oracle, Firebird.
- Modello dati mappato sulle entità SQL.
- Autenticazione JWT, API REST/JSON con specifica OpenAPI 3.0 e Swagger UI.
- Grafici, calendari, dashboard, wizard; server HTTP integrato o servizio Windows.
- Un IDE visuale, KIDEX, per progettare le applicazioni.
La dashboard delle attività di TasKitto, una delle applicazioni demo di Kittoˣ: HTML generato dal server e HTMX, con grafici Chart.js e nessun framework JavaScript lato client.
KIDEX: l'editor dei metadati YAML, il wizard che genera i modelli dal database e la validazione del progetto.
🔌 MCP: l'AI che sviluppa con il framework
Nella nuova versione di Kittoˣ non poteva mancare MCP-KittoX, un server MCP (Model Context Protocol) che espone le funzioni di KIDEX agli agenti AI: Claude Code, Claude Desktop, Codex, LM Studio e qualsiasi altro client MCP. Un agente può creare lo scheletro di una nuova applicazione, generare i modelli partendo da un database esistente e validare i metadati, generare le view di Kittoˣ seguendo le direttive dello sviluppatore, ma facendo sempre nel modo corretto.
Claude Desktop usa MCP-KittoX per creare una nuova applicazione Kittoˣ. Notate che l'agente segnala anche quello che non ha funzionato e propone come procedere.
Il cerchio si chiude: un framework riscritto con l'AI, che a sua volta offre all'AI gli strumenti per costruire applicazioni. Le demo live (HelloKitto, TasKitto, KEmployee, Sport Club Manager) sono raggiungibili dal sito di Kittoˣ.
💬 L'AI Entra nelle Applicazioni: Delphi HelpChatAI
Fin qui ho parlato dell'AI che aiuta me a sviluppare. Negli ultimi mesi è successo qualcosa di nuovo: l'AI è entrata dentro i nostri applicativi Delphi, al servizio dei loro utenti.
Delphi HelpChatAI trasforma l'help di un'applicazione in una conversazione. L'utente preme F1 e si apre una chat che sa in quale schermata si trova. Le risposte si basano sulla documentazione Markdown dell'applicazione stessa: quella documentazione che, finalmente, adesso esiste.
Delphi HelpChatAI in una demo CRM VCL: l'assistente spiega la schermata Leads in cui si trova l'utente.
- Componenti per VCL (TVclHelpChatAI, con WebView2) e FireMonkey (TFmxHelpChatAI), con un unico motore condiviso.
- Funziona con i
HelpKeywordeHelpContextgià presenti nell'applicazione. - L'assistente può eseguire azioni controllate: solo quelle che lo sviluppatore ha esplicitamente abilitato, e chiedendo conferma all'utente prima di modificare qualcosa.
- Può funzionare in-process o tramite un server HelpChatAI, così la chiave API del modello non arriva mai sul computer dell'utente.
- Un provider di ricerca nella documentazione permette di rispondere anche offline, senza chiave API.
È un cambio di prospettiva importante. L'AI non è più solo uno strumento per chi scrive software: diventa una funzionalità del software stesso. E con le azioni controllate l'utente può chiedere all'applicazione di fare qualcosa, non solo di spiegare come si fa.
Un'azione controllata: prima di creare un nuovo lead l'assistente mostra i dati che ha compilato e chiede conferma all'utente.
🏛️ Modernizzare App Legacy: da Delphi 5/6 a Delphi 12/13
Chi lavora con Delphi da molti anni conosce bene il problema: applicazioni enormi, scritte in versioni molto vecchie, che funzionano e fanno guadagnare i clienti, ma che nessuno ha il coraggio di toccare.
Quest'anno abbiamo affrontato il porting di alcune applicazioni di terzi ancora scritte in Delphi 5 o Delphi 6 verso una versione recente Delphi 12/13: una di queste ha oltre 4 milioni di righe di codice. Chi ha fatto una migrazione del genere sa cosa significa: il passaggio a Unicode, componenti di terze parti non più mantenuti da sostituire, API deprecate, codice che dipendeva da comportamenti del vecchio compilatore, ecc...
In un progetto di queste dimensioni Claude Code non sostituisce il lavoro di analisi: lo rende sostenibile. Ci ha aiutato a:
- analizzare la codebase e classificare i problemi ricorrenti;
- applicare in modo coerente le stesse correzioni su migliaia di unit;
- scrivere i componenti sostitutivi e le procedure di migrazione dei form;
- produrre report dettagliati di ogni migrazione, per tenere traccia di cosa era stato cambiato e perché.
- mantenere allineato il codice della nuova versione mentre l'attuale continua ad essere aggiornato e manutenuto.
In un caso, insieme al porting abbiamo modernizzato anche l'interfaccia di vecchie applicazioni: supporto High-DPI, temi chiari e scuri, icone vettoriali SVG e utilizzo dei nostri componenti StyledComponents che danno quel tocco in più. Lavori che per anni erano rimasti nel cassetto "quando avremo tempo".
Proprio qui si risponde a una delle obiezioni del forum: "l'AI non può capire l'architettura di una codebase da milioni di righe". È vero che non la legge tutta in una volta. Ma nemmeno noi lo facciamo. Con un buon CLAUDE.md, con un piano di lavoro chiaro e con lo sviluppatore che conosce il sistema a guidare, lavora una parte alla volta, esattamente come farebbe un team umano.
💬 Il Forum, un Anno Dopo
Rileggere oggi la discussione su Delphi-PRAXiS è interessante. Molte obiezioni erano serie, e alcune mi hanno spinto a migliorare il mio modo di lavorare. Provo a riprenderle.
❓ "Non ci si può fidare di quello che scrive"
Giusto. Non ci si deve fidare ciecamente. Ma la risposta non è rinunciare: è costruire un sistema di verifica. Compilazione, test automatici, test della GUI, revisione del codice, una seconda sessione che fa da revisore. Le allucinazioni esistono, ma vengono intercettate da questo ciclo molto prima di arrivare in produzione.
❓ "Chi manterrà tutto quel codice scritto dall'AI?"
Lo stesso team che manteneva il codice prima. Con una differenza: oggi quel codice è documentato e coperto da test, cosa che prima spesso non era. Paradossalmente, il codice scritto con l'AI è più facile da mantenere di molto codice scritto a mano negli anni passati.
❓ "Costa troppo" e "i dati del cliente?"
Sul costo, la mia risposta è la stessa di un anno fa: si ripaga ampiamente. Un framework riscritto, 15 siti di documentazione, una migrazione da milioni di righe: con le sole risorse di una piccola software house nessuno di questi progetti sarebbe stato possibile. Sulla riservatezza, usiamo un piano aziendale con le impostazioni corrette sull'uso dei dati, e abbiamo scritto linee guida interne su cosa può e cosa non può essere condiviso. È un tema da affrontare con serietà, non un motivo per restare fermi.
❓ "E gli sviluppatori junior?"
Questa è la preoccupazione che condivido di più. L'AI amplifica le competenze di chi le ha. Chi deve ancora costruirle rischia di saltare passaggi importanti. Credo che il ruolo degli sviluppatori esperti oggi sia anche questo: insegnare a guidare, verificare, capire perché una soluzione è giusta. Non solo a scrivere codice.
✨ Profetico?
Non voglio peccare di presunzione, ma credo di poter dire che l'articolo è stato, almeno in parte, profetico. A fine 2025 si intravedeva una potenzialità enorme. Oggi quella potenzialità è realtà quotidiana, e non solo per me. Credo che anche i più scettici di allora, tra cui alcuni nomi molto noti e stimati della community Delphi, debbano riconoscere che il mondo dello sviluppo software è cambiato. E non di poco.
🌍 Il Mondo è Cambiato (anzi, è Stato Stravolto)
Quello che ho vissuto con Delphi è un piccolo esempio di qualcosa di molto più grande. In questi dodici mesi abbiamo visto nascere da zero progetti che fino a poco tempo fa avrebbero richiesto anni di lavoro e team numerosi.
Un esempio su tutti: l'organizzazione storytold / ArtCraft su GitHub. Oltre a ArtCraft, un ambiente per la creazione di immagini e video con l'AI, il progetto comprende un'intera suite di reimplementazioni "clean-room", scritte da zero in Rust, di applicativi famosi: un word processor sul modello di Microsoft Word, uno strumento di presentazioni sul modello di PowerPoint, un CAD sul modello di AutoCAD, e altri ancora. Decine di repository, con decine di migliaia di stelle, nati in un tempo che sarebbe stato impensabile senza agenti AI (nei repository si trovano infatti i file CLAUDE.md e AGENTS.md che li guidano).
Un anno fa sembrava un'iperbole dire che con l'AI si potesse costruire software di queste dimensioni da zero! Oggi è un fatto.
Per noi sviluppatori Delphi il messaggio è chiaro. Il nostro linguaggio, i nostri framework e le nostre applicazioni non sono esclusi da questa trasformazione. Anzi: con decenni di codice da documentare, testare e modernizzare, siamo tra quelli che ne possono beneficiare di più, soprattutto grazie alla grande retrocompatibilità che il linguaggio ha sempre mantenuto. Nel nostro caso non si deve "riscrivere" tutto da zero ma si può mantenere il nucleo, le logiche di business iper-collaudate ma allo stesso tempo modernizzare, come è successo con Kittoˣ e con i prodotti "legacy".
🧭 Cosa Ho Imparato in Dodici Mesi
- Il contesto è tutto. Un CLAUDE.md ben scritto e un piano di lavoro ben strutturato, vale più di qualsiasi prompt brillante. Investite tempo per tenerlo aggiornato.
- Prima il piano, poi il codice. Per i compiti non banali faccio scrivere prima un piano, lo discuto, lo correggo. Solo dopo inizia la scrittura del codice.
- Verificare è il nuovo programmare. Test, revisione, una seconda sessione che critica la prima. Il tempo che non passo a scrivere lo passo a controllare.
- Collegate l'AI ai dati reali. I server MCP verso database e strumenti trasformano un assistente che indovina in un collaboratore che sa.
- Documentazione e test non sono più opzionali. Costano così poco che non farli non ha più giustificazioni.
- L'esperto resta indispensabile. L'avevo scritto un anno fa e lo confermo. Cambia il ruolo: meno esecutore, più architetto, revisore e guida.
🚀 Conclusione: e Adesso?
Un anno fa scrivevo: "Benvenuti nel futuro dello sviluppo Delphi". Quel futuro è arrivato prima del previsto. Il mio lavoro è cambiato radicalmente, e non tornerei indietro.
Se un anno fa eravate scettici, vi invito a riprovare oggi, con un progetto reale, un buon CLAUDE.md e la pazienza di imparare a guidare lo strumento. Se invece avete già iniziato, mi piacerebbe sentire la vostra esperienza: cosa ha funzionato, cosa no, dove avete trovato i limiti.
Se volete ne possiamo parlare dal vivo a Roma, all'ITDevCon del 19 e 20 Novembre, dove terrò proprio lo speech su "Un assistente AI dentro le tue applicazioni Delphi, VCL e FMX".