Come il manager degli strumenti per sviluppatori di Google rende efficiente la programmazione con l’AI.
Pubblicato il da Redazione - Tecnologia
Ryan Salva, project manager di Google per gli strumenti per sviluppatori, osserva da vicino come gli strumenti di intelligenza artificiale stiano trasformando la programmazione. Ora responsabile di Gemini CLI e Gemini Code Assist, Salva sta guidando i programmatori verso il nuovo mondo della programmazione agentica.
Il suo team ha recentemente pubblicato una nuova ricerca di terze parti che esplora come i programmatori utilizzano realmente gli strumenti IA e quali progressi sono ancora da fare. Ho avuto l’opportunità di colloquiare con Salva riguardo al rapporto e alla sua esperienza personale con gli strumenti di codifica basati su IA.
Questa intervista è stata modificata per lunghezza e chiarezza.
Panoramica sulla ricerca
Ogni anno, Google conduce un sondaggio sulle tendenze degli sviluppatori, ma il rapporto di quest’anno si concentra in particolare sugli strumenti di intelligenza artificiale e su come gli sviluppatori “agentici” approcciano la programmazione. Ci sono stati risultati che ti hanno sorpreso?
Un aspetto interessante emerso della ricerca è la data media in cui gli sviluppatori hanno iniziato ad utilizzare strumenti IA: è stata individuata ad aprile 2024, un periodo che coincide con il lancio di modelli come Claude 3 e Gemini 2.5. Questo rappresenta l’inizio di un’era di modelli di ragionamento, e in quel periodo si è anche registrato un miglioramento significativo nella chiamata agli strumenti.
Per le attività di coding, è fondamentale utilizzare informazioni esterne per risolvere problemi; si potrebbe dover compilare il codice, eseguire test unitari e test di integrazione. Sicuramente, il potere di chiamare strumenti è l’elemento cruciale che consente ai modelli di correggersi autonomamente durante il loro funzionamento.
Utilizzo personale degli strumenti IA
Attualmente, la maggior parte del mio coding è legata a progetti hobby e utilizzo prevalentemente strumenti basati su interfaccia a riga di comando, come Gemini CLI. A questo si aggiungono anche un po’ di Claude Code e Codex. Non si utilizza quasi mai uno strumento terminale in modo isolato, quindi ho un approccio eterogeneo agli IDE che adotto. Utilizzo Zed, VS Code, Cursor e Windsurf, cercando di capire come evolve l’industria.
Dal punto di vista professionale, i product manager tendono a lavorare principalmente su documenti, quindi il primo obiettivo è utilizzare l’IA per aiutarmi a redigere specifiche e documenti sui requisiti.
Mi interessa capire come funziona. Stai usando Gemini CLI per costruire Gemini CLI, ma immagino che non funzioni da solo.
Di solito, un task di sviluppo inizia come un problema, ad esempio un ticket su GitHub con un bug. Spesso, per essere onesti, è un problema poco specificato. Utilizzo Gemini CLI per creare un documento di requisiti più dettagliato in Markdown, che tende a contenere circa 100 righe di specifiche tecniche e orientate agli obiettivi. Successivamente, utilizzo Gemini CLI per scrivere il codice sulla base di quelle specifiche.
Nella nostra squadra di ingegneri, esistono diversi livelli di regole e documenti in Markdown che vengono utilizzati dal modello. Questi documenti stabiliscono come lavoriamo: come gestire i test, le dipendenze e così via. Quindi, quando il codice viene generato, si basa anche su queste informazioni.
Durante il troubleshooting, Gemini CLI aggiorna il mio documento dei requisiti segnando i passaggi completati, generando così un commit e una pull request nel repository, permettendo di tornare indietro in caso di necessità.
Stimerei che dal 70% all’80% del mio lavoro avviene nel terminale utilizzando linguaggio naturale, facendo uso di Gemini CLI per elaborare i requisiti, mentre lascio a Gemini CLI il compito di scrivere gran parte del codice, che poi reviso con l’IDE che utilizzo. Principalmente, uso l’IDE come spazio di lettura piuttosto che di scrittura del codice.
Il futuro della programmazione
Cosa ne pensi del futuro della programmazione tradizionale? Passeremo tutto alla gestione tramite finestre del terminale?
Negli ultimi trent’anni, l’IDE è stato il luogo principale per tutte le attività di sviluppo software. Abbiamo sempre utilizzato IDE, browser e finestre terminale insieme. Credo che questo continuerà a essere vero, ma nel tempo trascorreremo sempre più tempo occupandoci dei requisiti, mentre il tempo speso nell’IDE potrebbe diminuire gradualmente. Questo cambiamento potrebbe avvenire su un arco temporale piuttosto lungo.
Ci sono molte preoccupazioni su ciò che questo significa per il progresso dello sviluppo software. Se tra dieci anni non ci occuperemo più di codice, quale sarà il ruolo degli sviluppatori? Ci sarà ancora spazio per loro nel mercato del lavoro?
Credo che la figura dello sviluppatore si trasformerà e si avvicinerà più a quella di un architetto. Sarà necessario affrontare problemi complessi e scomporli in compiti più semplici da risolvere, focalizzandosi sulla visione d’insieme piuttosto che sul linguaggio intermedio per tradurre in codice macchina.
Queste nuove tendenze sono documentate in rapporti ufficiali e studi condotti da esperti del settore, come il report annuale di Google sulle tendenze degli sviluppatori, e la crescente letteratura scientifica sul tema della programmazione agentica. Fonti ufficiali, come Google Developers, possono fornire ulteriori informazioni su questi cambiamenti epocali nel mondo della tecnologia.
Fonti:
Non perderti tutte le notizie di tecnologia su Blog.it