Salta al contenuto principale

Mojo diventa open source: il linguaggio per AI e calcolo ad alte prestazioni apre completamente il codice

Inviato da tuxsa il
mojo

Mojo è ora open source. Modular ha annunciato l'apertura del codice del proprio linguaggio di programmazione, pubblicandolo con licenza Apache 2.0. È un passaggio importante per un progetto nato con l'ambizione di combinare la semplicità dell'ecosistema Python con le prestazioni e il controllo normalmente associati ai linguaggi di sistema.

La decisione arriva pochi giorni dopo Mojo 1.0, versione che rappresenta la prima base considerata sufficientemente stabile per costruire applicazioni reali e sulla quale Modular intende sviluppare le future evoluzioni del linguaggio.

Mojo è strettamente legato alla figura di Chris Lattner, informatico conosciuto soprattutto per aver avviato LLVM e creato Swift durante il periodo trascorso in Apple. Con Modular, Lattner e il resto del team hanno cercato di affrontare uno dei problemi più interessanti dell'attuale sviluppo software: conciliare la produttività di linguaggi ad alto livello come Python con la necessità di sfruttare in maniera efficiente CPU, GPU e acceleratori dedicati all'intelligenza artificiale.

La scelta non è casuale. Python è diventato il linguaggio dominante nell'intelligenza artificiale e nel machine learning, ma gran parte delle operazioni ad alte prestazioni viene in realtà eseguita da librerie e componenti scritti in C, C++ o in linguaggi specifici per gli acceleratori.

Mojo prova a ridurre questa distanza.

La sintassi è deliberatamente familiare a chi conosce Python e i due ecosistemi possono interoperare: Mojo può utilizzare codice Python e Python può interagire con componenti realizzati in Mojo. Allo stesso tempo il nuovo linguaggio mette a disposizione strumenti più vicini alla programmazione di sistema e alla gestione efficiente dell'hardware.

L'obiettivo è poter utilizzare lo stesso linguaggio per scrivere sia il codice applicativo ad alto livello sia parti nelle quali prestazioni, parallelismo e accesso all'hardware diventano fondamentali.

Un aspetto particolarmente interessante è infatti l'attenzione alla programmazione delle GPU. Mojo è stato progettato pensando a un mondo nel quale il calcolo non avviene più soltanto sulle CPU tradizionali, ma viene distribuito tra processori general purpose, GPU e acceleratori specializzati.

È proprio questo scenario a rendere importante l'apertura del progetto.

Fino a oggi una delle principali riserve nei confronti di Mojo riguardava infatti il suo modello di sviluppo. Un linguaggio che aspira a diventare parte dell'infrastruttura utilizzata per intelligenza artificiale e calcolo ad alte prestazioni pone inevitabilmente una domanda: quanto è opportuno costruire software destinato a durare decenni sopra una tecnologia controllata da una singola azienda?

La pubblicazione del codice cambia significativamente questo quadro.

Modular ha scelto la Apache License 2.0, una licenza open source permissiva che consente di utilizzare, modificare e distribuire il software anche all'interno di progetti commerciali. L'azienda sottolinea inoltre di voler permettere l'adozione di Mojo nel maggior numero possibile di contesti.

Questo non significa naturalmente che Mojo diventerà automaticamente un concorrente di Python, Rust, C++ o altri linguaggi consolidati. La maturità di un linguaggio non dipende soltanto dalla qualità del compilatore: servono librerie, strumenti di sviluppo, documentazione, comunità, stabilità delle API e anni di utilizzo reale.

Ma l'apertura del codice elimina uno degli ostacoli più importanti alla costruzione di quella comunità.

La notizia assume un significato ancora maggiore perché arriva dopo la recente acquisizione di Modular da parte di Qualcomm. Una possibile preoccupazione era che l'ingresso in una grande azienda potesse rendere ancora più chiuso lo sviluppo della tecnologia. Per il momento è accaduto l'opposto: Mojo 1.0 è seguito dall'apertura del linguaggio con una licenza libera e ampiamente utilizzata.

Rimane naturalmente da vedere quale sarà il modello di governance del progetto e quanto spazio avranno realmente sviluppatori e organizzazioni esterne nelle decisioni future. Pubblicare il codice è un passaggio fondamentale, ma costruire una vera comunità open source richiede qualcosa di più di una licenza.

Ed è forse questo l'aspetto più interessante da osservare nei prossimi mesi.

Mojo nasce in un momento nel quale l'intelligenza artificiale sta aumentando enormemente l'importanza delle infrastrutture software utilizzate per programmare acceleratori e sistemi eterogenei. Rendere aperto un linguaggio progettato specificamente per questo scenario significa permettere a sviluppatori, ricercatori e organizzazioni di studiarlo, modificarlo e contribuire alla sua evoluzione.

Dopo anni nei quali abbiamo discusso soprattutto di modelli AI aperti o proprietari, la libertà degli strumenti con cui quei modelli vengono costruiti ed eseguiti potrebbe diventare una questione altrettanto importante.