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
I punti chiave
4' di lettura
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.
loading...