Joker 2021: прошедшая Java-конференция и общая статистика
Закончилась конференция для Java-разработчиков Joker 2021, проходившая с 25 по 28 октября 2021 года. Мероприятие стало четвёртым из девяти конференций, проводимых в этом году компанией JUG Ru Group в рамках осенне-зимнего сезона.
Обзор рассказывает об увиденных и услышанных докладах, о полученных при этом впечатлениях и о произошедших изменениях в проведении конференции формата онлайн.
Первая часть обзора посвящена непосредственно происходившему на конференции, во второй части приводится статистика и связанные с ней интересные факты о конференциях и митапах JUG Ru Group.
Открытие
Открыли конференцию Андрей Когунь, Алексей Стукалов и Паша Финкельштейн, представив участников программного комитета, спикеров, экспертов и ведущих главной студии конференции.
Были анонсированы предстоящие доклады с указанием их градаций по мере увеличения сложности содержащейся в них информации.
Активности, бывшие на конференции:
- доклады;
- мини-доклады;
- тематические обсуждения.
Доклады
Открывающим конференцию стал доклад Самопишущийся код, авторами которого являются Никита Поваров и Роман Поборчий. Живой, интересный и расширяющий кругозор доклад. Был сделан плавный переход от философских вопросов к техническим подробностям с перечислением существующих на настоящий момент продуктов. На мой взгляд, рассказанное некоторым образом перекликается с докладом Тагира Валеева годичной давности.
Продолжением стало тематическое обсуждение тем доклада ведущими конференции с Никитой и Романом, о чём в обзоре рассказывается чуть дальше.
Ещё один качественный доклад от Sebastian Daschner под названием Building applications with Neo4j & Quarkus. На этот раз было продемонстрировано совместное использование в одном приложении графовой базы данных Neo4j и фреймворка Quarkus. Были показаны особенности построения модели данных (на любимую у спикера тему кофе), эффективности построения запросов для выборки данных, предоставления рекомендаций пользователям. Код показанного приложения можно найти на GitHubздесь.
Доклад Архитектура математических вычислений на Kotlin (автор — Александр Нозик) привлёк внимание фундаментальным подходом, продемонстрированным для раскрытия темы. Несмотря на то, что в теме доклада упоминался только Kotlin, повествование охватывало значительно больше языков программирования, поднимая общие для всех них проблемы. Просмотр доклада может оказаться полезным программистам как JVM-языков, так и любых других языков программирования.
Предполагаю, очень многим участникам конференций JUG Ru Group было приятно увидеть и услышать в очередной раз Алексея Шипилёва. Его доклад Java-объекты наизнанку отвечал на часто возникающий у многих Java-разработчиков вопрос — сколько занимает в памяти объект конкретного типа. Скрупулёзно, как это всегда делает Алексей, было изложено, какие факторы могут повлиять на размещение Java-объектов в памяти. Статья для дальнейшего изучения в блоге Алексея.
Алексею в представлении доклада помогал, задавая вопросы и ведя дискуссию, Иван Углянский.
Доклад JPA-паззлеры (+Hibernate и Spring) в исполнении Андрея Беляева проходил в форме вопросов-ответов. В студии ответы старался угадать Андрей Когунь. Всем смотревшим доклад предлагалось во время эфира делать то же самое, присылая ответы в Telegram-чат.
Ключевой темой доклада был JPA (Java Persistence API, ныне Jakarta Persistence) и особенности использования данной спецификации вместе с Lombok, Hibernate и Spring Boot. Доклад получился живым, интригующим, полным неожиданных ответов на заданные вопросы.
Practical steps for creating safer software (Code included) от Steve Poole был скорее вводным в тему безопасности в отношении языка Java докладом. Примеры кода были (два-три), но большая часть времени была отдана описанию общих принципов и подходов. Просмотр доклада вполне уместен и полезен до последующего изучения вопросов безопасности с детальным изложением технических подробностей.
Выходя за рамки контейнера — компактные и быстрые контейнеры с нативным образом (и без) — доклад Дмитрия Чуйко об особенностях развёртывания Java-приложения с использованием контейнеризации, включая преимущества и недостатки дополнительного применения при этом нативных образов посредством GraalVM. Совершенно замечательный доклад с явной практической направленностью. Кроме GraalVM и минималистичного Linux-дистрибутива Alpine был упомянут относительно новый продукт компании BellSoft, называющийся Liberica Native Image Kit. Мастерски ассистировал Дмитрию в представлении доклада Андрей Паньгин.
Евгений Мандриков в докладе Decomposing Compose рассказал на примере Kotlin-кода для Jetpack Compose об особенностях прохождения пути от пользовательского исходного кода до компиляции и байт-кода. Так как отправной точкой для доклада стала возникшая проблема в библиотеке JaCoCo, которой я сам постоянно пользуюсь (спасибо Евгению за прекрасный инструмент), было вдвойне интересно следить за увлекательным повествованием.
В заинтриговавшем ещё до просмотра Техническом интервью с Евгением Борисовым под прицел Евгения Борисова попали двое участников программного комитета (Паша Финкельштейн, Андрей Когунь) и Барух Садогурский.
Каждый из трёх интервьюируемых выступил в двух разных образах. Паша, Андрей и Барух стойко и мужественно переносили нападки Евгения.
Барух в очередной раз проявил свои недюжинные артистические способности, поразив даже всё ожидавшего от него Женю.
Было и весело, и интересно, и познавательно, как и было заявлено в анонсе доклада.
В докладе Обратная совместимость, инструменты и подходы для контроля над dependency hell представители Сбера Евгений Калинин и Александр Лампель поделились опытом управления и контроля компонентами большой системы, постоянно эволюционирующими и использующими новые версии зависимостей. Доклад представляет интерес для разработчиков, часто сталкивающихся с подобными проблемами на практике.
Никак нельзя было пройти мимо доклада Алексея Нестерова и Олега Докуки, т.к. хотелось узнать, Что нового в Spring Framework 6? Алексей и Олег собрали и классифицировали всю доступную им информацию о деталях ожидаемой версии 6 популярного Spring Framework. Доклад исключительно содержательный и полезный для большинства, учитывая тот факт, что Spring Framework и Spring Boot являются доминирующими продуктами. Весьма интересно через некоторое время будет узнать, насколько оправдались сделанные предсказания.
В качестве дополнительной информации по этой же теме можно упомянуть о недавних докладе Juergen Hoeller на SpringOne и его же посте в официальном блоге Spring.
Мини-доклады
Меньшая по продолжительности, но не менее важная форма донесения информации на конференции — мини-доклады.
Иван Крылов делает всегда очень насыщенные техническими подробностями, содержательные и интересные выступления. Доклад От 11 к 17 версии Java не стал исключением, имея в концентрированном виде информацию, полезную для выполнения успешной миграции Java-приложений с версии Java 11 на 17. Как справедливо заметил докладчик, данный доклад отлично дополняется недавним рассказом Тагира Валеева о нововведениях в языке Java в версии 17.
Тематические обсуждения
Новой оригинальной формой стали тематические дискуссии в студии в перерывах между докладами. Каждый из разговоров ведущих конференции был посвящён теме одного из докладов дня с участием спикеров этого доклада.
В дискуссии первого дня о перспективах автоматизации написания кода участвовали Никита Поваров и Роман Поборчий.
Во второй день дискуссия велась с Андреем Беляевым про Quarkus.
В третий день разговор шёл о рефакторинге с Максимом Гореликовым, Тагиром Валеевым…
… и о языке программирования Scala с Олегом Нижниковым, Антоном Архиповым.
В четвертый день был разговор о Java 17, кроме ведущих, собравший совершенно замечательный набор участников: Дмитрия Чуйко, Владимира Иванова, Тагира Валеева и Алексея Шипилёва.
В тот же четвёртый день с участием Антона Архипова и Тагира Валеева велась дискуссия о языке программирования Kotlin.
Закрытие
Алексей с Андреем закрыли конференцию, напомнив о необходимости заполнения формы обратной связи и ещё раз упомянув о всех причастных к организации конференции: спикерах, участниках программного комитета, экспертах и спонсорах.
Статистика по конференциям и митапам
По ссылке jugspeakers.info доступно приложение (исходный код на GitHub), в котором имеется полная информация о конференциях и Java-митапах от JUG Ru Group, JUG.MSK и JUGNsk (спикеры, доклады, презентации, видео) за все годы.
К осенне-зимнему сезону конференций, проводимых JUG Ru Group, в приложение было добавлено следующее:
- Информация о видео ставших публично доступных докладов конференций компании JUG Ru Group и видео докладов конференции SnowOne 2021 от новосибирского Java-сообщества JUGNsk.
- В раздел статистики был добавлен подраздел OLAP.
О следующих знаменательных событиях, которые произойдут уже скоро, тоже можно узнать из приложения:
- DevOops 2021 (8–11 ноября 2021 года) будет сотой конференцией, организованной JUG Ru Group
- 25 февраля 2022 года исполнится 10 лет JUG Ru Group
Картинка внизу слева демонстрирует первый факт (перейти в раздел События, в области фильтров вверху сбросить флажок Митапы, установить JUG Ru Group в списке Организатор, очистить список Тип события, упорядочить таблицу по конечной дате по возрастанию и перейти на последнюю страницу таблицы). Новая конференция VideoTech станет конференцией номер 103 в конце сезона.
Второй факт (10-летие JUG Ru Group) следует из того, что 25 февраля 2012 года (см. картинку внизу справа) состоялась первая встреча сообщества JUG.ru, на которой выступал Антон Архипов.
Пользователям приложения стали доступны возможности OLAP для исследования и визуализации информации о конференциях и митапах (прямая ссылка на веб-страницу OLAP в разделе статистики).
Существуют три OLAP-куба: типов событий, спикеров и компаний. У каждого куба имеется свой набор измерений (dimensions) и показателей (measures). Данные кубов можно детализировать (выполнить drill-down) в таблице и визуализировать в виде графиков.
Куб типов событий имеет 3 измерения: тип события, город проведения и год. Таблица показывает данные по измерениям тип события и год. Графики строятся по данным всех строк таблицы.
Комментарии к картинкам внизу:
- для получения первой картинки (см. внизу слева) нужно сбросить вверху фильтры полей Организатор и Типы событий;
- средняя картинка ниже демонстрирует возможность отображения графика по данным строки Всего (вверху слева от области графиков необходимо выбрать ссылку Всего);
- для просмотра городов, в которых каждое из типов событий проходило, у строки таблицы типов событий нужно щёлкнуть по самой левой ячейке для раскрытия подтаблицы городов (см. картинку внизу справа).
Куб спикеров событий имеет 3 измерения: спикер, тип события и год. Таблица показывает данные по измерениям спикер и год. Графики строятся по данным первых пяти строк таблицы.
Для выбора отдельных спикеров, по которым хочется увидеть данные, в поле Спикеры нужно начать набирать на клавиатуре фамилию, после чего выбрать элемент из списка. Далее повторить данные шаги для каждого спикера (см. среднюю картинку внизу).
При щелчке в строке таблицы спикеров по самой левой ячейке раскроется подтаблица типов событий, в которых данный спикер принимал участие. На картинке внизу справа отображена информация по Баруху Садогурскому и Евгению Борисову, лидерам по количеству сделанных докладов.
Куб компаний имеет 4 измерения: компания, тип события, спикер и год. Графики строятся по данным первых пяти строк таблицы.
Для выбора отдельных компаний, по которым хочется увидеть данные, в поле Компании нужно начать набирать на клавиатуре наименование компании, после чего выбрать элемент из списка. Далее повторить данные шаги для каждой компании (см. среднюю картинку внизу).
При щелчке в строке таблицы компаний по самой левой ячейке раскроется подтаблица типов событий, в которых данная компания принимала участие. Если щёлкнуть по самой левой ячейке строки подтаблицы типов событий, то внутри строки откроется подтаблица спикеров (которые участвовали в данном типе конференций или митапов и работают в данной компании).
Следует иметь ввиду, что при отображении данных учитывается текущая принадлежность спикера к компании.
Интересные факты по статистике конференций и митапов:
- конференция JUG Ru Group, проведённая наибольшее количество раз в году — это DotNext: она прошла 3 раза в 2016 году (в Москве, Санкт-Петербурге и Хельсинки);
- 17 раз та же DotNext прошла за все годы, на втором месте Mobius с 13 разами (столько будет после проведения в ноябре этого года) и HolyJS с 12 разами (тоже столько будет скоро после проведения через несколько дней);
- рекордсмены по длительности проведения в год — суммарно по 9 дней в 2020 году проходили конференции HolyJS и DevOops;
- больше всего докладов за год (91) было в HolyJS за 2020 год;
- по количеству спикеров в год всех обогнал Heisenbug, набрав 101 в конференциях за 2021 год;
- максимальное количество Java Champions (14) было в JPoint 2019;
- максимальное количество Most Valuable Professionals в год (17) присутствовало на DotNext в 2018 году (7 на конференции в Москве и 12 на конференции в Санкт-Петербурге, т.е. некоторые спикеры приняли участие в обоих);
- среди спикеров чемпионом по количеству докладов является Барух Садогурский — 50 докладов во всех конференциях и митапах за все годы;
- по количеству событий первое место у Евгения Борисова — 31 событие;
- самым разносторонним с максимальным количеством типов событий (10) является Паша Финкельштейн;
- среди компаний практически по всем показателям лидирует JetBrains, например, 255 докладов во всех конференциях и митапах за все годы сделали спикеры, которые работают в настоящий момент в ней.
Cезон онлайн-конференций JUG Ru Group продолжат конференции HolyJS (2–5 ноября 2021 года), DevOops (8–11 ноября 2021 года), C++ Russia (15–18 ноября 2021 года), Mobius (22–25 ноября 2021 года) и VideoTech (1–3 декабря 2021 года).Можно как посетить любую из конференций отдельно, так и купить единый билет на все девять конференций сезона (четыре прошедших и пять оставшихся). Видео докладов становятся доступными сразу же после завершения конференций.