Slide 1

Slide 1 text

The quest to the language Graal: one JVM to rule them all Elder Moraes Developer Advocate @elderjava

Slide 2

Slide 2 text

@elderjava 2 Demo time!!!

Slide 3

Slide 3 text

@elderjava 3 bit.ly/elderyt Developer Advocate at Red Hat Board Member at SouJava Author of Jakarta EE Cookbook Helps developers to build and deliver awesome applications

Slide 4

Slide 4 text

@elderjava 4 PERFORMANCE Only for languages with high Investments High performance for all languages INTEROPERABILITY High cost for serialization Zero overhead TOOLING Each language use its own tools (debugging, profiling, etc) Shared tools for all languages Usually Graal VM

Slide 5

Slide 5 text

@elderjava 5 Performance

Slide 6

Slide 6 text

@elderjava 6 Languages Performance Benchmark

Slide 7

Slide 7 text

@elderjava 7 Math function in different environments

Slide 8

Slide 8 text

@elderjava 8 The secret: Graal compiler • JIT (Just in Time) compiler • AOT (Ahead of Time) compiler • Written in Java - easier and faster to evolve (even more optimisation options available) • Years and years of research and work

Slide 9

Slide 9 text

@elderjava 9 Interoperability

Slide 10

Slide 10 text

@elderjava 10

Slide 11

Slide 11 text

@elderjava 11

Slide 12

Slide 12 text

@elderjava 12

Slide 13

Slide 13 text

@elderjava 13 Truffle: a language implementation framework • Make possible to implement language interpreters • Truffle uses GraalVM on your behalf to gives you a JIT compiler for your language • So... today GraalVM is a JIT compiler for Java, JavaScript, Ruby, R and Python

Slide 14

Slide 14 text

@elderjava 14

Slide 15

Slide 15 text

@elderjava 15 Truffle has an API for polyglot code

Slide 16

Slide 16 text

@elderjava 16 ***IMPORTANT*** • The point is not to mix code from different languages, but: • Allows libs interchange among languages • Select the best (or preferred) language for your task

Slide 17

Slide 17 text

@elderjava 17 Tooling

Slide 18

Slide 18 text

@elderjava 18 Tooling • If you are a Java developer, probably you are used to high quality tools • If you are not… Truffle comes to the rescue • Whatever tool you make using Truffle’s tool API, you’ll only write it once

Slide 19

Slide 19 text

@elderjava 19 More demos!!!

Slide 20

Slide 20 text

@elderjava 20

Slide 21

Slide 21 text

@elderjava 21 https://chrisseaton.com/truffleruby/tenthings/

Slide 22

Slide 22 text

@elderjava 22 Graal VM Advisory Board Bernd Mathiske Amazon Bruno Caballero Microdoc Chris Seaton Shopify Chris Thalinger Twitter Fabio Niephaus Hasso Plattner Graeme Rocher Object Computing Johan Vos Gluon Max Andersen Red Hat Michael Hunger Neo4j Sébastien Deleuze VMware Thomas Wuerthinger Oracle Xiaohong Gong Arm Technology Source: https://www.graalvm.org/community/advisory-board/

Slide 23

Slide 23 text

@elderjava 23 developer.redhat.com

Slide 24

Slide 24 text

@elderjava 24 Thank you!