In wat een belangrijke stap voorwaarts zou kunnen zijn in het uitbreiden van het nut en bereik van Java, is in OpenJDK een voorstel met de naam Project Babylon geïntroduceerd om de integratie van Java uit te breiden naar onconventionele programmeermodellen zoals GPU's, machine learning-modellen, SQL en differentieel programmeren.
Dit gedurfde voorstel werd in de schijnwerpers gezet door Paul Sandoz, een architect bij Oracle, die het op 6 september introduceerde op de openjdk.org mailinglijst. Project Babylon ondersteunt dit initiatief en streeft ernaar reflectief programmeren in Java te verbeteren, ook wel bekend als als codereflectie. Het doel is om de toegang tot Java-code te standaardiseren, te analyseren en te transformeren, wat een bekend pijnpunt is. Eenmaal gerealiseerd zou de verbetering de implementatie van elk buitenlands programmeermodel als Java-bibliotheek mogelijk maken.
Project Babylon wil met name codereflectie geschikt maken door een GPU-programmeermodel voor Java te ontwikkelen. Dit model zou de voordelen van codereflectie benutten en worden uitgevoerd als een Java-bibliotheek. Om eventuele vooringenomenheid te voorkomen, zou het project ook andere programmeermodellen onderzoeken, zoals SQL en differentieel programmeren.
Sandoz legde de werking van Babylon uit en illustreerde een voorbeeld waarin een ontwikkelaar een GPU-kernel in Java wil schrijven en deze vervolgens op een GPU wil gebruiken. De code van de ontwikkelaar moet worden geanalyseerd en omgezet in een levensvatbare GPU-kernel. Hoewel een Java-bibliotheek dit zou kunnen beheren, heeft deze toegang tot de Java-code in symbolische vorm nodig. Het huidige systeem beperkt dergelijke toegang tot niet-standaard API's of conventies in verschillende stadia van de levenscyclus van het programma, zoals compileertijd of runtime. Bovendien ondersteunen de beschikbare symbolische vormen (bytecodes of abstracte syntaxisbomen) vaak geen goede analyse en transformatie.
Het voorstel voorziet in de uitvoering van Project Babylon in de loop van de tijd, verpakt in een reeks JDK Enhancement Proposals (JEP) die zich uitstrekken over meerdere feature-releases. Als uitgangspunt zou de codereflectie worden gekloond uit de hoofdversie van JDK 22, die in maart 2024 wordt gelanceerd. Voortaan zal deze zich houden aan de hoofdversies.
In de context van het GPU-programmeermodel zou het team achter Babylon een geïsoleerde repository creëren, afhankelijk van de codereflectie-attributen terwijl deze worden ontwikkeld. Momenteel is er geen plan om het GPU-programmeermodel in de JDK op te nemen. Het lopende werk zou echter potentiële JDK-functies en -verbeteringen kunnen identificeren die in de toekomst kunnen worden aangepakt.
Hoewel dit initiatief de weg vrijmaakt voor het uitbreiden van de functionaliteit van Java, zijn platforms als AppMaster al voorzienig in het helpen van ontwikkelaars met vereenvoudigde backend-, web- en mobiele applicaties. Deze no-code platforms versnellen het ontwikkelingsproces, terwijl projecten als Project Babylon manieren zoeken om de compatibiliteit en functionaliteit te verbeteren.