Всем привет! Во вторник, 15 мая, мы делаем встречу JUG.ru, посвященную GraalVM. Встреча пройдет в петербургском офисе компании T-Systems.
Как вы заметили, я часто пишу на Хабр про Java. Пора нам немного расширить формат общения и встретиться вживую. В качестве темы встречи был выбран GraalVM — как нечто весьма перспективное и довольно популярное на Хабре.
Участие бесплатное, регистрация обязательная. Зарегистрироваться можно тут. Видеозаписи, скорей всего, будут, онлайн-трансляции — не будет.
GraalVM — универсальная виртуальная машина для запуска приложений, написанных на JVM-языках (таких как Java, Scala, Clojure, Kotlin), JavaScript, Python, Ruby, R и языках, основанных на LLVM, таких как C и C++.
Обычно исследовательские проекты выглядят как нечто далекое и слабо применимое. С GraalVM по-другому: очень уж внезапно он вышел на сцену как зрелый конкурент и начал использоваться в таких больших компаниях как Twitter.
Репозиторий GraalVM состоит из нескольких компонентов, про которые мы и поговорим:
- Graal Compiler — оптимизирующий компилятор, поддерживающий статическую и динамическую компиляцию, работающий как отдельно, так и вместе с HotSpot VM. Мы посмотрим, как запускать под ним существующие приложения, и какую пользу (в цифрах) это может принести.
- SubstrateVM — фреймворк для AOT компиляции, превращающий Java-приложения в исполняемые файлы и разделяемые объекты. По сути, наиболее радикальный и читерский (closed world) способ оптимизиации. Опять же, мы посмотрим, что мы можем запустить, чего не можем, и как это влияет на конкретные цифры.
- Truffle — фреймворк для реализации языков программирования. Сама по себе тема разработки языков — очень общая и тянет на отдельный доклад, поэтому здесь мы скорей посмотрим, какие языки нам уже дали из коробки в составе продукта GraalVM, и как это выглядит на практике.
Все вместе дает нам некий продукт GraalVM, который, как Кольцо Всевластия, собирает вместе множество языков программирования и позволяет оптимизировать их выполнение самым радикальным способом. Раньше «моя прелесть» поставлялась только в виде бинарной сборки на сайте Oracle Labs, но буквально пару недель назад такие вещи как GraalJS попали на GitHub под лицензией Universal Permissive License, что делает их разумным выбором для использования в реальных проектах.
Этот доклад — вводный курс по тому, что все это такое и как с этим можно быстро познакомиться.
Автор: Олег Чирухин