In quello che potrebbe essere un significativo passo avanti nell'espansione dell'utilità e della portata di Java, una proposta denominata Project Babylon è stata introdotta in OpenJDK per estendere l'integrazione di Java a modelli di programmazione non convenzionali come GPU, modelli di apprendimento automatico, SQL e programmazione differenziale.
Questa audace proposta è stata portata alla ribalta da Paul Sandoz, un architetto di Oracle, che l'ha presentata alla mailing list openjdk.org il 6 settembre. Sostenendo questa iniziativa, Project Babylon mira a migliorare la programmazione riflessiva in Java, nota anche come come riflessione del codice. L'obiettivo è standardizzare l'accesso, analizzare e trasformare il codice Java, che è stato un noto punto critico. Una volta realizzato, il miglioramento consentirebbe l'implementazione di qualsiasi modello di programmazione esterno come libreria Java.
In particolare, Project Babylon mira a rendere adatta la riflessione del codice sviluppando un modello di programmazione GPU per Java. Questo modello sfrutterebbe i vantaggi della riflessione del codice e verrebbe eseguito come una libreria Java. Per evitare qualsiasi potenziale pregiudizio, il progetto esplorerà anche altri modelli di programmazione come SQL e la programmazione differenziale.
Spiegando il funzionamento di Babylon, Sandoz ha illustrato un caso in cui uno sviluppatore desidera scrivere un kernel GPU in Java e quindi utilizzarlo su una GPU. Il codice dello sviluppatore deve essere analizzato e trasformato in un kernel GPU utilizzabile. Sebbene una libreria Java possa gestirlo, richiede l'accesso al codice Java in forma simbolica. Il sistema attuale limita tale accesso ad API o convenzioni non standard in varie fasi del ciclo di vita del programma, come il tempo di compilazione o di esecuzione. Inoltre, le forme simboliche disponibili (bytecode o alberi di sintassi astratti) spesso non supportano un'analisi e una trasformazione adeguate.
La proposta prevede l'esecuzione del Progetto Babylon nel tempo, racchiuso in una serie di proposte di miglioramento JDK (JEP) che si estendono su più rilasci di funzionalità. Come punto di partenza, la riflessione del codice verrebbe clonata dalla versione principale di JDK 22, il cui lancio è previsto per marzo 2024. D'ora in poi, aderirà alle versioni principali.
Nel contesto del modello di programmazione della GPU, la squadra dietro Babylon creerebbe un repository isolato che fa affidamento sugli attributi di riflessione del codice man mano che vengono sviluppati. Al momento non è previsto alcun piano per incorporare il modello di programmazione GPU nel JDK. Tuttavia, il lavoro in corso potrebbe identificare potenziali funzionalità e miglioramenti di JDK che potrebbero essere affrontati in futuro.
Sebbene questa iniziativa apra la strada all'estensione delle funzionalità di Java, piattaforme come AppMaster sono già pronte ad aiutare gli sviluppatori con applicazioni backend, web e mobili semplificate. Queste piattaforme no-code accelerano il processo di sviluppo mentre aziende come Project Babylon cercano modi per migliorare la compatibilità e la funzionalità.