Обзор Java-конференции JPoint 2016
22–23 апреля 2016 года в четвёртый раз прошла конференция JPoint, в т.ч. уже в третий раз подряд в Москве. В конференции приняли участие более 1000 Java-разработчиков, на 4 параллельных треках было прочитано 48 докладов. Далее приводятся подробности о прошедшей конференции.
Из интересных событий, произошедших с октябрьской конференции Joker 2015, можно назвать:
- анонсы этой конференции и JPoint Student Day;
- анонсы видео топ-10 докладов JPoint 2015 (раз, два);
- новые интервью Алексея Фёдорова из серии «Без слайдов» (например, с Романом Елизаровым);
- конференцию JBreak, прошедшую в Новосибирске;
- выход первой версии языка Kotlin (со встречами в Питере и Москве);
- выпуск 105 подкаста Разбор полётов, тоже оказавший определённое влияние на конференцию.
Холл гостиницы «Radisson Славянская», традиционного места проведения JPoint.
Робот Федя, который (как можно предположить) дистанционно управлялся и озвучивался человеком-оператором. Забавно было наблюдать за общением робота с детьми, не понимающими, что говорят с человеком.
Стенды-будки компаний-спонсоров: JetBrains, Одноклассники…
…Deutsche Bank, Сбербанк-Технологии и Luxoft.
Открытие конференции
Приветственное слово от организаторов и спонсоров (являющихся иногда одновременно и спикерами). Алексей Фёдоров, Руслан Черемин, Андрей Паньгин, Олег Анастасьев, Андрей Дмитриев.
Новости высокой моды, или В поисках серебряной пули
Барух Садогурский, Виктор Гамов, Кирилл Толкачев, Антон Архипов, Алексей Абашев, Антон Черноусов
Ведущие популярного подкаста Разбор полётов в формате keynote представили многие из докладов конференции. Слева направо: Виктор Гамов, Алексей Абашев, Барух Садогурский, Кирилл Толкачёв, Антон Черноусов (Голодный) и Антон Архипов.
Доклады
Перечисленные ниже доклады выбирались исключительно из моих личных предпочтений. В некоторых случаях выбрать, что именно посмотреть на конференции, было трудно. Однако сложность выбора компенсировалась уже появившейся (для участников конференции) возможностью просмотра видео других докладов.
Hotspot и AOT: Пришло время компилировать
Дмитрий Чуйко
Дмитрий рассказал о появлении (пока только экспериментальной) возможности в Java 9 статической (AOT, ahead-of-time) компиляции Java-кода. Пока достижения скромны — компиляция возможна только в исполняемый код под Linux и размер получаемых файлов велик (около 200 Мб). Интерес к Linux вызван доминированием именно на этой платформе серверных Java-приложений.
Неочевидные Дженерики
Александр Маторин
На доклад Александра пошёл, т.к. ранее слушал его доклад «Рефакторинг в функциональном стиле» на Joker 2015. В ожиданиях не разочаровался. Повествование велось про дженерики (Generics) и затронуло достаточно глубокие темы, например:
- во что компилируется при этом код;
- bridge-методы;
- правила стирания (erasure) типов;
- heap pollution;
- примеры кода, который должен компилироваться и не компилируется, и наоборот.
Чувствуется знание темы, материал хорошо подан и смотрится интересно.
Escape Analysis и скаляризация
Руслан Черемин
Очень экспрессивный (см. среднюю фотографию выше) и интригующий доклад про
- Escape Analysis (статический анализ области достижимости объекта) и
- скаляризацию (проецирование полей в локальные переменные).
Ранее присутствовал на одной из конференций на его докладе про Disruptor (при аншлаге в зале) и был знаком с его блогом. Желающих посмотреть и этот доклад было так много, что Алексей Шипилёв был вынужден сидеть на полу.
Счастливое присутствие в зале Тагира Валеева позволило даже исправить озвученную Русланом проблему (о чём Тагир сегодня написал).
Баттл инструментов для сборки — Maven vs Gradle vs SBT
Антон Архипов, Евгений Борисов, Барух Садогурский
Для сравнения инструментов сборки были выбраны доминирующие Maven (защитник — Евгений Борисов), Gradle (естественно, Барух) и, в качестве экзотики, SBT (Антон Архипов).
В игровой форме иллюстрировались преимущества и недостатки каждого из инструментов в различных случаях — создание заготовки проекта, управление зависимостями и т.д. Наиболее интересной мне показалась поддержка BOM (Bill of materials), т.е. описание совместимых версий зависимостей для чего-либо (например, для Spring).
Живо, зрелищно. Заинтересовали крышки ноутбуков Жени, Баруха, Антона (см. правый снимок). Аскетичные крышки ноутбуков Жени и Антона, изобилующая наклейками крышка ноутбука Баруха.
Если не Unsafe, то кто: восход VarHandles
Алексей Шипилёв
Тяжёлое испытание выпало на долю Алексея (см. самую правую фотографию) — неработающий на протяжении 23 первых минут проектор. Железная выдержка, стойкость (шутка) и оптимизм позволили Лёше сгладить возникшие технические проблемы.
В докладе рассказывалось про легальную замену sun.misc.Unsafe, которая вскоре будет предложена и рекомендована — VarHandles. За оставшиеся 27 минут Алексей традиционно образно, выразительно и аргументированно рассказал про VarHandles. Удивление вызвало, что производительность VarHandles может обеспечена даже выше, чем у Unsafe.
Воспитай свою обезьяну
Максим Дорофеев
Первый (хронологически) нетехнический доклад конференции. Бизнес-тренер, консультант, автор проекта «Много сделал!» в занимательной форме попытался донести идеи о путях к личной эффективности.
По моим наблюдениям, многим даже понравилось. Интересно, осталась ли бы презентация столь выразительной при исключении определённых (почти и совсем не цензурных) слов из неё…
«Разбор Полётов» Live!
Вечеринка в клубе Stereo Hall с участием ведущих подкаста Разбор полётов. С записью получившегося можно ознакомиться здесь.
Внимающие слушатели (слево направо): Тагир Валеев, Алексей Шипилёв (с вручённой футболкой), Сергей Куксенко (смотрящий прямо в объектив), Никита Сальников-Тарновский. Алексей Шипилёв уже в футболке на сцене.
Человек и инстинкты: насколько мы запрограммированы?
Евгения Тимонова
Весьма познавательный и любопытный доклад от ведущей видеоблога Всё как у зверей Евгении Тимоновой. В доходчивой для технической аудитории форме рассказано про инстинкты, научные исследования в этой области и приведены доступные для понимания примеры.
Хороший выбор темы, доклада и докладчицы. Интересные вопросы от зрителей и интересные ответы на них.
JCache и распределенные кэши: беспредел!
Виктор Гамов
Доклад Виктора был посвящён распределённому кэшированию вообще и стандарту JCache (JSR 107) в частности.
Были показаны «иконы Шипилёва» (второй снимок), которым нужно молиться при проблемах с производительностью приложения, но при отсутствии Алексея рядом. Различие репликации и шардинга на примере овцы. Примеры видов архитектуры и кода для различных случаев. Достаточно живенько и образно.
Поддержка Java 8 в Excelsior JET
Никита Липский
Совершенно несправедливо проигнорированный многими доклад, весьма хардкорный и хорошо подходящий данной конференции. Посвящён техническим подробностям, тонкостям, проблемам при добавлении поддержки Java 8 в детище новосибирской компании Excelsior — AOT-компилятор Excelsior JET.
В достаточно представительной презентации рассказано, как обеспечивалась поддержка нововведений Java 8:
- лямбда-выражений;
- default-методов;
- Stream API, Time API;
- Type annotahons, Parameter names;
- Stream API, Time API;
- не входящих в стандарт Nashorn и JavaFX;
- Compact profiles.
Полезным оказались пояснения Никиты про AOT-компиляцию от Oracle — в каком состоянии готовности сейчас находится и какие цели в данный момент преследуются.
Странности Stream API
Тагир Валеев
Первый доклад из докладов в записи, который я только что посмотрел. На конференции доклад проходил в большом зале, заинтересовав большое количество людей.
Тагир, будучи экспертом и гуру Stream API, наглядно показывал его особенности и странности. Представленные примеры иллюстрировали различные характеристики Stream API (sized, subsized, sorted, orderered и т. д.). Некоторые вещи выглядели, честно говоря, парадоксально.
Java 8 Puzzlers
Барух Садогурский, Евгений Борисов, Тагир Валеев
Команда паззлеров из Жени и Баруха, усиленная Тагиром, загадывала загадки о странностях Java 8. Доклад получился достойным продолжением представленных на предыдущих конференциях Groovy- и Spring Puzzlers.
«Яйца, яйца ещё!» (ключевая реплика Тагира первых паззлов)
Solving the full stack problem, live!
Барух Садогурский, Кирилл Толкачёв
Кирилл (live coding) и Барух (постановка задачи, комментарии возможных способов решения и получившегося) представили «CI as a Service за 50 минут». Кирилл мастерски кодировал, Барух остроумно комментировал, получилось неплохо.
Убери за собой!
Никита Сальников-Тарновский
Рассказывалось про различные возможные способы гарантированного освобождения ресурсов. Каждый из представленных вариантов иллюстрировался примерами кода. Выводом доклада (презентация, к сожалению, пока недоступна) является использование (в зависимости от случая) или лямбды, или класса Cleaner.
Seven lessons developers can learn from film
Tim Berglund
В докладе Тим проводит аналогии между кинопроизводством и IT-индустрией. Показывает на примере производства фильмов, какие уроки можно извлечь и какие похожие приёмы использовать. Доклад выразителен, оригинален, лаконичен.
Закрытие конференции
Ставшие уже традиционными при закрытии выход на сцену организаторов…
… затем волонтёров…
… и спикеров конференции.
Итоги
Почти идеально организованная конференция. Обед со сменой блюд официантами выше всяких похвал. Свидетелем технических проблем я был лишь на докладе Алексея Шипилёва (считаем, что форс-мажор).
Подбор сильных докладчиков и сильных докладов. Внимательные и доброжелательные организаторы. Хорошие умные зрители.
Артефакты конференции, в том числе шоколадка компании Excelsior (спасибо Никите Липскому за подарок).
А как провели эти два дня Вы, уважаемый участник конференции?