In OpenJDK wurde ein Vorschlag mit dem Namen „Project Babylon“ eingeführt, um die Integration von Java auf unkonventionelle Programmiermodelle wie GPUs, Modelle für maschinelles Lernen, SQL und differenzielle Programmierung auszudehnen. Dies könnte ein bedeutender Fortschritt bei der Erweiterung des Nutzens und der Reichweite von Java sein.
Dieser mutige Vorschlag wurde von Paul Sandoz, einem Architekten bei Oracle, ins Rampenlicht gerückt, der ihn am 6. September auf der Mailingliste openjdk.org vorstellte. Als Unterstützung dieser Initiative zielt das Project Babylon darauf ab, die reflektierende Programmierung in Java zu verbessern, auch bekannt als: als Codereflexion. Das Ziel besteht darin, den Zugriff auf Java-Code zu standardisieren, ihn zu analysieren und zu transformieren, was ein bekanntes Problem darstellt. Sobald die Erweiterung realisiert ist, würde sie die Implementierung jedes beliebigen fremden Programmiermodells als Java-Bibliothek ermöglichen.
Projekt Babylon zielt insbesondere darauf ab, die Codereflexion durch die Entwicklung eines GPU-Programmiermodells für Java geeignet zu machen. Dieses Modell würde die Vorteile der Codereflexion nutzen und als Java-Bibliothek ausgeführt werden. Um mögliche Verzerrungen zu vermeiden, würde das Projekt auch andere Programmiermodelle wie SQL und Differentialprogrammierung untersuchen.
Sandoz erläuterte die Funktionsweise von Babylon und veranschaulichte einen Fall, in dem ein Entwickler einen GPU-Kernel in Java schreiben und ihn dann auf einer GPU betreiben möchte. Der Code des Entwicklers muss analysiert und in einen brauchbaren GPU-Kernel umgewandelt werden. Eine Java-Bibliothek könnte dies zwar bewältigen, sie erfordert jedoch Zugriff auf den Java-Code in symbolischer Form. Das derzeitige System beschränkt den Zugriff auf nicht standardmäßige APIs oder Konventionen in verschiedenen Phasen des Programmlebenszyklus, beispielsweise zur Kompilierungszeit oder zur Laufzeit. Außerdem unterstützen die verfügbaren symbolischen Formen (Bytecodes oder abstrakte Syntaxbäume) oft keine ordnungsgemäße Analyse und Transformation.
Der Vorschlag sieht die Ausführung von Project Babylon im Laufe der Zeit vor, verpackt in einer Reihe von JDK Enhancement Proposals (JEP), die sich über mehrere Feature-Releases erstrecken. Als Ausgangspunkt würde die Codereflexion aus der Hauptversion von JDK 22 geklont, die im März 2024 erscheinen soll. Von nun an wird sie sich an die Hauptversionen halten.
Im Kontext des GPU-Programmiermodells würde das Team hinter Babylon ein isoliertes Repository erstellen, das auf den Code-Reflektionsattributen bei der Entwicklung basiert. Derzeit ist nicht geplant, das GPU-Programmiermodell in das JDK zu integrieren. Die laufende Arbeit könnte jedoch potenzielle JDK-Funktionen und -Verbesserungen identifizieren, die in Zukunft behandelt werden könnten.
Während diese Initiative den Weg für die Erweiterung der Java-Funktionalität ebnet, unterstützen Plattformen wie AppMaster Entwickler bereits mit vereinfachten Backend-, Web- und mobilen Anwendungen. Diese no-code Plattformen beschleunigen den Entwicklungsprozess, während Unternehmen wie Project Babylon nach Möglichkeiten suchen, die Kompatibilität und Funktionalität zu verbessern.