Programmare Con L'intelligenza Artificiale LK
Programmare Con L'intelligenza Artificiale LK
1
INDICE DEGLI
ARGOMENTI
1. Come impiegare l’AI nella programmazione 4
2. La generazione del codice 5
3. Analizzare il codice 8
4. Modelli a confronto 9
5. L’importanza del saper leggere il codice 10
6. Conclusioni 11
2
La programmazione è un’attività complessa che
si è specializzata col crescere della dimensione
dei programmi. Facciamo il punto sui modelli di
AI disponibili, come ChatGPT, Copilot di GitHub
(Microsoft), Code Whisperer di Amazon, Code LLaMa
di Meta e sulle aspettative nei loro confronti, anche
rispetto all’impatto sul mestiere del programmatore.
3
1.
COME IMPIEGARE L’AI
NELLA PROGRAMMAZIONE
La programmazione è un’attività complessa che si è
specializzata nel tempo al crescere della dimensio-
ne dei programmi. I linguaggi di programmazio-
ne hanno cercato di supportare i programmato-
ri nella composizione di programmi sempre più
complessi fornendo numerosi strumenti di auto-
mazione, partendo dalla compilazione in linguaggio
macchina, passando per gli strumenti di debugging
interattivo, per poi arrivare a programmi che coordi-
nano l’esecuzione di altri programmi (ignoti al tempo
della scrittura dei primi) come avviene da trent’anni
nel Web.
4
2.
LA GENERAZIONE
DEL CODICE
Sebbene possa essere sorprendente chiedere a Cha-
tGPT di generare un programma che genera il frat-
tale di Mandelbrot ed ottenere, se si è fortunati, una
versione dell’algoritmo eseguibile, la generazione
di un algoritmo è completamente diversa dalla
generazione di un sistema. Un sistema è un enor-
me castello di carte dove ciascun elemento si deve
incastrare perfettamente con gli altri pena un errore
e la terminazione del programma. È necessario quin-
di un supporto pervasivo nella generazione di codice
al fine di sviluppare sistemi, e di conseguenza l’inte-
grazione in strumenti di sviluppo capaci di fornire il
contesto al modello di AI al fine di proporre comple-
tamento di blocchi di codici (inclusi i commenti).
6
Il sistema è capace anche di suggerire, oltre ai nomi
delle variabili (per le quali i programmatori seguono
convenzioni condivise o proprie), anche il testo dei
commenti come si può osservare di seguito: è stato
sufficiente cominciare a scrivere l’inizio del commen-
to (con le sole due lettere “Cm” per ottenere una pro-
posta assolutamente ragionevole.
7
3.
ANALIZZARE IL CODICE
Se la generazione del codice è una parte importan-
te visto che i programmi vanno scritti, anche la loro
analisi offre spunti importanti. I principali casi d’uso
sono:
8
4.
MODELLI A CONFRONTO
I ricercatori cercano di confrontare la qualità di que-
sti modelli di manipolazione di codici sorgente, come
ad esempio il confronto tra Chat GPT, GitHub Co-
pilot e Amazon Code Whisperer. Si tratta di studi
ancora nella propria infanzia, la teoria ci insegna che
è in generale impossibile determinare automatica-
mente ed esattamente cosa faccia un programma
dal suo codice sorgente, e si tratta di un limite a cui
sono soggetti sia uomini che macchine. Gli autori
commentano che:
9
5.
L’IMPORTANZA DEL
SAPER LEGGERE
IL CODICE
Per mia esperienza leggere il codice è di gran lunga
più difficile che scriverlo (in fondo è vero anche per
gli spartiti in musica). Un programmatore leggen-
do un codice va oltre la sintassi e riesce a “vedere”
i concetti in esso modellati e il suo funzionamento.
Si tratta di un’abilità che richiede anni di studio per
comprendere il funzionamento dei linguaggi di pro-
grammazione ed altrettanta esperienza che consen-
ta di individuare nel codice pattern e figure comuni.
10
6.
CONCLUSIONI
Ma in fondo Alan Turing all’inizio degli anni ’50 aveva
previsto che dopo una prima fase in cui le macchine
sarebbero state programmate da uomini a un cer-
to punto sarebbero state le macchine stesse a pro-
grammarsi autonomamente. È sicuramente l’inizio
di questo percorso quello a cui stiamo assistendo in
questi ultimi mesi.
11
Network Digital360 è il più grande network in Italia di testate e portali
B2b dedicati ai temi della Trasformazione Digitale e dell’Innovazione
Imprenditoriale, con oltre 50 fra portali, canali e newsletter.
Ha la missione di diffondere la cultura digitale e imprenditoriale nelle
imprese e pubbliche amministrazioni italiane e di fornire a tutti i decisori
che devono valutare investimenti tecnologici informazioni aggiornate e
approfondite.
Il Network è parte integrante di Digital360HUB, il polo di Demand
Generation di Digital360, che mette a disposizione delle tech company
un’ampia gamma di servizi di comunicazione, storytelling, pr, content
marketing, marketing automation, inbound marketing, lead generation,
eventi e webinar.
VIA COPERNICO, 38
20125 - MILANO
TEL. 02 92852785
MAIL: [email protected] ©ICT & Strategy