Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The quest to the language Graal: one JVM to rule them all

The quest to the language Graal: one JVM to rule them all

Yeah, Frodo… isn’t that easy to work on projects with multiples languages that don’t integrate natively? That’s like a quest to Mordor: a lot of dangerous, pitfalls and epic battles against hordes of Bugs (or Orcs, you name it). In this situation, every developer would like to have a friend like Sam. Someone who would give interoperability among Elves, Dwarves, Java, Python, Scala, Node.js… and that still helps you to create a new language! Well, this friend exists. And he isn’t Sam. Smeagol would call it Precious, but its name is Graal VM. And in this session, we will show you how it will transform the way that you think and build software.

Elder Moraes

June 02, 2020
Tweet

More Decks by Elder Moraes

Other Decks in Technology

Transcript

  1. The quest to the language Graal: one JVM to rule

    them all Elder Moraes Developer Advocate @elderjava
  2. @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
  3. @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
  4. @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
  5. @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
  6. @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
  7. @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
  8. @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/