Versa un po' di CodeWhisperer, lo strumento di codifica assistita alimentato da intelligenza artificiale di Amazon. Da oggi è kaput — più o meno.
CodeWhisperer è ora Q Developer, una parte della famiglia Q di Amazon di chatbot AI generativi orientati al business che si estende anche al nuovo annunciato Q Business. Disponibile tramite AWS, Q Developer aiuta con alcune delle attività che i programmatori svolgono nel corso del loro lavoro quotidiano, come il debug e l'aggiornamento delle app, il troubleshooting e la scansione della sicurezza — molto simile a quanto faceva CodeWhisperer.
In un'intervista con TechCrunch, Doug Seven, GM e direttore delle esperienze per lo sviluppatore di AI presso AWS, ha implicito che CodeWhisperer era un po' un fallimento in termini di branding. Le metriche di terze parti riflettono ciò; anche con un livello gratuito, CodeWhisperer ha faticato a eguagliare il momentum del principale concorrente GitHub Copilot, che conta oltre 1,8 milioni di utenti individuali paganti e decine di migliaia di clienti corporate. (Certamente le prime impressioni negative non hanno aiutato.)
"CodeWhisperer è dove abbiamo iniziato [con la generazione di codice], ma volevamo davvero avere un marchio — e un nome — che si adattasse a un'ampia gamma di casi d'uso," ha detto Seven. "Puoi pensare a Q Developer come all'evoluzione di CodeWhisperer in qualcosa di molto più ampio."
Con questo obiettivo, Q Developer può generare codice, incluso SQL, un linguaggio di programmazione comunemente usato per creare e gestire database, nonché testare tale codice e assistere nella trasformazione e implementazione di nuovo codice ideato dalle query dei programmatori.
Similmente a Copilot, i clienti possono ottimizzare Q Developer sui loro codici interni per migliorare la pertinenza delle raccomandazioni di programmazione dello strumento. (Anche il now-deprecated CodeWhisperer offriva questa opzione, tra l'altro.) E, grazie a una funzionalità chiamata Agents, Q Developer può eseguire autonomamente attività come implementare funzionalità e documentare e rifattorizzare (cioè ristrutturare) il codice.
Fai una richiesta a Q Developer come "crea un pulsante 'aggiungi ai preferiti' nella mia app," e Q Developer analizzerà il codice dell'app, genererà nuovo codice se necessario, creerà un piano passo dopo passo e testerà il codice prima di eseguire le modifiche proposte. I programmatori possono esaminare e iterare il piano prima che Q lo implementi, collegando i passaggi e applicando aggiornamenti attraverso i file necessari, i blocchi di codice e le suite di test.
"Ciò che accade dietro le quinte è che Q Developer effettivamente avvia un ambiente di sviluppo per lavorare sul codice," ha detto Seven. "Quindi, nel caso dello sviluppo di una funzionalità, Q Developer prende l'intero repository di codice, crea un branch di quel repository, analizza il repository, svolge il lavoro che gli è stato chiesto e restituisce quei cambiamenti di codice allo sviluppatore."
Amazon afferma che gli Agents possono automatizzare e gestire i processi di aggiornamento del codice, con conversioni Java attualmente attive (in particolare Java 8 e 11 costruite con Apache Maven alla versione Java 17) e le conversioni .NET in arrivo. "Q Developer analizza il codice — cercando tutto ciò che deve essere aggiornato — e apporta tutte quelle modifiche prima di restituirlo al programmatore per la revisione e il commit da parte loro," ha aggiunto Seven.
Per me, Agents somiglia molto a Copilot Workspace di GitHub, che genera e implementa piani per la risoluzione degli errori e l'introduzione di nuove funzionalità nel software. E — come con Workspace — non sono del tutto convinto che questo approccio più autonomo possa risolvere i problemi legati agli assistenti di codifica alimentati da intelligenza artificiale.
Un'analisi di oltre 150 milioni di righe di codice commitate nei repository di progetti negli ultimi anni da parte di GitClear ha scoperto che Copilot stava portando a un maggiore numero di codici errati inviati ai codici. Altrove, i ricercatori sulla sicurezza hanno avvertito che Copilot e strumenti simili possono amplificare i bug esistenti e i problemi di sicurezza nei progetti software.
Questa situazione non sorprende. Gli assistenti di codifica alimentati da intelligenza artificiale sembrano impressionanti. Ma vengono addestrati sul codice esistente e le loro proposte riflettono i pattern nel lavoro di altri programmatori — lavori che possono essere gravemente difettosi. I tentativi degli assistenti creano bug che sono spesso difficili da individuare, specialmente quando i programmatori — che stanno adottando massicciamente gli assistenti di codifica AI — si affidano al giudizio degli assistenti.
In territori meno rischiosi al di là della codifica, Q Developer può aiutare a gestire l'infrastruttura cloud di un'azienda su AWS — o almeno fornire loro le informazioni di cui hanno bisogno per gestirla autonomamente.
Q Developer può soddisfare richieste come "Elencami tutte le mie funzioni Lambda" e "elencami le risorse che risiedono in altre regioni AWS." Attualmente in anteprima, il bot può anche generare (ma non eseguire) comandi dell'interfaccia a riga di comando di AWS e rispondere a domande correlate ai costi AWS, come "Quali sono stati i tre servizi più costosi nel Q1?"
Quanto costano queste comodità generative AI?
Q Developer è disponibile gratuitamente nella Console AWS, su Slack e IDE come Visual Studio Code, GitLab Duo e JetBrains — ma con delle limitazioni. La versione gratuita non permette l'ottimizzazione per librerie, pacchetti e API personalizzati e sottopone gli utenti a un regime di raccolta dati per impostazione predefinita. Impone anche limiti mensili, tra cui un massimo di cinque attività di Agents (ad esempio l'implementazione di una funzionalità) al mese e 25 query sulle risorse dell'account AWS al mese. (Mi sembra incredibile che Amazon imponga un limite alle domande che si possono fare sui propri servizi, ma eccoci qui.)
La versione premium di Q Developer, Q Developer Pro, costa $19 al mese per utente e aggiunge limiti di utilizzo più elevati, strumenti per gestire utenti e politiche, accesso single sign-on e — forse più importante — indennità di proprietà intellettuale.
In molti casi, i modelli alla base dei servizi di generazione di codice come Q Developer sono addestrati su codice che ha diritti d'autore o è sotto una licenza restrittiva. I fornitori affermano che il fair use li protegga nel caso in cui il modello sia stato sviluppato su un codice con copyright conosciuto o sconosciuto — ma non tutti concordano. GitHub e OpenAI stanno subendo una causa d'azione collettiva che li accusa di violare il copyright permettendo a Copilot di rigurgitare frammenti di codice con licenza senza fornire credito.
Amazon afferma che difenderà i clienti di Q Developer Pro da eventuali reclami che accusano il servizio di violare i diritti di proprietà intellettuale di terze parti a condizione che lascino che AWS gestisca la loro difesa e risolva "come AWS ritiene appropriato."