ChatGPT's Codex: Prime Impressioni

L’ultima innovazione di OpenAI, l’agente AI Codex, introduce un approccio innovativo alla codifica: un ambiente di “programmazione intuitiva” alimentato da un’interfaccia simile a ChatGPT. Sebbene il concetto possa inizialmente sembrare una trovata pubblicitaria, le capacità del nuovo agente Codex sono notevolmente impressionanti.

OpenAI ha etichettato Codex come un’anteprima di ricerca, indicando che è ancora in fase di sviluppo attivo. Attualmente, è accessibile agli abbonati ChatGPT Pro, Enterprise e Team, con piani per estenderne la disponibilità agli utenti Plus ed Edu nel prossimo futuro.

Secondo l’annuncio di OpenAI, il nome Codex è stato associato a uno strumento di programmazione in evoluzione dal 2021. In questa discussione, “Codex” si riferisce alla versione appena annunciata.

Codex risiede sui server di OpenAI e si integra con i repository GitHub. Le dimostrazioni suggeriscono che Codex funzioni come un programmatore aggiuntivo all’interno di un team.

Gli si può dare istruzioni per risolvere una serie di bug ed eseguire l’attività di conseguenza. Inoltre, richiede l’approvazione per le modifiche al codice, sebbene sembri in grado di modificare il codice autonomamente.

Codex può analizzare e modificare il codice, identificare problemi specifici, individuare aree di miglioramento ed eseguire altre attività di codifica e manutenzione. Ogni attività avvia un nuovo ambiente virtuale, consentendo all’AI di gestire tutto, dal concetto e dalla progettazione ai test unitari.

Un Cambio di Paradigma nella Codifica

Ciò significa un autentico cambiamento nel paradigma della codifica. La precedente assistenza alla codifica AI coinvolgeva principalmente funzionalità di completamento automatico, generando automaticamente righe o blocchi di codice basati sul codice esistente.

La tecnologia è progredita al punto in cui l’AI può scrivere o eseguire il debug di piccoli segmenti di codice. Questo è l’aspetto che mi ha particolarmente interessato per quanto riguarda i test di programmazione di ZDNET.

Un altro ruolo dell’AI è l’analisi del sistema complessivo. Recentemente, ho esplorato un nuovo strumento di Deep Research in grado di decostruire intere basi di codice e fornire revisioni e raccomandazioni del codice.

Codex raggiunge ora un punto in cui intere attività di programmazione possono essere affidate all’AI nel cloud, in modo simile alla delega di attività ad altri programmatori di un team o a programmatori junior che apprendono la manutenzione del codice.

OpenAI descrive questo come “Sviluppo di software nativo dell’agente, in cui l’AI non solo ti assiste mentre lavori, ma si assume il lavoro in modo indipendente”.

Il video di lancio ha dimostrato la capacità di Codex di gestire più attività contemporaneamente, ciascuna operante in un ambiente virtuale separato e isolato.

I programmatori hanno assegnato attività all’agente, che ha quindi eseguito il lavoro in modo indipendente. Al termine, l’agente ha fornito i risultati dei test e ha suggerito modifiche al codice.

La demo ha mostrato Codex che esegue correzioni di bug, ricerca di errori di battitura, offre suggerimenti per le attività ed esegue il refactoring a livello di progetto (modifica del codice per migliorarne la struttura senza modificarne il comportamento).

Gli sviluppatori e i progettisti senior hanno familiarità con l’articolazione dei requisiti e la revisione del lavoro degli altri. L’utilizzo di Codex non introdurrà modifiche significative per loro. Tuttavia, gli sviluppatori privi di forti capacità di articolazione dei requisiti e di revisione potrebbero trovare la gestione di Codex un po’ impegnativa.

Nonostante ciò, se lo strumento funziona come dimostrato, Codex consentirà a team più piccoli e a singoli sviluppatori di ottenere di più, ridurre le attività ripetitive e rispondere in modo più efficace alle segnalazioni di problemi.

Potenziali Insidie e Strategie di Mitigazione

Le prime esperienze con le capacità di codifica di ChatGPT hanno rivelato una tendenza a perdere la concentrazione o a deviare dalla direzione prevista. Sebbene ciò non sia catastrofico per i singoli blocchi di codice, potrebbe portare a conseguenze indesiderate e problematiche se a un agente di codifica viene consentito di operare con una supervisione limitata.

Per risolvere questo problema, OpenAI ha addestrato Codex ad aderire alle istruzioni delineate in un file AGENTS.md. Questo file, situato nel repository, consente a programmatori e team di guidare il comportamento di Codex. Può includere istruzioni sulle convenzioni di denominazione, le regole di formattazione e qualsiasi altra linea guida coerente desiderata durante il processo di codifica. Estende essenzialmente le impostazioni di personalizzazione di ChatGPT a un ambiente di team incentrato sul repository.

Inoltre, OpenAI ha introdotto una versione di Codex chiamata Codex CLI che viene eseguita localmente sulla macchina di uno sviluppatore. A differenza del Codex basato su cloud, che opera in modo asincrono e fornisce rapporti al termine, la versione locale funziona tramite la riga di comando del programmatore e funziona in modo sincrono.

In sostanza, il programmatore inserisce un’istruzione e attende che il processo Codex CLI restituisca un risultato. Ciò consente ai programmatori di lavorare offline, sfruttando il contesto locale della propria macchina di sviluppo attiva.

Prototipo di Ricerca con Potenzialità Promettenti

La demo è stata impressionante, ma gli sviluppatori hanno sottolineato che ciò che stavano mostrando e rilasciando è un prototipo di ricerca. Sebbene offra quelli che hanno definito “momenti magici”, richiede ancora uno sviluppo significativo.

Ho cercato di capire le implicazioni specifiche di questa tecnologia per il futuro dello sviluppo e per il mio processo di sviluppo. Il mio prodotto principale è un plugin WordPress open source, con plugin aggiuntivi proprietari. Codex potrebbe potenzialmente analizzare il repository pubblico per il plugin core open source.

Tuttavia, Codex potrebbe gestire la relazione tra un repository pubblico e più repository privati come parte di un singolo progetto complessivo? E come si comporterebbe quando i test comportano non solo il mio codice, ma anche l’avvio di un intero ecosistema aggiuntivo (WordPress) per valutare le prestazioni?

Come programmatore solista, riconosco i potenziali vantaggi di uno strumento come Codex. Anche l’abbonamento Pro da 200 dollari al mese potrebbe valerne la pena. Assumere un programmatore umano costerebbe notevolmente di più, supponendo che potessi ricavarne un valore tangibile e monetizzabile.

Come team manager e comunicatore esperto, mi sento a mio agio a delegare attività a qualcosa come Codex. Non è significativamente diverso dalla comunicazione con un membro del team tramite Slack.

Il fatto che Codex fornisca raccomandazioni, bozze di versioni e attenda la mia approvazione fornisce un senso di sicurezza rispetto al semplice fatto di consentirgli di operare liberamente all’interno del mio codice. Ciò apre intriganti possibilità per un nuovo ciclo di vita dello sviluppo, in cui gli esseri umani definiscono gli obiettivi, l’AI redige potenziali implementazioni e gli esseri umani approvano o reindirizzano l’AI per un’altra iterazione.

Domande Senza Risposta e Implicazioni Future

Sulla base delle mie precedenti esperienze con l’utilizzo dell’AI per la codifica, Codex potrebbe potenzialmente ridurre i tempi di manutenzione e accelerare la fornitura di correzioni agli utenti. Tuttavia, la sua efficacia nell’aggiunta di nuove funzionalità sulla base di un documento di specifiche rimane poco chiara. Allo stesso modo, la difficoltà di modificare la funzionalità e le prestazioni dopo l’implementazione di Codex deve ancora essere determinata.

È interessante notare che la codifica AI si sta evolvendo in più aziende a un ritmo simile. Pubblicherò presto un altro articolo sull’agente di codifica di GitHub Copilot, che condivide alcune funzionalità con Codex.

In quell’articolo, ho espresso preoccupazioni sul fatto che questi agenti di codifica potrebbero soppiantare i programmatori junior e entry-level. Al di là delle implicazioni per i posti di lavoro umani, c’è anche la questione delle opportunità di formazione critical che potrebbero andare perse se deleghiamo una fase intermedia della carriera di uno sviluppatore all’AI.

L’”Into the Unknown” dell’Industria del Software

C’è una canzone nel film Frozen II della Disney chiamata “Into the Unknown”, interpretata da Idina Menzel. La canzone riflette il conflitto interno del personaggio principale tra il mantenimento dello status quo e l’avventura “nell’ignoto”.

Con lo sviluppo di software agentico, al di là della semplice codifica AI, l’intera industria del software si sta imbarcando in un viaggio “nell’ignoto”. Man mano che ci affidiamo sempre più a sistemi basati sull’AI per sviluppare il nostro software, il numero di manutentori qualificati probabilmente diminuirà. Questo è accettabile fintanto che le AI continuano a funzionare efficacemente e rimangono accessibili. Tuttavia, stiamo permettendo alle competenze essenziali di atrofizzarsi e sacrificando posti di lavoro ben retribuiti per la comodità di delegare a un’infrastruttura basata sul cloud e non ancora senziente?

Il tempo rivelerà le risposte e, si spera, questa rivelazione non avverrà quando saremo fuori tempo massimo.

Prenderesti in considerazione la delega di attività di sviluppo reali a uno strumento come questo? Quale pensi che sarà l’impatto a lungo termine sui team di software o sui singoli sviluppatori? E sei preoccupato di perdere competenze o ruoli critical man mano che una parte maggiore del ciclo di vita del codice viene affidata all’AI?