Dans ce qui pourrait constituer une avancée significative dans l'expansion de l'utilité et de la portée de Java, une proposition nommée Project Babylon a été introduite dans OpenJDK pour étendre l'intégration de Java à des modèles de programmation non conventionnels tels que les GPU, les modèles d'apprentissage automatique, SQL et la programmation différentielle.
Cette proposition audacieuse a été mise en lumière par Paul Sandoz, architecte chez Oracle, qui l'a présentée à la liste de diffusion openjdk.org le 6 septembre. Pour soutenir cette initiative, le projet Babylon vise à améliorer la programmation réflexive en Java, également connue sous le nom de comme réflexion de code. L’objectif est de standardiser l’accès, l’analyse et la transformation du code Java, ce qui constitue un problème connu. Une fois réalisée, l'amélioration permettrait la mise en œuvre de n'importe quel modèle de programmation étranger en tant que bibliothèque Java.
Notamment, le projet Babylon vise à rendre la réflexion du code adaptée en développant un modèle de programmation GPU pour Java. Ce modèle exploiterait les avantages de la réflexion de code et serait exécuté comme une bibliothèque Java. Pour éviter tout biais potentiel, le projet explorerait également d'autres modèles de programmation comme SQL et la programmation différentielle.
Expliquant le fonctionnement de Babylon, Sandoz a illustré un cas dans lequel un développeur souhaite écrire un noyau GPU en Java puis l'exploiter sur un GPU. Le code du développeur doit être analysé et transformé en un noyau GPU viable. Bien qu'une bibliothèque Java puisse gérer cela, elle nécessite un accès au code Java sous forme symbolique. Le système actuel limite cet accès aux API ou conventions non standard à différentes étapes du cycle de vie du programme, comme au moment de la compilation ou de l'exécution. En outre, les formes symboliques disponibles (bytecodes ou arbres de syntaxe abstraite) ne prennent souvent pas en charge une analyse et une transformation appropriées.
La proposition envisage l'exécution du projet Babylon au fil du temps, regroupée dans une série de propositions d'amélioration du JDK (JEP) s'étendant sur plusieurs versions de fonctionnalités. Pour commencer, la réflexion du code serait clonée à partir de la version principale du JDK 22, dont le lancement est prévu en mars 2024. Désormais, elle adhérera aux versions principales.
Dans le contexte du modèle de programmation GPU, l'équipe derrière Babylon créerait un référentiel isolé dépendant des attributs de réflexion du code au fur et à mesure de leur développement. Il n’est actuellement pas prévu d’incorporer le modèle de programmation GPU dans le JDK. Cependant, les travaux en cours pourraient identifier des fonctionnalités et des améliorations potentielles du JDK qui pourraient être apportées à l'avenir.
Bien que cette initiative ouvre la voie à l'extension des fonctionnalités de Java, des plates-formes comme AppMaster aident déjà les développeurs avec des applications backend, Web et mobiles simplifiées. Ces plates no-code accélèrent le processus de développement tandis que des sociétés comme Project Babylon cherchent des moyens d'améliorer la compatibilité et les fonctionnalités.