L’intelligenza artificiale sta rivoluzionando la
programmazione: ecco come
Tutto sembra cambiato alle radici nel giro di pochi mesi, grazie
all’intelligenza artificiale. E non è finita: continuano ad arrivare strumenti
disponibili
di Alessandro Longo
La programmazione è cambiata alle radici nel giro di pochi mesi, grazie
all’intelligenza artificiale. E non è mica finita: continuano ad arrivare strumenti
disponibili. Finora il punto di riferimento è stato Microsoft, con GitHub Copilot,
e il suo sfidante Amazon CodeWhisperer, anche se i programmatori per molte
attività ricorrono pure al normale ChatGpt di OpenAI. Ad agosto Google ha
rilasciato al pubblico Duet (che non serve solo agli sviluppatori), da maggio
disponibile a utenti selezionati (con lista d’attesa). Negli stessi giorni è arrivato
anche CodeLlama, l’alternativa open e gratuita di Meta.
Copilot, CodeWhisperer, ChatGpt
Partiamo dall’esistente, che è già moltissimo. Per intenderci: “da mesi
programmo con CoPilot metà del codice, quello ripetitivo e noioso, e con
ChatGpt faccio la documentazione, che è pure una parte noiosa del lavoro.
Risultato: qualche giorno fa ho fatto in tre giorni una libreria che prima mi
avrebbe preso un mese intero”, spiega Antonio Cisternino, ricercatore in
informatica all’università di Pisa, dov’è anche presidente del sistema
informatico di ateneo.Copilot scrive codice e completa il lavoro del
programmatore con suggerimenti in tempo reale, basati sul contesto; “capisce
cosa stai facendo e va avanti da solo. Poi devo rivedere velocemente gli errori
che fa, ma il tempo risparmiato è comunque enorme”, aggiunge. Copilot costa
10 dollari al mese o 100 all’anno per utenti normali e 19 euro al mese a
persona per un profilo business, con maggiori funzioni utili ad aziende.Ci sono
30 giorni di prova gratuita.Simile a Copilot è il prodotto Amazon. È più recente
e, almeno per ora, gratuito. Fanno più o meno le stesse cose, con alcune
differenze. Amazon CodeWhisperer supporta 15 linguaggi di programmazione
popolari, tra cui Python, Java, JavaScript e altri.GitHub Copilot, invece, è stato
addestrato su tutti i linguaggi presenti nei repository pubblici, anche se la
qualità del codice suggerito dipende dalla popolarità del linguaggio.Amazon
CodeWhisperer fa parte dell’AWS Toolkit per Visual Studio Code, JetBrains
IDE, AWS Cloud9 e la console AWS Lambda. GitHub Copilot copre invece
editor come Neovim, JetBrains IDEs, Visual Studio e Visual Studio
Code.Entrambi gli assistenti di codifica si integrano con gli editor più diffusi.
CodeWhisperer ha una funzione che facilita l’attribuzione a codice open
source (uno dei problemi di questi strumenti è che tendono a plagiare codice
open senza riconoscerlo); così aumenta la trasparenza e aiuta a evitare
potenziali problemi di licenza. CodeWhisperer può anche contribuire a
migliorare la sicurezza del codice: fa una scansione a caccia di bug e li
corregge. Anche ChatGpt viene usato a questo scopo. “Copilot X, ora in beta,
sarà pure utile per fare analisi del codice; sarà basato su Gpt4 a differenza del
Copilot classico”, aggiunge Cisternino.
Google e Meta
In questo scenario entrano Google e Meta, con due approcci molto diversi. Il
primo integra Duet nel proprio ambiente, mentre Meta ha scelto un approccio
open per la propria IA generativa, in chiaro contrasto con Microsoft e
Google.Duet serve a fornire assistenza ai programmatori durante l’intero ciclo
di vita dello sviluppo, quindi per la codifica, la citazione dei sorgenti, la
copertura dei test, la progettazione e la pubblicazione di API, la migrazione e
la modernizzazione delle applicazioni eccetera.È disponibile tramite plugin o
estensioni negli ambienti di codifica più comuni, tra cui l’IDE VSCode di
Microsoft e gli IDE di JetBrains, come CLion, GoLand, IntelliJ, PyCharm, Rider
e WebStorm. Questa integrazione rende lo strumento molto più utile, poiché
Google non richiede ai programmatori di cambiare piattaforma per utilizzare lo
strumento. Duet costa 30 dollari al mese e fa molte cose, non solo la
programmazione: è un assistente a tutto tondo (anche per mail, presentazioni
eccetera), come Microsoft si accinge a rendere Copilot all’interno del
pacchetto Office. CodeLlama non è tanto un prodotto quando un modello –
anzi tre, di dimensioni diverse – che gli utenti possono usare come vogliono. È
in grado di generare codice e linguaggio naturale sul codice, sia a partire da
richieste di codice sia da linguaggio naturale (ad esempio, “Scrivimi una
funzione che produca la sequenza di Fibonacci”) e può essere utilizzato
anche per il completamento del codice e il debug. Supporta molti dei linguaggi
più diffusi oggi, tra cui Python, C++, Java, PHP, Typescript (Javascript), C# e
Bash.
Formare una nuova generazione di programmatori
“Non c’è più bisogno di insegnare a scrivere come abbiamo fatto finora, in
particolare in C++”, dice Cisternino. “Il futuro della programmazione è quello
che è già presente nei videogame, dove ci sono pochissimi programmatori ma
geniali e tutti gli altri sono artisti, designer, grafici…”, aggiunge.L’idea è che i
programmatori non dovranno più sporcarsi le mani con il codice ma dovranno
essere molto bravi per avere la visione del codice da far sviluppare dalla
macchina e collaborare con lei, correggendone gli errori. Uno dei rischi, citati
da molti esperti, è fidarsi troppo del codice generato artificialmente; con il
risultato di ritrovarsi con programmi zeppi di bug, malfunzionanti ed esposti a
vulnerabilità informatiche sfruttabili da criminali. È il cosiddetto “debito
tecnico”.Uno studio della Cornell Università (ad aprile) ha visto che ChatGpt,
GitHub Copilot e Amazon CodeWhisperer generano codice corretto
rispettivamente nel 65,2%, 46,3% e 31,1% dei casi. Questi strumenti ci
faranno accumulare molto “debito tecnico”, secondo Armando Solar-Lezama,
professore presso il Massachusetts Institute of Technology . “Credo che ci sia
il rischio di accumulare un sacco di codice scadente scritto da una macchina”,
ha detto, aggiungendo che le aziende, per rimediare, dovranno ripensare le
metodologie di lavoro e imparare a collaborare meglio con l’AI. Nella
speranza, anche, che i nuovi strumenti diventino più precisi e dotati di migliori
funzioni di debugging.
fonte: