Expanding Java's Reach: Introducing Project Babylon
The article discusses a new project called Babylon, which aims to extend the reach of Java to foreign programming models such as SQL, differentiable programming, machine learning models, and GPUs. The project focuses on enabling Java developers to write GPU kernels in Java and execute them on GPUs. Currently, accessing and transforming Java code for GPU programming is limited to non-standard APIs or conventions. Babylon aims to address this limitation by introducing code reflection, an enhancement to reflective programming in Java. Code reflection consists of modeling Java programs as code models, enhancing Java reflection, and providing APIs to build, analyze, and transform code models. The project plans to deliver Babylon in a series of JEPs and will explore other programming models such as SQL and differentiable programming. While the GPU programming model will not be delivered into the JDK, it may identify JDK features and enhancements for future work.