holyjs HolyJS 2019 SPb (24.05.2019 — 25.05.2019)

Node.js: Just as fast, higher, stronger with GraalVM

img

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.

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.