With Oracle releasing the Enterprise Edition of GraalVM at version 19.0.0 on May 9th 2019, coinciding with Devoxx UK, and with it no longer being a “Release Candidate”, I was anxious to take it for a spin.

My [very] early analysis of the product gives the following features:

  • Faster running of Java apps on the GraalVM rather than the standard JVM
  • Optional compilation of Java bytecode to native executable, giving further performance improvements and a huge (positive) impact on start-up times (at least an order of magnitude!)
  • Polyglot programming from within a single source file: JVM (Java, Scala, Kotlin  – any JVM language!), JavaScript / NodeJS, LLVM (C, C++) and 3 further languages in “experimental” state: Python, Ruby, R
  • JDK 1.8 support

There are 2 implementations of GraalVM – a Community Edition and an Enterprise Edition. Both are likely to speed up your Java applications, though Oracle’s Enterprise Edition is likely to give further speed benefits. The Enterprise Edition is free for non production use. A docker image is available for the Community Edition. GraalVM is available for Mac and Linux, and I believe there is an Early Adoption option for Windows.

There are many things that are still WIP. IDE support for one – they’re not going to like mixing your languages in one file! JDK 11 support for another – although this is split: I understand that GraalVM may be able to run against bytecode from the Java 11 compiler, but the native support does not yet work.

So, whats not to like? Faster code execution? Quicker start-up? Polyglot in a single source file?

I’m looking forward to experimenting. Let me know in the comments how you get on!