Mojo, il linguaggio per scrivere il futuro dell’AI
Il nuovo linguaggio per sviluppatori AI che incrocia Python e MLIR.
Dati i livelli di popolarità che l’intelligenza artificiale sta raggiungendo ultimamente e considerata la sua conseguente applicazione in diversi campi, è ragionevole pensare che aumenterà ulteriormente anche la popolarità e l’utilizzo del principale linguaggio di programmazione ad essa legato, Python.
Negli ultimi due decenni infatti, Python ha consolidato la sua posizione come linguaggio predominante relativamente sviluppo dell’intelligenza artificiale, grazie alla sua sintassi semplice, ad un gran numero di biblioteche e al suo ricco ecosistema. Ma non è solo.
Ha recentemente fatto la sua apparizione sulla scena anche un nuovo linguaggio di programmazione votato allo sviluppo dell’AI, potenziale concorrente del primo. Stiamo parlando di Mojo. Annunciato lo scorso 2 maggio da Modular, il nuovo linguaggio combina la sintassi di Python con la portabilità e le prestazioni di C, presentandosi quindi come ideale per la ricerca e la produzione di AI.
La programmazione di sistemi di basso livello e le funzionalità di compilazione avanzate vengono fornite tramite MLIR, framework del compilatore di rappresentazione intermedia multilivello. Essendo basato sul framework MLIR, Mojo è portabile su una grande varietà di dispositivi hardware (CPU, GPU e TPU), cosa che permette di poter compilare lo stesso codice per dispositivi diversi senza apportare modifiche al codice di base.
Presentato come più veloce di C++, più facilmente hackerabile di CUDA di Nvidia e sicuro alla pari di Rust, Mojo nasce con lo scopo di colmare il divario esistente tra ricerca e produzione, sfruttando la sintassi Python, la programmazione dei sistemi e la metaprogrammazione in fase di compilazione.
Si può quindi parlare di Python++?
Siamo effettivamente di fronte ad un superset di Python, compatibile con tutti i programmi dello stesso già esistenti, grazie al quale è possibile scrivere applicazioni veloci, piccole, facilmente implementabili e che facciano uso di tutti i core e gli acceleratori messi a disposizione.
Ne deriva che il potenziale di Mojo supera quello di un semplice linguaggio puro per modelli di AI e ML. Chi già ne ha fatto uso sostiene che lo stesso può essere utilizzato per scrivere tutto con un unico linguaggio, dal codice Python scalabile alla programmazione hardware, senza la necessità di ricorrere a C++ o CUDA.
Per quanto riguarda la gestione della memoria, il compilatore di Mojo tiene traccia della vita di una variabile utilizzando l’analisi statica e distrugge i dati non appena non sono più in uso.
Perchè un nuovo linguaggio?
Una delle principali motivazioni per le quali vengono creati nuovi linguaggi di programmazione è che gran parte dei sistemi di programmazione esistenti basa il suo funzionamento su acceleratori (come le GPU) e supporta unicamente il caricamento dei dati, la pre e post-elaborazione e l’integrazione con sistemi esterni scritti in altre linguaggi. Quello che Modular AI vuole fare con Mojo è unire tutte queste funzioni in un unico nuovo linguaggio.
Un linguaggio di programmazione avente una potente metaprogrammazione in fase di compilazione, che incorpori tecniche di compilazione adattiva, memorizzazione nella cache durante il processo di compilazione e altre funzionalità che i linguaggi esistenti tuttora non supportano.
In ogni caso Mojo è ancora in fase embrionale come linguaggio di programmazione e, pur supportando già molte delle basilari funzionalità di Python, non supporta ancora le classi, per esempio.
Guidata da Chris Lattner, alla base di progetti di compilatori e linguaggi di programmazione di successo come clang, LLVM, Swift e il framework MLIR, Modular è senza ombra di dubbio un’azienda da non perdere di vista.
Mojo spiegato direttamente da chi lo ha creato:
Fonti
New Language for AI Development: Mojo builds on Python with the Power of C
Mojo: The Future of AI Programming
https://codeconfessions.substack.com/p/mojo-the-future-of-ai-programming