What’s new in Oracle’s GraalVM multilanguage virtual machine

The universal virtual machine enters production status

What’s new in Oracle’s GraalVM multilanguage virtual machine
Thinkstock

Oracle has delivered a production release of GraalVM, a universal virtual machine for running applications written in any of many languages.

The technology has served as a just-in-time compiler and polyglot runtime for the JVM. GraalVM Version 1.0 provides high performance for individual languages as well as interoperability with no overhead in building polyglot applications, Oracle said.

It can run JVM languages and JavaScript, including Node.js, as well as LLVM bitcode and—in experimental mode—Ruby, R, and Python. Other languages supported on GraalVM include:

  • Java
  • Groovy
  • Kotlin
  • Scala
  • Bitcode created from programs written in C and C++

GraalVM removes isolation between programming languages; interoperability is enabled via a shared runtime.

Rather than converting data structures at language boundaries, GraalVM lets objects and arrays be used directly in foreign languages. For example, Java library functionality could be accessed from Node.js (JavaScript) code. Or a Python statistical routine could be called from Java. Or R could be used to build a complex SVG plot from data managed with another language.

GraalVM can be run standalone, embedded in platforms such as Node.js and OpenJDK, or be use inside databases such as MySQL. Applications can be deployed across the stack via GraalVM execution environments.

Other capabilities in GraalVM include:

  • A mechanism to create precompiled native images for JVM languages with “instant” startup and low-memory footprint.
  • Language-agnostic debugger, profiler, and heap viewer tools.

Where to download GraalVM

You can download GraalVM from graalvm.org.