RU / День 1 / 16:00 / Зал 3

Комментарий Программного комитета:

Издревле JS на сервере запускали на разных VM, но с появлением Node.js запуск не на V8 стал чем-то странным. V8 действительно очень крут, но иногда нам нужно подружить серверный JS с другим окружением, например, с Java для энтерпрайза или с Python для доступа к бесконечному источнику ML-библиотек. Кажется, GraalVM может помочь нам...

GraalVM — это новый рантайм для программ, написанных на разных языках, в т. ч. JS. В него входит Node.js, где V8 заменен его собственным движком JavaScript, написанным на Java 😱.

Возможно, Java и не самый очевидный выбор для реализации движка, но она открывает очень интересные возможности:

  • интеграция с Java-приложениями и библиотеками;
  • интеграция с другими языками, которые поддерживает GraalVM: Python, Ruby, R, C/C++ через LLVM;
  • запуск Node.js-приложений с большими memory heaps;
  • улучшенная безопасная среда и другие параметры безопасности.

В этом докладе мы поговорим о том, как в GraalVM реализована поддержка языков, как с помощью частичных вычислений и новейшего JIT-компилятора GraalVM удается достигать неплохой производительности даже в самых динамических языках. Вы узнаете об особенностях интеграции управляемых событиями сред Node.js с управляемой потоками JVM, о том, как запускать код в безопасной среде, чтобы ограничить его доступ к файловой системе или сети, и о том, как GraalVM работает с нативными расширениями модулей JavaScript.

Из доклада вы узнаете о новой реализации Node.js-рантайма со всеми его плюсами и минусами и поймете, стоит ли попробовать эту реализацию сейчас или продолжить работать с вашим текущим рантаймом.

Олег Шелаев

Олег — developer advocate проекта GraalVM в OracleLabs, организатор VirtualJUG и митапов GDG Tartu. В 2017 году стал Java Champion. Любит виртуальные машины, компиляторы, смотреть, как бегут бенчмарки, почти все языки программирования и немного шахматы.