RU / Day 2 / 18:00 / Track 2

GraalVM is a new runtime for programs in different languages including JS. It includes Node.js where V8 is replaced with its own JavaScript engine, written in Java 😱.

Java, perhaps, is not the most obvious choice for the engine implementation, however it opens doors for very interesting capabilities:

  • interop with Java applications and libraries
  • interop with other languages supported by GraalVM: Python, Ruby, R, C/C++ through LLVM
  • running Node.js apps with large memory heaps
  • enhanced sandboxing and security options

In this session, we'll talk about how GraalVM implements support for the languages, how it uses partial evaluation and state-of-the-art JIT compiler to achieve reasonable performance even for extremely dynamic languages. You'll learn about the peculiarities of interoperability of the event-based Node.js environments with the thread-based JVM; about sandboxing the code to restrict its access to the filesystem or network and how GraalVM deals with the native extensions for JavaScript modules.

All in all, you'll learn about a new implementation of the Node.js runtime with its benefits and tradeoffs, and will understand whether you should evaluate it right away or maybe stick to whatever runtime you're using for a while.

Download presentation.

Oleg Šelajev

Oleg Šelajev is a developer advocate for the GraalVM project at Oracle Labs, which aims to make programs run faster and developers more productive. He helps to organize VirtualJUG, the online Java User Group, and a GDG chapter in Tartu, Estonia. Became a Java Champion in 2017. Loves pizza and playing chess. Favorite languages: Java, JavaScript, and Clojure.