Хабрахабр

Заряди мозги напрямую! Рантаймы, компиляторы и перформанс на Joker 2018

Это статья о том, что в этом плане изменилось за год. Многие из нас ходят на конференции по Java только из-за хардкора.

Можно выделить как минимум: Хардкор бывает нескольких видов.

  • перформансные оптимизации в любых проявлениях;
  • внутренности достаточно сложных технологий (OpenJDK, GraalVM);
  • компиляторы и рантаймы в целом;
  • дизайн языков программирования;
  • проблемы computer science и прикладной математики;
  • и многое другое.

Это как разница между статьей по квантовой гравитации и руководством по вкусной и здоровой пище. В чем разница между обычным докладом и хардкорным? Грубо говоря, это способ стать более хорошим специалистом и поднять больше денег. Правильно приготовить Spring — это, безусловно, очень сложная и интересная задача, которая для многих из нас является большой частью повседневных задач, и, соответственно, доклады Жени Борисова имеют большое практическое значение. Но блеск далёких звезд находится не там.

Под катом небольшая заметка о том, как все это выглядит с точки зрения человека, который помешан на чтении статей, посещении докладов и отсмотру роликов на Ютубе, посвященных Java в широком смысле слова. Поэтому — только хардкор по заветам старой школы.

Это, конечно, полная фигня, учитывая, что только оттуда можно достать действительно ядреный хардкор. Во-первых, многие вообще не ходят по докладам и не смотрят видео от разработчиков технологий. Никому не нужен жиденький хардкорчик!

Для меня основными источниками информации являются почтовые рассылки всевозможных проектов OpenJDK, коммиты в репозиторий, оповещения на GitHub, твиттеры разработчиков и RSS-проектов.

Чтобы сложить из букв «truffle» слово «вечность», нужно убить массу времени и сил. Как правило, это live-информация, которая никак не систематизируется и жрет невероятно много времени. Пошел на несколько часов поспать — а там уже накоммитили:

Поэтому и существуют такие специальные обречённые люди — хабраавторы хаба Java — которые всё это читают, пакуют в единицы смысла и делают из них статьи и доклады.

Настолько залип, что даже пришел сюда работать. С другой стороны, однажды я познакомился с конференциями JUG.ru Group и залип. Вся эта бурная деятельность по написанию постов нужна, чтобы помочь донести сакральные знания до большего количества людей. Скоро буду праздновать год в компании. Моя специальность — обзоры на конференции. Это как раз тот момент, когда закодить за тебя веб-приложение на спринге может каждый, а вот описать это на Хабре… сам не сделаешь – никто не сделает.

Докладчик волей-неволей должен систематизировать свои знания, прежде чем выходить на сцену. В конференциях есть особый стиль и смак. Докладчик должен отвечать со сцены или в дискуссионной зоне быстро и решительно, иначе все посчитают его самозванцем. Докладчик должен регулярно их обновлять, потому что никому не нужен протухший доклад. Короче, на конфе докладчик должен тебе очень много таких вещей, что попроси ты их на гитхабе, был бы послан к лешему или выдавливал бы ответы по полгода.

То есть в мире конференций предостаточно, но этих двух для меня вполне хватает, чтобы загрузиться работой на следующий год. Основных конференций для меня две: JVMLS и наш Joker.

Её знают и любят за хардкор и жесть. Если с JVMLS всё понятно, то Joker — это специальная мультифункциональная штука, которая позволяет понять о Java-разработке всё.

Давайте немного посравниваем в формате было -> стало.

Конференция — это не аналог документации или кукбука, это во многом социальный конструкт, основанный на интересах людей в конкретное время и в конкретном географическом положении. Как известно, Программный комитет формирует программу не как попало, а исходя из предпочтений аудитории и популярных тем. Итак, что у нас было в 2017 году? Условно говоря, Java-конференции 2014 года в Индии сильно отличались от Джокера.

Это был год, отмеченный знаком Java 9 с их модулями и какой-то новой необычайной свободы в собственных решениях.

Талингер с первым докладом про Грааль, в котором просто анонсировалось, что они перевели на него важнейшие сервисы Twitter, и получилось очень хорошо. Целых два доклада про Грааль. Крис Ситон с подробнейшим докладом, как всё это работает внутри.

JIT vs AOT от Ionut Balosin из Люксофта и рассказ про новый JIT в Azul Zing Артура Пилипенко.

Вообще, в кулуарах было много хайпа про Java 9. Липский со злободневным докладом про модули в Java 9.

Крутой доклад Нитсана Вакарта про профайлеры, lock-free алгоритмы Никиты Коваля, и конечно же, доклад Лёши Шипилёва про Шинанду.

Как обычно, все активно интересовались кишками JIT/AOT, в особенности — опенсорсного GraalVM, новыми GC (тогда еще не было ZGC, но была Шинанда), и в последнюю очередь — уже ставшей классикой многопоточкой. Выводы: в прошлом году интересны были детали реализации JDK 9 и модулей — все были слегка не в своей тарелке от этой тихой революции.

Есть какие-то дикие люди, предлагающие мигрировать вначале на JDK 10, чтобы потом было проще переползать на 11, но это странно. Во-первых, теперь мы живём в мире, в котором Java 9 и Java 10 больше не существуют. (Конечно останется, но не обязательно в виде Oracle JDK). Мы живем в мире набирающего обороты JDK 11, самая обсуждаемая тема последних дней — «останется ли джава бесплатной».

К счастью, Джокер не превратился в конференцию по Котлину, хотя, судя по количеству заинтересованных разработчиков и докладчиков, которым есть что рассказать — легко мог бы это сделать. В этом году дичайше хайпанул Котлин.

Это как линуксоиду прийти на доклад Линуса Торвальдса, как джависту прийти на Рейнхольда и Роуза. Соответственно, в программе появился отец Котлина — Андрей Бреслав с докладом об «одном дне из жизни дизайнера языка». Живое воплощение языка — с докладом и часом общения в дискуссионной зоне.

Немногим ранее Андрей делал доклад на организованном нами фестивале TechTrain, так что если после фестиваля остались вопросы — имеется второй шанс их задать. Недавно я ногами сходил в JetBrains на Васильевском, и мы делали вместе с Бреславом интервью для Хабра.

Скоро мы выпустим на Хабре интервью с докладчиками будущего Joker — Никитой Липским и Иваном Углянским. Кастомные компиляторы и рантаймы никуда не делись. Собственно, этот вопрос я придумал именно как взаимодополняющий к заявке на доклад Бреслава. В этом весьма немаленьком разговоре мы выясняем, что такое ExcelsiorJET и что интересного есть в «одном дне работы JVM-инженера».

Никита расскажет о Jigsaw Layers, а Иван — о внутренностях GC. Что будет в докладах Никиты и Ивана? У ExcelsiorJET, кстати, есть бесплатная версия — если ни разу не пробовали, рекомендую скачать и оценить. Для тех, кто с ними еще не знаком: это разработчики из Excelsior, которые реально пишут код собственной реализации Java и обладают сверхглубокими экспертными знаниями в этой области. Оба доклада — в одном и том же четвёртом зале, но в разные дни. С недавнего времени компилятор Котлина собирается именно им.

Но будут там и другие наши соотечественники, с того же переднего края, но с будкой в выставочной зоне вместо доклада. Андрей, Никита и Иван — наши соотечественники, ведущие работу на переднем крае современных рантаймовых технологий, которые приезжают на Joker со своими докладами. С ними мы тоже подготовили большое интервью, которое будет выпущено в ближайшее время. Хочется отдельно отметить Александра Белокрылова с коллегами из компании BellSoft, которые делают Либерику (дистрибутив OpenJDK для Raspberry Pi).

Если сходить на все доклады сразу, то можно неиллюзорно расплавиться. Вообще, обратите внимание на четвёртую колонку в программе Джокера: там же одна жесть!

Если в прошлом году всем хватало хайпа и ужаса вокруг JDK 9 и модулей, то сейчас инфраструктура немного устаканилась, и стало интересно: вот мы мучались-мучались, пережили все испытания, а какие ништяки мы за это получим?

И тут заходит доклад Тагира Валеева про pattern matching, которого мы все годами ждём. Первейшее, что хочет получить прикладной программист — какие-то ништяки в синтаксисе и библиотеках. У Николая Парлога будет обзор Java 11, включая ключевое слово var и всякие фишечки в библиотеках.

В прошлый раз, напоминаю, был необычный доклад про то, что у OSGi есть реальные проблемы, который вызвал массу споров. Дальше дискурс первого дня переходит на Jigsaw Layers Никиты Липского. Может быть, в этот раз Никита расскажет, что нужно делать.

Да-да, и нативную память тоже. И вот тут коварный четвёртый зал заходит с козырей: Паньгин с феерической расстановкой точек над тем, почему Java жрёт память. К сожалению, тут никаких комментариев дать нельзя, потому что у Паньгина все доклады индивидуальные и глубокие.

Это очень хорошее завершение дня, потому что в одном докладе сливаются сразу две темы: и ништяки в языке, и подкапотные кишки. И сразу за ним Марк Хоффман расскажет о том, как рантайм изворачивается, чтобы реализовать все те фичи, которые мы любим в новых версиях Java.

Если в первый день три доклада из пяти были про свежие версии Java (или четыре – смотря как считать), то во второй день 4 доклада помечены тэгом #vm, а пятый – про точное профилирование с помощью нового железа Intel.

Возвращаясь к нашему сравнению с прошлым годом, это продолжение предыдущего доклада с JPoint. Начнем с конца: последний доклад делает Сергей Мельников из Райффайзенбанка. На этот раз мы плотней погрузимся в Intel Processor Trace. Очень рекомендуется посмотреть предыдущую часть, видеозапись имеется по ссылке.

Насколько понял по описанию (я не спрашивал у ПК), доклад будет про множество различных инструментов вроде JCMD, JMX, JVMTI, JPLIS, HPROF, JFR, JMC и как решать с помощью этого конструктора реальные задачи JVM-профилирования. Второй доклад про профилирование — от самого Маркуса Хирта, создателя компании Appeal Virtual Machines, разработавшей JRockit JVM.

Вот вам очень олдфажная картинка, ставь лайк если помнишь:

Два доклада непосредственно по рантайму: от Олега Шелаева и Григория Кошелева.

Ну да, разработчиков много, а Олег — один. Олег Шелаев — единственный официальный евангелист GraalVM в мире. Каждому году свои темы: если в 2017 для успеха доклада достаточно было просто заявить о существовании GraalVM, то сейчас люди начитались кучи хайповых новостей, начали пытаться это использовать и уперлись в ряд проблем. Поэтому и приедет он чуть ли не с самой острой темой мира GraalVM — с устройством и работой SubstrateVM. Кажется, самое крутое здесь — не сам доклад, а возможность поймать Олега в дискуссионной зоне, взять всё, что он рассказал, и задать уточняющие вопросы.

Кстати, уже сейчас можно задавать вопросы в нашем чатике @graalvm_ru в Телеграме (на них даже иногда отвечают).

NET и JVM без всякого Грааля. Если GraalVM позволяет запускать на себе не-JVM языки, то в докладе Григория Кошелева раскрывается особый мир интеграции . Как тебе такое, Илон Маск?

Доклад уникальный тем, что он про GC, но при этом имеет и некий практический смысл. Ну и конечно же, там есть доклад Ивана Углянского, который мы уже вспоминали раньше. Тут же речь пойдёт не об абстрактном алгоритме GC, а о требованиях стандарта и о том, как он фактически воплощен. Согласитесь, обычно доклады про GC — это некая астронавтика, слушать которую или интересно (если это Шипилёв), или можно уснуть посередине (не будем показывать пальцами).

«Jlink и Custom Runtime Image» Юрия Артамонова легко можно отнести к категории докладов и про современные рантаймы, «Fuzzing для тестирования JVM» Максима Казанцева из Azul Systems — тоже. Есть, конечно. Надо понимать, что Joker — это в значительной степени о хардкоре, и даже доклад Джоша Лонга про Reactive Spring не так прост, как кажется.

До Джокера осталось меньше месяца, но я все-таки попробую выделить время и обозреть оставшуюся часть программы в отдельных постах.

Уже пора, да-с. В заключение я могу только посоветовать самостоятельно посмотреть всю программу, и, если понравится — приобрести билеты, потому что они потихоньку дорожают.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть