Как мы на JFuture 2019 ходили: обзор большой JVM-конференции

JFuture 2019 обзор обложка

16 ноября в Минске прошла вторая по счёту конференция для всех адептов JVM-языков — JFuture 2019. Сотрудники редакции Tproger посетили её и приготовили обзор.

Место проведения и немного истории

В этом году JFuture прошла в VOKA Cinema by Silver Screen — одном из самых больших мультиплексов Минска. Такое неочевидное место выбрано не случайно: всё дело в самой концепции мероприятия.

JFuture родилась из международной конференции Java Day, проводимой при поддержке Oracle во многих городах мира. Java Day проводилась на регулярной основе, но в один прекрасный момент организаторам наскучили серьёзные академические доклады о спецификациях, многопоточности и проблемах с памятью, и они захотели сделать что-то самобытное и живое. Так, на стыке JVM, науки и искусства родилась конференция JFuture. Впервые она прошла в 2018 году в одном из старейших театров Беларуси — Национальном Купаловском театре. И, конечно, логичным развитием места проведения стал теперь уже кинотеатр, причём самый технологичный из существующих в Минске.

К тому же, где ещё вы сможете послушать лекции по Java с попкорном, в удобных креслах и на большом экране?

Организация

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

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

Доклады

С приветственным словом публику встретила главный организатор конференции Дарья Милько из SPACE_. Она поздравила участников с открытием и рассказала, как пройдёт мероприятие, а затем дала слово первому спикеру. Кстати, выступала Дарья, как и остальные спикеры, на английском.

Конференция прошла в два потока, с полным списком докладов можно ознакомиться на странице JFuture. Мы расскажем только о тех выступлениях, которые смогли посетить.

Uncovering Project Amber

Открыла конференцию Мала Гупта, Developer Advocate из JetBrains, с докладом о проекте Amber. Она начала своё выступление с введения в саму инициативу, её целях и методах улучшения Java. Затем спикер описала изменения, уже вошедшие в стандарт языка благодаря усилиям проекта: и вывод типов локальных переменных с помощью var, и switch-выражения, представленные в Java 13.

После началось самое интересное — Мала рассказала о новых фичах и возможностях, которые только планируется внедрить в Java. Среди них:

  • sealed типы и новое ключевое слово Record, позволяющее избавить разработчика от написания boilerplate-кода типа геттеров, сеттеров, методов toString() и equals();
  • перечисления с внутренними переменными и даже generic-перечисления;
  • «сопоставление с образцом» для упрощения языковых конструкций вида if (obj instanceof Obj) {...};
  • однострочные методы с синтаксисом, заимствованным у лямбда-функций.

В заключении Мала сделала важный вывод: «Изменения постоянны — просто примите это». Ведь языки программирования, как и любые другие, постоянно видоизменяются и улучшаются под стать окружающему миру.

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

Efficient web apps with Spring Boot 2

Стефан Николл из Pivotal затронул очень болезненную для многих Java-разработчиков тему повышения производительности и скорости работы веб-приложений. Безусловно, оптимизировать можно очень долго: рефакторить код, находить узкие места в сетевой инфраструктуре и ускорять работу баз данных. Но так ли это нужно, если в большинстве случаев выигрыш в производительности не стоит всех затраченных на улучшение этой самой производительности средств? К такому выводу и пришёл спикер, представив публике быстрый и эффективный способ оптимизации с помощью Project Reactor. Это кроссплатформенный проект, предоставляющий API для работы с реактивными стримами.

Стефан много кодил сам, попутно объясняя, что значит та или иная строчка кода, и показывал происходящие с приложением изменения в режиме реального времени с помощью софта для метрик Prometheus. В конце доклада ему удалось значительно уменьшить задержки в отдельных запросах и продемонстрировать полностью рабочий прототип приложения на Spring WebFlux. Конечно, не обошлось и без ограничений реактивного стека: например при использовании WebFlux все микросервисы и драйверы должны быть реактивными. Это значит, что вы не сможете пользоваться Spring Data JDBC или JPA.

JVMs in Containers: Best Practices

Следующий посещённый нами доклад дал качественную вводную о лучших практиках работы с проектами на JVM-платформе в контейнерах.

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

Когда с ликбезом было покончено, началась самая интересная часть выступления — живой кодинг. Дэвид начал со сборки контейнера с банальным «Hello, world», однако тут же возникла неожиданность — образ «весил» больше 300 Мбайт.
Конечно, сделано это было не просто так. Спикер показал зрителям, как с помощью нехитрых манипуляций с рабочей версией JDK и флагами сборки Docker-файла получилось уменьшить размер более, чем в 15 раз — до 17 Мбайт!

В конце выступления спикер отметил, что для работы с контейнерами и JVM определённо больше подходят дистрибутивы Linux или MacOS. Кроме того, он остановился на преимуществах GraalVM, который упрощает и ускоряет сборку проектов.

The State Of Reactive Streams

Олег Докука, евангелист реактивных стримов, провёл экскурсию в историю реактивного программирования: от зарождения концепции в 1970-х годах в работах сотрудников Microsoft до настоящего времени.

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

Кроме насыщенной программы и харизматичного докладчика внимание цеплял ещё и рисованный гусь, который «жил» на просторах презентации:

Благодаря юмористическим вставкам и миниатюрам с его участием информация воспринималась намного проще.

Live Coding Music 101

Заключительным стало выступление Петра Ягельского из TouK. Он показал, как с помощью вашего любимого языка программирования и MIDI-контроллера можно играть настоящую электронную музыку. И не просто показал, а сыграл несколько электронных композиций «на лету».

Пётр рассказал о самой концепции Live Coding Music и ударился в технические детали синтеза звуков с помощью цифровых сигналов и специализированного ПО. Кроме того, спикер подсказал ресурсы, на которых можно найти бесплатные музыкальные сэмплы.

Выступление отчасти смазала общая возбуждённость аудитории — после финального доклада организаторы пообещали разыграть призы — и заметное волнение спикера. Однако это не помешало послушать электронную музыку и узнать о таком необычном направлении.

Другие активности

Конечно, что за конференция без стендов с партнёрами и клёвыми ништяками?

На площадке JFuture расположились минские и международные компании Kyriba, Playtika, ISsoft, EIS Group и JetBrains. Их представители были готовы пообщаться и позадавать интересные вопросы и задачки, за решение которых можно было получить приятные подарки. Например термокружки, фрисби, йо-йо и наборы значков. И, конечно, тонны стикеров для лэптопа (кажется, скоро придётся завести специальный альбом для них, потому что место на крышке стремительно заканчивается). А Kyriba даже разработала онлайн-квест с вопросами по разным сферам IT, алгоритмам и языкам программирования. За победу в нём можно было выиграть футболку и принять участие в розыгрыше.

Кроме технических задачек Playtika, Kyriba и ISSoft запустили розыгрыш ценных призов, который шёл в течение всего дня. Для участия нужно было либо просто оставить свои данные, либо, в случае с Kyriba, заработать определённое количество баллов в онлайн-квесте.
Призы были действительно стоящими: PS4 Pro, SSD на 1 Тбайт и автономный робот.

Заключение

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

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

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

Не смешно? А здесь смешно: @ithumor