ChatGPT (Chat Generative Pre-trained Transformer) è un chatbot basato su un modello conversazionale di machine learning molto evoluto che potrebbe rivoluzionare molte attività umane di natura intellettuale: dalla stesura di un articolo alla creazione di una canzone, fino alla scrittura del codice di un software. Quest’ultimo è proprio uno degli esempi riportati sulle pagine del blog ufficiale per dimostrare in che modo risponda a un ipotetico programmatore alle prese con il debug di codice che contiene un errore. Alla fine del dialogo, durante il quale ChatGPT ribadisce più volte l’importanza del contesto per poter risolvere il problema, il chatbot suggerisce una possibile soluzione. Stack Overflow, sito sul quale si possono porre domande su svariati argomenti di programmazione, nel dicembre scorso ha deciso di bannare l’utilizzo del modello, a pochi giorni dal suo lancio avvenuto il 30 novembre 2022 come app gratuita su App Store e Google Play. Le motivazioni che hanno portato a questa decisione sono sintetizzate in un post del sito, che rivendica l’importanza della fiducia tra i membri della community: “Questa fiducia viene meno – si legge nel post – quando gli utenti copiano e incollano informazioni nelle risposte senza verificare che la risposta fornita da GPT sia corretta, assicurandosi che le fonti utilizzate nella risposta siano citate correttamente (un servizio che GPT non fornisce) e verificando che la risposta fornita da GPT risponda in modo chiaro e conciso alla domanda posta”.
Indice degli argomenti
Che cosa può fare ChatGPT per sviluppatori e tech company
OpenAI, l’organizzazione non profit che opera nello sviluppo dell’intelligenza artificiale amichevole (friendly AI) a cui si deve la nascita di ChatGPT, non sembra per ora preoccuparsi di un certo nervosismo suscitato nel mondo degli sviluppatori. D’altra parte, i limiti del sistema sono già indicati esplicitamente dai suoi creatori, quando affermano che si tratta di un “modello addestrato sui dati, non di un vero ingegnere del software”. Chi pensasse ad esempio di poterlo usare per imparare a programmare, rimarrebbe deluso. Quanti invece, consapevoli delle sue effettive opportunità, decidessero di adoperarlo come ausilio per il proprio lavoro, potrebbero ricavarne dei vantaggi. Ecco, di seguito, alcuni benefici di cui si possono avvalere direttamente le figure professionali che lavorano per una tech company e, indirettamente, le stesse tech company in termini di maggiore produttività e accelerazione del time to market.
Generare codice
Probabilmente è l’uso più comune di ChatGPT. È possibile generare codice in diversi linguaggi di programmazione, tra cui Python, Java, JavaScript, C++ ecc.
Tradurre codice
È anche possibile tradurre il codice da un linguaggio a un altro. Basta chiedere la conversione di un codice in uno diverso, incollando il frammento che si vuole cambiare, e il gioco è fatto.
Risolvere errori nel codice
Come nell’esempio citato all’inizio, qualora si abbia difficoltà a debuggare un segmento di codice, lo si può inserire in ChatGPT che proverà a risolvere il problema.
Condurre unit test
Gli unit test in genere servono a valutare che ogni unità atomica del codice funzioni come ci si aspetta. Ricorrere a ChatGPT consente di condurre questi test, di solito semplici, in maniera poco rischiosa, poiché c’è un’alta probabilità che il modello li esegua correttamente.
Ottenere suggerimenti sui casi d’uso
Questa è un’eventualità che si può presentare a un ISV (Independent Software Vendor) alle prese con lo sviluppo di un nuovo prodotto. Il modello si presta a rispondere a quesiti sui casi d’uso più diffusi collegati a un determinato software, offrendo una panoramica sufficientemente esaustiva. Poiché si basa su una mole di dati enorme, permette di rinvenire soluzioni già disponibili sul mercato, al netto della circostanza che i dati su cui è addestrato sono aggiornati al 2021 e, quindi, è bene tenerne conto.
Ottenere idee sul fronte architetturale
Per i system integrator, invece, che hanno ovviamente competenze tecnologiche e di dominio specifiche, ma che desiderano verificare ugualmente se ci sono alternative rispetto all’impianto architetturale e all’infrastruttura IT che intendono proporre a un cliente, ChatGPT può fornire suggerimenti o, comunque, può fungere da fonte di ispirazione.
Non basta saper scrivere codice per sviluppare software
I vantaggi, parziali, elencati sopra dovrebbero far capire che cosa ChatGPT può fare e che cosa non è in grado di fare sia per gli sviluppatori sia per le aziende dell’ampio comparto tech. Se da una parte, ad esempio, è indubbio che possa scrivere codice molto più velocemente di un essere umano, dall’altra è altrettanto evidente che non possa sostituire tutte quelle capacità e competenze che occorrono nello sviluppo del software, di cui la scrittura del codice è solo un tassello. Basti pensare alla forte impronta collaborativa e alle tante skill richiese da metodologie come DevOps o SRE. Molto probabilmente, perciò, ChatGPT andrà in competizione con i dummies che si limitano a copiare-incollare codice da siti come Stack Overflow senza capirne il funzionamento, mentre potrà diventare un assistente prezioso per uno di quei 63 profili professionali ICT identificati in Italia da AgID che non devono temere una competizione che non c’è.