GraalVM is an integrated, polyglot, high-performance execution environment for dynamic, static, and native languages. It supports Java, Scala, Kotlin, Groovy, other JVM languages, and can run the dynamic scripting languages JavaScript including node.js, Ruby, Python, and so on. It's amazing, versatile, and sometimes to the fresh eyes, it can seem just a bit confusing. In this practical session, we'll learn how to begin using Graal on a typical Java and JavaScript project. What's the best way to obtain GraalVM and plug it in? What to look for regarding the performance improvements? How to organize project files for polyglot interoperability? Should you compile your code ahead-of-time or run it on the stock JVM? How to use the tooling which GraalVM universally supports: profiler, debugger, and heap analyzer. As a result, you'll be ready to try GraalVM on your project, know about which parts of this large project are relevant for your Java code, how to begin your experiments with it, and what to expect from them.

Talk Level:
INTERMEDIATE

Bio:
Oleg Šelajev is a developer advocate for the Graal 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. In his spare time, he is pursuing a Ph.D. in dynamic system updates and code evolution. Previously, Oleg was a part-time lecturer at the University of Tartu and since then enjoys speaking, teaching, and participating in software conferences all over the world. Loves pizza and playing chess. Favorite languages: Java, JavaScript, and Clojure. Java Champions alumni.