Excellent code quality without compromising compile time?
Oracle championing cause for Graal to be part of OpenJDK
Excitement is brewing in the world of OpenJDK as fledging Java compiler project, Graal is receiving plaudits from all sides, including Oracle reps.
The goal for this new project seems set, as the lead for the open-source Maxine JVM project, Douglas Simon outlines within the OpenJDK discussion. The Graal project is 'to design a dynamic compiler in Java that produces excellent code quality without compromising compile time and memory usage by the JVM', using the Graal compiler from the Maxine code base as a starting point.
The Oracle labs VM research team are investigating the possibility of implementing the compiler with both meta-circular JVMs (Maxine) and with native JVMs like Hotspot. Getting it into OpenJDK would certainly give it the perfect opportunity to help form Oracle's vision for the next-generation Java - better performance, more scalability, and support for all the latest languages within an all-encompassing JVM. That's the theory anyway.
Meta-circular means it would be implemented in Java and Java code runs on itself without requiring an additional virtual machine. Principal architect at Apollo Group and Java specialist, Hari Gottipati told more of the possibilities for Graal. He said:
Traditionally JVMs are written in C or C++. Java implementation enables seamless integration between a virtual machine and application resources such as objects and threads.Think about coding in Java, compiling it using a compiler written in Java, and running it in a JVM, which is again written in Java - it's Java all the way and imagine the seamless integration between an application and a VM.
Oracle already seems committed to integrating the newest JVMs into the latest versions of the language, with work already underway to merge JRocket into the Hotspot JVM in time for JDK 8 in 2013. It's good to see that OpenJDK is always open to innovation and, by initiating the Graal project, we could well see the next generation of the JVM.