Il panorama dello sviluppo del software è in rapido cambiamento, guidato dalla proliferazione di Strumenti di intelligenza artificiale. Questi strumenti di codice AI rientrano in due categorie principali: generatori, che mirano a produrre interi basi di codice da istruzioni e assistenti, che si integrano direttamente nel flusso di lavoro dello sviluppatore. Le differenze architettoniche e filosofiche fondamentali tra questi approcci rimodellano il funzionamento degli sviluppatori.
Ivan Liagushkin, uno sviluppatore di software con oltre 10 anni di esperienza nella costruzione di applicazioni Web su larga scala, offre approfondimenti in questo campo in evoluzione. È responsabile dell’ingegneria a Dueuna startup copywriter AI supportata da Sequoia Capital.
Definizione di generatori di codice AI e assistenti
“Strumenti come V0.Dev e Github Copilot possono sembrare simili, ma sono fondamentalmente diversi filosoficamente”, ha detto Liagushkin. “I generatori competono principalmente con piattaforme senza codice e a basso codice, mira a professionisti non sviluppatori. Gli assistenti di codifica, al contrario, mirano a trasformare i flussi di lavoro di codifica quotidiani.”
Generatori come V0.DEV di Vercel e Bolt.new da Stackblitz sono progettati per consentire una prototipazione rapida e il lancio di MVP. Sono spesso supponenti sulle tecnologie che usano, promuovendo strumenti e piattaforme specifiche.
“Questi generatori sono fortemente supponenti sulle tecnologie che usano e spesso promuovono strumenti specifici per gli utenti a cui si iscrivono”, ha affermato Liagushkin. “Ad esempio, sia Bolt.new che adorabili promuovono la piattaforma di sviluppo del supabase, mentre V0.DEV promuove naturalmente l’hosting Vercel.”
Gli assistenti di codifica, d’altra parte, si concentrano sull’integrazione senza soluzione di continuità nei flussi di lavoro esistenti, sulla comprensione delle basi di codice e sulla fornitura di strumenti universali tra le tecnologie. Sono progettati per essere utili sia per i singoli sviluppatori che per i team.
“Gli assistenti di codifica mirano a trasformare la codifica quotidiana”, ha detto Liagushkin. “È fondamentale per loro avere senso per gli sviluppatori e le squadre singoli in particolare. Editor del cursore Sembra particolarmente promettente, fornendo un modo conveniente per condividere e ridimensionare le istruzioni LLM con le cosiddette “regole del cursore”.
L’architettura sottostante di questi strumenti è simile, con la differenza principale nell’interfaccia utente e gli approcci di aumento del contesto. Il componente principale è il modello linguistico di grandi dimensioni (LLM).
“Il componente chiave è l’LLM stesso”, ha detto Liagushkin. “Tutti i generatori menzionati si basano sul sonetto Claude 3.5 di Antropico, il modello di codifica all’avanguardia per lungo tempo, superato solo dal suo successore Claude 3.7 Sonnet. Assistenti di codifica, tuttavia, consentono il passaggio da un numero di modelli.”
All’interno dell’architettura: come funzionano gli strumenti di codifica AI
Questi strumenti in genere non perfezionano i modelli ma si basano su tecniche di suggerimento avanzate. Strumenti open source come Bolt.new forniscono approfondimenti sull’architettura.
“Grazie a Bolt.new è open source, possiamo esaminare ciò che viene usato”, ha detto Liagushkin. “Il prompt del sistema principale spiega a LLM il suo ambiente di esecuzione e le azioni disponibili: creare e modificare i file, eseguire comandi con shell, cercare basi di codice e utilizzare strumenti esterni. I prompt sono ben strutturati con formattazione in stile XML e utilizzare l’apprendimento a un colpo per ridurre le allucinazioni e le incoranze.”
La gestione del contesto, in particolare per le basi di codice di grandi dimensioni, è una sfida significativa. Assistenti indicizzano i codebase e utilizza i database vettoriali per la ricerca full-text.
“La più grande sfida è fornire a LLMS un contesto adeguato”, ha affermato Liagushkin. “È essenziale alimentare le parti giuste dei file giusti insieme a moduli, documentazione e requisiti corrispondenti. Assistenti indicizzano la base di codice, creando strutture di dati a forma di albero per monitorare le modifiche dei file, quindi incorporare i file in database vettoriali per la ricerca full-text.”
Il 30% finale
Nonostante il loro potere, gli strumenti di codifica AI hanno limiti. Il “problema del 70%”, articolato da Addy Osmani, evidenzia la propria lotta con il 30% finale del codice che richiede robustezza e manutenibilità.
“Il problema del ‘70%” descrive perfettamente la limitazione fondamentale degli strumenti di codifica AI: possono generare rapidamente codice che ti porta il 70% del modo lì, ma lottare con il 30% finale cruciale che rende pronto per la produzione di software, mantenibile e robusto “, ha detto Liagushkin.
Affrontare queste limitazioni implica il miglioramento dell’accuratezza del modello, l’avanzamento delle architetture agenti e il miglioramento delle tecniche di suggerimento.
“Questo problema sarà risolto in tre modi diversi”, ha detto Liagushkin. “Innanzitutto, i modelli diventeranno più accurati. In secondo luogo, l’architettura degli assistenti di codifica avanzerà attraverso approcci agenti. Infine, cambieremo. Tutti impareranno tecniche di suggerimento efficaci.”
A Twain, Liagushkin ha sperimentato limiti simili nello sviluppo di copywriter AI. Le strategie per mitigare queste includono la memorizzazione nella cache delle richieste LLM, la giocoleria del modello e la preelaborazione rapida.
“L’unica differenza tra assistenti di codifica e Twain è che gli assistenti di codifica producono codice, mentre Twain produce messaggi personalizzati di qualità scritta dall’uomo”, ha affermato Liagushkin. “Le sfide rimangono le stesse-per essere preziose, dobbiamo generare copie veloci, convenienti e mantenerle libere da allucinazioni.”
Anticipando il futuro
Guardando al futuro, Liagushkin prevede progressi significativi nella qualità del modello e nell’evoluzione del flusso di lavoro. Tuttavia, sottolinea che l’adozione della tecnologia rimane un fattore critico.
“I progressi nella qualità del modello AI sono sorprendenti e dovremmo aspettarci che i modelli diventino ancora più accurati, stabili ed economici”, ha affermato Liagushkin. “Tuttavia, credo che i cambiamenti veramente trasformativi nei processi di codifica provengano principalmente dall’ingegneria e dalle scoperte di intelligenza artificiale ma dall’evoluzione del flusso di lavoro e della mentalità.”
Anche le considerazioni etiche, in particolare la sicurezza dei dati, sono fondamentali. Liagushkin suggerisce di distribuire LLM di codifica all’interno delle reti locali e utilizzare strumenti di restrizione di visibilità.
“Le considerazioni etiche riguardano principalmente la sicurezza dei dati, un problema significativo ma tecnicamente risolvibile”, ha affermato Liagushkin. “Coding LLMS può essere distribuito all’interno delle reti locali delle organizzazioni, con strumenti di restrizione di visibilità progettati per isolare le sezioni di codice sensibili.”
Il futuro degli strumenti di codifica AI dipende dai progressi tecnologici e un cambiamento nella mentalità all’interno della comunità di sviluppo.