Breaking language barriers with GraalVMs polyglotism

8bdf324c167915ac8fd76f8b84ce5b5e?s=47 Milda
December 13, 2018
29

Breaking language barriers with GraalVMs polyglotism

GraalVMs polyglot feature overview slides

8bdf324c167915ac8fd76f8b84ce5b5e?s=128

Milda

December 13, 2018
Tweet

Transcript

  1. Milda Glebauskaitė Breaking language barriers with GraalVMs polyglotism mildag@wix.com twitter@mildagle

  2. Hi. I am Milda

  3. Introduction GraalVM allows you to write polyglot applications with a

    seamless way to pass values from one language to another. With GraalVM there is no copying or marshalling necessary as it is with other polyglot systems. This lets you achieve high performance when language boundaries are crossed. Most of the time there is no additional cost for crossing a language boundary at all.
  4. Why bother?

  5. Why bother? https://www.emojicode.org/

  6. Why bother? https://en.wikipedia.org/wiki/List_of_programming_languages > 700

  7. WHAT WE CURRENTLY HAVE Implementation VM Implementation VM

  8. WHAT WE CURRENTLY HAVE Implementation VM

  9. WHAT WE CURRENTLY HAVE Implementation VM Java byte code

  10. Implementation VM

  11. WHAT WE CURRENTLY HAVE Nashorn

  12. How it works? https://chrisseaton.com/rubytruffle/dls15-interop/dls15-interop.pdf

  13. Read ... ... HOW IT WORKS Polyglot interoperability protocol JS

    C
  14. HOW IT WORKS = a . obj value

  15. HOW IT WORKS = a . obj value

  16. HOW IT WORKS = a obj value Read

  17. HOW IT WORKS = a Is C? obj value ->

  18. HOW IT WORKS

  19. Performance?

  20. The goal is similar level of performance as Java has

  21. Competitive performance

  22. Let’s try it!

  23. The downsides Not so seamless Maintenance Javascript, not NodeJS

  24. Valid use-cases Very specific tasks Migrating code from one language

    to another Reusing libraries
  25. So?

  26. Thank You mildag@wix.com twitter@mildagle