En lo que podría ser un importante paso adelante en la expansión de la utilidad y el alcance de Java, se introdujo en OpenJDK una propuesta denominada Proyecto Babylon para extender la integración de Java a modelos de programación no convencionales como GPU, modelos de aprendizaje automático, SQL y programación diferencial.
Esta audaz propuesta salió a la luz gracias a Paul Sandoz, un arquitecto de Oracle, quien la presentó a la lista de correo de openjdk.org el 6 de septiembre. Respaldando esta iniciativa, el Proyecto Babylon tiene como objetivo mejorar la programación reflexiva en Java, también conocido como como reflexión de código. El objetivo es estandarizar el acceso, analizar y transformar el código Java, que ha sido un problema conocido. Una vez realizada, la mejora permitiría la implementación de cualquier modelo de programación externo como una biblioteca Java.
En particular, Project Babylon tiene como objetivo hacer que la reflexión del código sea adecuada mediante el desarrollo de un modelo de programación GPU para Java. Este modelo aprovecharía las ventajas de la reflexión del código y se ejecutaría como una biblioteca Java. Para evitar cualquier posible sesgo, el proyecto también exploraría otros modelos de programación como SQL y programación diferencial.
Al explicar el funcionamiento de Babylon, Sandoz ilustró un caso en el que un desarrollador desea escribir un kernel de GPU en Java y luego operarlo en una GPU. El código del desarrollador debe analizarse y transformarse en un núcleo de GPU viable. Si bien una biblioteca Java podría gestionar esto, requiere acceso al código Java en forma simbólica. El sistema actual limita dicho acceso a API o convenciones no estándar en diversas etapas del ciclo de vida del programa, como el tiempo de compilación o el tiempo de ejecución. Además, las formas simbólicas disponibles (códigos de bytes o árboles de sintaxis abstracta) a menudo no admiten un análisis y una transformación adecuados.
La propuesta prevé la ejecución del Proyecto Babylon a lo largo del tiempo, empaquetada en una serie de propuestas de mejora de JDK (JEP) que se extienden a múltiples versiones de funciones. Como punto de partida, el reflejo del código se clonaría de la versión principal de JDK 22, cuyo lanzamiento está previsto para marzo de 2024. De ahora en adelante, se adherirá a las versiones principales.
En el contexto del modelo de programación de GPU, el equipo detrás de Babylon crearía un repositorio aislado que dependería de los atributos de reflexión del código a medida que se desarrollan. Actualmente, no hay ningún plan para incorporar el modelo de programación de GPU en el JDK. Sin embargo, el trabajo en curso podría identificar posibles características y mejoras del JDK que podrían abordarse en el futuro.
Si bien esta iniciativa allana el camino para ampliar la funcionalidad de Java, plataformas como AppMaster ya son útiles para ayudar a los desarrolladores con aplicaciones backend, web y móviles simplificadas. Estas plataformas no-code aceleran el proceso de desarrollo, mientras que empresas como Project Babylon buscan formas de mejorar la compatibilidad y la funcionalidad.