Una riflessione di Markus Eisele di Red Hat su come questa tecnologia entrerà nel mondo gli sviluppatori nel prossimo futuro e ne migliorerà la produttività
Guardare al futuro è sempre difficile perché le cose spesso vanno diversamente rispetto a quanto sia logicamente prevedibile. Tuttavia, non c’è bisogno di possedere particolari arti divinatorie per prevedere un aumento dell’utilizzo dell'intelligenza artificiale nel corso del 2024. Già negli ultimi dodici mesi, strumenti come ChatGPT e soluzioni simili per la creazione di immagini, video e testi sono diventati praticamente mainstream. Continueranno a prendere ulteriormente piede nel lavoro quotidiano di sviluppatori e amministratori, perché le possibilità di applicazione sono molteplici.
Ciò che molti dimenticano, tuttavia, è che gli algoritmi di apprendimento automatico e gli strumenti di AI sono essi stessi applicazioni che attraversano un ciclo di vita molto simile a quello dei software tradizionali. Anche le applicazioni di AI devono essere sviluppate, testate, distribuite, controllate e monitorate, in un processo che si chiama MLOps (Machine Learning Operations). Una sfida che il settore IT dovrà affrontare nel prossimo anno è quella di coniugare il ciclo di vita del software con quello dell’intelligenza artificiale. Non è facile, perché le applicazioni di apprendimento automatico sono progetti di data science scritti principalmente in Python e in altri linguaggi di programmazione influenzati dalla matematica: una sfida per gli sviluppatori che normalmente lavorano con Java, C#, PHP o JavaScript. Tuttavia, piattaforme come Red Hat OpenShift AI si stanno preparando a risolvere il “problema MLOps” con appositi Jupyter Notbook, flussi di lavoro di distribuzione Kubeflow e strumenti simili.
Markus Eisele, Developer Strategist di Red Hat
Ma in che modo AI generativa e modelli linguistici di grandi dimensioni (LLM) faciliteranno la vita degli sviluppatori e influiranno sulla produttività dei team di programmazione e admin? Ecco cinque diversi esempi indicati di seguito.
Chiunque abbia utilizzato l’AI generativa conosce la sua capacità di comprendere anche questioni complesse e di fornire risposte adeguate alle domande. Naturalmente, questo funziona ottimamente anche quando si tratta di programmazione. Sempre più ambienti di sviluppo riceveranno assistenti di codifica in grado di elaborare il linguaggio naturale (Natural Language Processing). Inizialmente, questi assistenti digitali non saranno ancora in grado di scrivere autonomamente programmi molto complessi senza una grande quantità di input aggiuntivi, ma gli strumenti di AI sono già in grado di implementare alcune funzioni di base. L’intelligenza artificiale potrebbe anche rendere il funzionamento di strumenti di automazione informatica come Ansible ancora più semplice e intuitivo, aumentando così la produttività degli sviluppatori.
La democratizzazione delle competenze di programmazione ha anche i suoi lati negativi. Con l’aiuto dei moderni assistenti di codifica, anche i non esperti possono ora scrivere facilmente malware. Tuttavia, nel prossimo anno gli sviluppatori utilizzeranno sempre di più strumenti di intelligenza artificiale per proteggere le loro applicazioni, cercando vulnerabilità e rischi nel codice sorgente. Anche gli amministratori addestreranno algoritmi e modelli linguistici di grandi dimensioni adatti al pentesting dei sistemi e delle applicazioni che gestiscono.
Tutti gli sviluppatori conoscono la frustrazione che si prova quando un’applicazione recentemente creata presenta degli errori. A questo punto inizia la fase di analisi e ricerca che spesso presenta la stessa complessità di trovare un ago in un pagliaio. In futuro, l’intelligenza artificiale renderà questo lavoro molto più semplice. Modelli linguistici di grandi dimensioni, opportunamente addestrati, possono non solo rilevare errori di battitura e parentesi mancanti nel codice, ma anche riconoscere errori logici e istruzioni inadeguate. L’ideale è abbinarli alle specifiche aziendali.
Più un’intelligenza artificiale è addestrata e più dati comparativi sono disponibili per l’algoritmo, più attività impegnative può svolgere. Nel prossimo anno, gli strumenti potrebbero già essere in grado di analizzare il modello di dominio di un’applicazione monolitica. Non appena ciò avverrà, l’intelligenza artificiale sarà in grado di scomporre il monolite in microservizi. La creazione di API che consentono a questi ultimi di comunicare tra loro e l’impacchettamento in container è un esercizio piuttosto semplice per gli sviluppatori: ciò è particolarmente vantaggioso per le aziende che desiderano trasferire le loro applicazioni legacy su una infrastruttura cloud o Kubernetes moderna. I primi modelli sono già disponibili.
Se l’intelligenza artificiale è in grado di comprendere il codice può spiegarlo logicamente agli esseri umani utilizzando un modello linguistico corrispondente. Nel prossimo anno, gli sviluppatori potranno utilizzare strumenti con questa capacità per creare automaticamente la documentazione delle applicazioni o addirittura far inserire all’intelligenza artificiale dei commenti nei punti critici del codice sorgente. La documentazione e i commenti delle applicazioni sono sempre stati un punto dolente per molti sviluppatori perché richiedono tempo prezioso che sarebbe preferibile dedicare alla programmazione.
Il 2024 sarà l’anno dell’applicazione estesa dell’intelligenza artificiale. Da un lato, gli sviluppatori avranno accesso a un’ampia gamma di nuovi strumenti che li supporteranno con funzionalità AI, facilitandone il lavoro quotidiano e aumentandone la produttività. Allo stesso tempo, gli amministratori dovranno occuparsi dello sviluppo e del funzionamento di strumenti e modelli di intelligenza artificiale e della gestione del loro ciclo di vita: compito non facile, che può essere reso più efficace con l’utilizzo di piattaforme avanzate.
Markus Eisele è Developer Strategist di Red Hat