IL Digitale


Il copilota artificiale

Ci sono tanti modi di scrivere software, ed un’infinità di acronimi tra cui destreggiarsi, ma personalmente trovo corretto il concetto di partire dal test dell’utilizzatore, per progettare il codice al meglio. Quali funzionalità offrire, e come deve interagire l’utente affinché sia soddisfatto dell’applicazione che usa? 

Meglio ancora se non lavoro da solo, ma con qualcuno a fianco che guarda cosa scrivo e mi suggerisce come rendere il codice più efficiente, la documentazione più chiara, la vulnerabilità cyber evitata. Se volete approfondire, cercate Behavior Driven Development (BDD) e Pair Programming.

La prima volta che mi sono trovato davanti all’importanza di questi concetti, il software non c’entrava nulla. Mi trovavo in una cabina con cuffie e microfono professionali, per tradurre in tempo reale quanto dicevano sul podio di una conferenza: di fianco a me un’interprete professionista, una copilota con cui mi davo il cambio ogni venti minuti per non fondere il cervello. Lei era uno spettacolo: a differenza di me, molto attento a cosa dicevano in sala, lei traduceva facendo la maglia o il cruciverba. Aveva studiato in anticipo i contenuti della conferenza, conosciuto i relatori e capito il loro messaggio di fondo: traduceva in assoluta scioltezza e mi aiutò tantissimo.

Arriviamo ad oggi, e l’intelligenza artificiale consente anche ai programmatori software di avere un copilota, un robot che può aiutare a scrivere codice sulla base di comandi vocali (“ChatGPT, scrivimi un programma per riordinare il cibo in frigorifero ogni settimana, in Java”*), oppure osservando cos’è stato scritto prima, e scelgono linguaggi diversi a seconda del contesto per ottimizzare il funzionamento.

Strumenti come CodeWhisperer, ChatGPT, GitHub Copilot, Repl.it e Ask Codi, sono solo alcuni dei tanti a disposizione; alcuni sono generalisti ed altri più specializzati in un determinato ambito. Se vi chiedete se il robot può sostituire il programmatore, la risposta resta negativa come per altri esempi descritti in articoli precedenti. Questi strumenti rispondono molto bene a domande ed istruzioni, possono imparare il codice a velocità folle rispetto a noi, ma non riescono a fare l’attività di design e quindi di creazione che serve ad imbastire un nuovo applicativo. Non possono capire a fondo il comportamento (behavior) atteso dal futuro utente del software.

Sono invece complementari rispetto allo sviluppatore, che farebbe bene ad impratichirsi nell’uso degli strumenti più adatti a seconda del contesto. Esattamente come il copilota, questi robot devono essere usati per il pair programming, per assisterci nello sviluppo di codice per quanto possibile efficiente, privo di difetti e vulnerabilità. La buona notizia, specie per chi non ha studiato informatica, è che queste macchine semplificano notevolmente lo sviluppo software, mettendolo a disposizione anche di chi vuole semplicemente riordinare il frigorifero senza dimenticarsi nulla.

 *provate su Google e dopo tre secondi appare

def reorder_fridge_stuff():

  # Get the list of items in the fridge.

  items = get_fridge_items()

  # Iterate through the items and check their quantities.

  for item in items:

    if item['quantity'] <= 5:

      # Reorder the item.

      place_order(item)

# Get the list of items in the fridge.

def get_fridge_items():

  # This function would need to access the fridge and get the list of items inside.

  # The implementation of this function would depend on the type of fridge you have.

# Place an order for an item.

def place_order(item):

  # This function would need to place an order for the item from a grocery store.

  # The implementation of this function would depend on the grocery store you use.


© Riproduzione riservata.
Zafferano

Zafferano è un settimanale on line.

Se ti abboni ogni sabato riceverai Zafferano via mail.
L'abbonamento è gratuito (e lo sarà sempre).

In questo numero hanno scritto:

Angela Maria Borello (Torino): direttrice didattica scuola per l’infanzia, curiosa di bambini
Valeria De Bernardi (Torino): musicista, docente al Conservatorio, scrive di atmosfere musicali, meglio se speziate
Roberto Dolci (Boston): imprenditore digitale, follower di Seneca ed Ulisse, tifoso del Toro
Alessandro Cesare Frontoni (Piacenza): 20something years-old, aspirante poeta, in fuga da una realtà troppo spesso pop
Emanuel Gazzoni (Roma): preparatore di risotti, amico di Socrate e Dostoevskij, affascinato dalle storie di sport
Giovanni Maddalena (Termoli): filosofo del pragmatismo, della comunicazioni, delle libertà. E, ovviamente, granata
Barbara Nahmad (Milano): pittrice e docente all'Accademia di Brera. Una vera milanese di origini sefardite
Riccardo Ruggeri (Lugano): scrittore, editore, tifoso di Tex Willer e del Toro