Fiumi di parole vengono spese quotidianamente dai mass media sul tema dell’intelligenza artificiale, spesso con superficialità ed all’insegna del sensazionalismo.
Molte delle notizie sono infatti confezionate ad hoc da giornalisti che a malapena conoscono i fondamenti teorici della materia, con il solo fine di suscitare sgomento e curiosità nel grande pubblico.
Un classico e ricorrente equivoco è la considerazione dell’intelligenza artificiale come un insieme di soluzioni unicamente legate all’informatica.
Nei telegiornali si sprecano le immagini di repertorio con loschi figuri incappucciati seduti davanti a schermi con incomprensibili scritte fluorescenti.
Contrariamente a quanto si possa pensare, la maggior parte dei risultati teorici che hanno permesso di raggiungere gli incredibili risultati dei nostri giorni sono vecchi di decenni (i primi quasi di un secolo) e consistono per lo più in modelli matematici e statistici che nulla hanno a che vedere con i computer.
Mettiamo tuttavia temporaneamente da parte la matematica e la statistica e cerchiamo di fare chiarezza su quale sia il legame con l’informatica, rispondendo alla seguente domanda: come viene sviluppata nel 2024 l’intelligenza artificiale?
I telegiornali non hanno del tutto torto, l’AI per esistere ha obbligatoriamente bisogno dei computer ed il motivo è presto detto: è necessario svolgere in maniera ordinata quantità oceaniche di calcoli, in tempi il più possibile ristretti.
I computer comprendono solamente il sistema binario, quindi per creare l’AI team di scienziati in camice bianco dedicano la vita a scrivere interminabili righe di 01100100 per impostare le procedure matematiche necessarie. Questo forse accadeva in qualche ormai datato film anni ‘70.
Oggi la prassi è decisamente cambiata ed uno sviluppatore di applicazioni AI (al quale si fa generalmente riferimento come “Data scientist” o “Machine learning specialist”) si serve dei cosiddetti “linguaggi di programmazione”, i quali vengono insegnati quotidianamente negli istituti tecnici e nelle università. Un linguaggio di programmazione consiste di un insieme di regole e simboli utilizzati per scrivere istruzioni che un computer può comprendere ed eseguire.

I linguaggi di programmazione dunque sostituiscono il codice binario, difficilmente comprensibile ed utilizzabile dagli esseri umani, con parole e frasi decisamente più intuitive tramite le quali è possibile definire procedure logiche e matematiche in modo decisamente più agevole.
All’atto pratico dunque, lo sviluppatore scrive un determinato insieme di parole secondo una specifica sintassi ed un software dedicato si prende la briga di tradurle in codice binario in modo che siano comprensibili al computer.
I linguaggi di programmazione più utilizzati per lo sviluppo dell’AI sono i seguenti; vediamone le principali caratteristiche:
- Python: linguaggio di programmazione noto per la sua sintassi chiara e leggibile, è utilizzato per lo sviluppo di una vasta gamma di applicazioni ed ha oggi assunto il ruolo di “gold standard” nell’ambito del machine learning e dell’intelligenza artificiale in genere.

- Java: linguaggio di programmazione versatile, al prezzo di una sintassi leggermente più complessa rispetto al linguaggio Python garantisce la possibilità di sviluppare applicazioni particolarmente sicure ed affidabili. È principalmente per questi motivi, unitamente al prezioso apporto offerto dall’ormai enorme community di sviluppatori Java, che questo linguaggio si conferma ad oggi il più diffuso al mondo, in particolar modo per lo sviluppo delle classiche applicazioni enterprise.

- C++: linguaggio di programmazione direttamente derivato dal precursore C, diversamente dagli altri permette un controllo profondo della macchina sul quale viene eseguito (un esempio è la gestione diretta della memoria), rendendosi il candidato prescelto per lo sviluppo di applicazioni software particolarmente complesse e che necessitano alte performance, come ad esempio la maggior parte dei videogiochi più recenti. La sintassi è decisamente più complessa rispetto ai linguaggi Java e Python.

- R: linguaggio di programmazione creato per l’analisi statistica e la visualizzazione dei dati, è tipicamente utilizzato nella ricerca scientifica e nell’analisi dei dati. Essendo un linguaggio specificamente pensato per la manipolazione dei dati e non, ad esempio, per la creazione di applicazioni software ad alte performance, la sintassi è relativamente semplice ed accessibile a anche a sviluppatori con poca esperienza.

Tutti questi linguaggi possono essere utilizzati (e, in contesti diversi, lo sono) per lo sviluppo di applicazioni di intelligenza artificiale; tuttavia, il linguaggio che ormai si può dire detenga lo scettro di “Re dei linguaggi per lo sviluppo AI” è Python.
Imparatevi dunque il serpentese e unitevi alla truppa degli sviluppatori più ricercati del momento!

Francesco