Давно в Java-мире не было такого оживления, как этой осенью: наконец-то вышла «девятка», завершены и другие «долгострои» (Java EE 8, JUnit 5, Spring Framework 5), Java EE отправляется в Eclipse Foundation, коммерческие фичи Oracle JDK решено опенсорснуть, а сама Java переходит на полугодовой релизный цикл.
Как в таком урагане новостей может выглядеть Java-конференция? Надо сосредоточиться на этих новых темах, или думать о тех разработчиках, которые не то что на «девятку», а на «восьмёрку» ещё не перешли? Мы провели в Петербурге пятый по счёту Joker — и под катом подробно написали о том, как это было.
Как и в прошлом году, местом действия стал «Экспофорум». Собралось около 1200 человек, так что на площадки поменьше конференция уже просто не влезает, а здесь было вдоволь места и для докладов, и для дискуссионных зон, и для спонсорских стендов. В этот раз дело обошлось без прошлогодних шести залов: ограничились «всего лишь» четырьмя, решив сосредоточиться на качестве. Из-за этого отбор докладов превратился в «мясорубку» с конкурсом в несколько заявок на одно место — зато зрительские оценки докладов оказались высоки.
Онлайн-трансляция отличалась от прошлого раза. Во-первых, она велась в разрешении 1440p: это позволяет одновременно выводить и изображение с ноутбука спикера в 1080p, и самого спикера. Во-вторых, в прошлом году мы в экспериментальном режиме попробовали демонстрировать один из треков бесплатно, а между докладами выводить в трансляцию интервью со спикерами. Тогда дело не обошлось без технических проблем, но сама идея себя зарекомендовала. Так что в этот раз мы сделали то же самое уже увереннее — и на YouTube доступны трансляции обоих дней.
Открывал всё кейноут Кая Хорстманна, уже 20 лет известного благодаря книге «Core Java» (на конференции его даже просили расписаться на ней). И тут сразу проявлялась актуальная повестка: он говорил о нововведениях Java 9 (кроме модулей). На эту тему за последнее время было написано столько текстов, что возникал вопрос: будет ли доклад хоть чем-то отличаться от них? И требуется ли для этой темы легендарный Хорстманн, или такой же доклад получился бы у любого, внимательно почитавшего источники?
Но опыт Хорстманна давал о себе знать. Внимательно наблюдая за развитием Java на протяжении многих лет, он мог не просто пересказывать текущие факты, как в большинстве статей, а показывать картину в перспективе: «В 2009-м Джош Блох предложил collection literals для Project Coin. Тогда это не воплотилось в жизнь. Сейчас мы тоже не получаем именно это, но при этом получаем вот что...» Судя по фидбэку, часть зрителей убаюкивала монотонность Кая (ему привычнее читать лекции в университете, чем доклады), но таким могли помочь просыпаться встречавшиеся в докладе паззлеры.
Когда после кейноута все разошлись по четырём залам, в одном из них тоже начались как раз паззлеры, но вот там уже никому было не до сна: когда на сцене Барух Садогурский, заснуть не получится физически. А выступавший вместе с ним Тагир Валеев не может пожаловаться на дефицит новых паззлеров для докладов: при работе над инспекциями в IntelliJ IDEA с ними волей-неволей сталкиваешься. Самый первый был об особенностях module-info.java — то есть и тут не обошлось без новостей из девятой Java.
Тем временем в другом зале ещё активнее приближали будущее: там Кристиан Тэлинджер из Twitter рассказывал об использовании нового компилятора Graal. Со стороны Twitter это смелый шаг (большинство людей пока что считают проект слишком экспериментальным для продакшна), но Кристиану отчасти помогает прежний опыт работы в Sun и Oracle. А в итоге, немного выигрывая в производительности, Twitter со своими масштабами уже сейчас экономит ощутимые суммы — то есть это не просто лихой эксперимент ради эксперимента, а совершенно практичный шаг. Впрочем, общую оптимистичность доклада многим подпортила концовка: там Тэлинджер признался, что наблюдаемый им прирост производительности может объясняться сочетанием Graal и Scala (которую в Twitter активно используют), а с чистой Java результаты были бы менее впечатляющими.
По разряду «можно выиграть в производительности, но актуально для немногих» проходит и доклад Дмитрия Александрова об использовании Java с GPU. И своеобразность этого доклада, пожалуй, лучше всего сформулировал один из участников в своём отзыве: «Смузи, приготовленное с помощью лопастей вертолёта».
За этим следовал обед, и, кажется, обеденный гарнир вызвал больше разногласий, чем любой из докладов: пока одни с большим интересом открывали для себя киноа, другие сравнивали его с «лошадиным овсом». Мы, конечно, учтём реакцию, но имейте в виду, что производство киноа в последние годы на диком подъёме. То есть такими темпами от него всё равно будет нигде не скрыться, как от Docker и микросервисов.
После обеда сначала Нитсан Вакарт рассказывал о сложностях с Java-профайлерами, а затем Алексей Шипилёв продолжил свой путь вглубь Shenandoah — точнее, он говорил уже даже не конкретно о Shenandoah, а о том, как на работе GC сказываются особенности рантайма. И любопытно, что для обоих спикеров важной темой стали safepoints. В случае с сэмплирующими профайлерами они могут сбивать результаты — и Вакарт говорил, что помогает этого избежать. В случае с GC они связаны с накладными расходами — и Шипилёв подробно расписывал, как именно. Интересно, сколько участников при вопросе Шипилёва «кто знает, что такое safepoint» подняли руку из-за того, что часом ранее узнали это от Вакарта? :)
А в конце дня Николай Алименков выступал с докладом об антипаттернах при использовании Java 8 — и интерес публики был так высок, что в программе два зала были объединены вместе. Хотя в дни Joker самые известные Kotlin-спикеры находились за океаном на KotlinConf, без упоминания языка на конференции не обошлось: рассказывая про Optional, Николай подчёркивал, что это скорее частичное решение вопросов с nullability, чем более радикальный Kotlin-подход. А затем принялся критиковать «опшионализм», при котором Optional начинают использовать и тогда, когда не стоило бы.
В начале второго дня можно было наглядно увидеть разницу в интересе к двум разным темам. Когда Кирилл Толкачёв и Евгений Борисов вышли разбирать «подкапотную магию» Spring Boot, возник аншлаг — а в это же время на докладе «Ceylon в продакшне» было малолюдно. Конечно, нет никакого сюрприза в том, что Spring Boot волнует людей на порядки сильнее Ceylon, но визуальный контраст впечатлял.
Выступление про Spring Boot было масштабным не только по числу зрителей. Оно заняло целых два временных слота в программе, и при этом зрители отмечают, что Кирилл и Евгений быстро говорят — наверное, если бы говорили медленнее, понадобился бы третий слот! В общем, тут была большущая порция информации о Spring для большущей части жаждущих этого зрителей.
Тем временем Барух Садогурский и Леонид Игольник устраивали битву «Google Home против Amazon Alexa», демонстрируя, какие дополнительные скиллы можно написать на Java этим голосовым помощникам. В конференционных условиях не все голосовые команды корректно отработали, но зрители ощутили главное: благодаря «умным колонкам» отчасти возвращается романтика «сам купил домой устройство, сам запрограммировал».
Главным форс-мажором стало то, что авиасложности не дали добраться до конференции Саше Гольдштейну. Но залу не пришлось пустовать: в качестве замены был быстро организован круглый стол с участием Алексея Шипилёва, Андрея Паньгина, Владимира Ситникова, Глеба Смирнова и Фолькера Симониса. Диалог таких людей всегда интересно послушать — а в итоге среди зрительских отзывов можно встретить даже радость из-за отмены доклада Гольдштейна.
Впрочем, количество зрителей на круглом столе было не слишком большим — вероятно, из-за того, что многие пошли слушать Тагира Валеева про то, что ждёт нас в будущем благодаря Project Amber. Там всё проходило бодро: «Кто считает, что вывод типов локальных переменных делают зря? Ну, вы же понимаете, что от вашего мнения ничего не зависит. Выводить типы в Java начали раньше, тогда и надо было жаловаться». Тагир, изначально ставший известным со своими докладами про стримы, теперь вроде как ушёл от этой темы — но от нашего зоркого глаза не ускользнуло, что у Тагира даже на слайдах совсем другого доклада при большом желании можно найти «стрим»:
Наконец, завершал конференцию кейноут Сергея Абдульманова, известного хабрапользователям по блогу «Мосигры». Его рассказ был не о Java, а о том, как в «Мосигре» с разработки 10 игр в год пытались выйти на 120 игр в год — и этот рассказ показывал как сходства, так и отличия от разработки софта. С одной стороны, в IT Сергей привык к чёткой проверке проекта по чек-листу, и был удивлён, когда сотрудники ставили в чек-листе галочки «на авось». А с другой, озвученный способ работы с фрилансерами вызвал в зале смех узнавания ситуации: «Посмотрев, что львиная доля времени уходит на переделки, мы ввели правило, когда при отсутствии переделок оплата удваивается. Фрилансеры-переводчики, которые раньше вечно что-то недоделывали, очень быстро усвоили эту схему!»
Какой вывод из всего этому можно сделать? Что сейчас актуально для зрителей — прошлое Java (продолжающее работать в продакшне), наступившее недавно модульное настоящее, или вовсе будущее? Судя по тому, сколько зрителей было на различных докладах и какой фидбэк они дали, верны все три варианта сразу: оживление вызывали и ошибки при использовании Java 8, и расширения свежевышедшего JUnit 5, и ещё не используемое ключевое слово var.
И поэтому можно сказать так: конференция Joker успешно поддерживает несколько разных версий Java одновременно.
Комментарии (25)
IvanPonomarev
11.11.2017 02:111) Не так плох был гарнир, как тот факт, что замешкавшимся к началу второй очереди обеда остался лишь один голый гарнир! Этот баг точно следует пофиксить :-)
2) Оба доклада Хорстманна мне понравились. Хотя его манера и лишена «зажигательности», но чувствуется очень твёрдая рука опытного преподавателя. Я был бы рад его видеть на ваших конференциях.
lany
11.11.2017 12:21Киноа — какая-то жесть, да. Не надо извращаться с едой, дайте людям картошку, макароны и рис на выбор в качестве гарнира, и курицу, рыбу и мясо к ним. Ну ок, можно ещё какую-нибудь мутную бобовую пасту ради дивёрсити. Еда на конференции — чтобы насытиться, а не чтобы поразить всех изысками.
Victorius
12.11.2017 13:44А как по мне так, еда была вполне даже хороша.
Но вообще говоря это даже более чем вторично. Важны сами выступления, компании и возможность пообщаться с людьми.
lany
11.11.2017 12:22у Тагира даже на слайдах совсем другого доклада при большом желании можно найти «стрим».
Подкололи! Я и сам не заметил :D
balexa
11.11.2017 16:47+3С обедом, да, вышло не очень. Я в первый день вообще не попал, на второй ничего не осталось, поскольку решил пожертвовать частью времени обеда ради возможности поговорить со спикерами, к концу уже ничего не было. Но шли все таки не за едой, так что ладно. В экспоцентре конечно есть буфет, где можно по ценам центральных питерских ресторанов поесть еду качества советской столовки, но проблему он не решает.
Лично для меня часть интересных докладов шла параллельно, и в то же время были окна где все доклады были неинтересными. В прошлом году как-то было интереснее, мне показалось. Ну или мне просто не повезло с правильным выбором. В целом норм.
Отдельное фи хочется сказать стендам с их розыгрышами, понятно что организаторы тут не при чем, но все же. Было неприятное ощущение, что большая часть народу пришла исключительно чтобы на халяву вытащить айфон или квадракоптер. При том, что вопросы были интересные на мой взгляд только у гридгейна (хотя некоторым они и показались неполиткорректными), у остальных же джавапазлеры, которые легко решить при наличии ноутбука вообще без использования мозга, и тяжело при его (ноутбука) отсутствии.
Отдельные специфичные ощущения вызвал доклад Milfgard. Это примерно как смотреть фильм по любимой книге, и видеть что главный герой абсолютно не соответствует тому образу что мне казалось. Я почему-то вас представлял себе совершенно по другому. Но доклад был очень интересный, спасибо.
В целом понравилось, организация всего этого тяжкий труд, спасибо большое.
pjBooms
11.11.2017 20:07Хм, как то почему-то упустили мой доклад. К чему бы это? Вроде был самый релевантный к проблеме выпущенной Java 9.
phillennium Автор
12.11.2017 13:49В текст человеческого объёма вечно не влезают все доклады, которые хочется упомянуть, и приходится чем-то жертвовать — конкретно в этом случае исходил из того, что про этот доклад хаброюзеры могли читать в связи с JBreak.
dbelob
12.11.2017 23:21Никита, спасибо большое за отличный доклад, упомянул его в обзоре. Позабавила медитация с «Reliable
Configuration» и «Strong Encapsulation». Очень хорошо было и интервью, взятое phillennium во второй день.
Желающие посмотреть доклад — см. временную отметку 4:13:00 трансляции из второго зала в первый день (пока видео не порезано по докладам).
DigitalSmile
13.11.2017 10:17+1Вставлю свои пять копеек в отзыв.
ИМХО в этом году доклады были менее интереснее, чем в предыдущем. Многие доклады, помеченные как «хардкор», откровенно говоря таковыми не являлись (например, «Тестирование lock-free алгоритмов» или «Birth, life and death of a class»). Хотелось бы в будущем увидеть еще более глубокое расслоение тематик по сложности и побольше параллельных докладов.
В целом организация показалось какой-то немного суетной, у меня сложилось впечатление постоянной спешки (на доклад, на обед, на дискуссию), в прошлом году было по размереннее.
Тем не менее, спасибо за конференцию, мы к вам еще приедем! :)
P.S. отдельное спасибо за уточку, это теперь мой постоянный собеседник.lany
13.11.2017 12:15+1откровенно говоря таковыми не являлись (например, «Тестирование lock-free алгоритмов» или «Birth, life and death of a class»).
Ммм… Насчёт Birth, life and death of a class не соглашусь. Разве что если вы ушли через 20 минут после начала, тогда ок, начало действительно было лайтовым. Если вам действительно весь доклад показался лёгким, объясните мне историю с классами A и B. Она мне мозг взорвала, я так и не вник в последнюю модификацию.
DigitalSmile
13.11.2017 13:05Не спорю, свои моменты были конечно… Еще можно вспомнить рассуждения о class unloading и class instrumentation (для меня такие штуки новыми были), но в целом мне показалось это больше как исследование «а что будет, если...», чем попытки объяснить суть происходящего слушателям.
Кстати, вам отдельное спасибо за доклад по Амберу. Все здорово и по делу, хоть я и против введения var/val :)
CyberSoft
13.11.2017 16:16Вы собираетесь ещё раз пригласить Сэма Аарона на какую-либо из ваших конференций, хотя бы ради вечеринки? Программирование музыки в живую очень в тему для такой конференции, нежели кавер группа.
Milfgard
13.11.2017 17:34Кавер-группа называлась «Жокер», они не могли не пропустить же )
CyberSoft
13.11.2017 17:43К сожалению, из общего одно только название.
lany
14.11.2017 08:05Да, репертуар был какой-то весьма попсовый. Хотя эти ребята играют и вещи посерьёзнее.
IvanPonomarev
14.11.2017 13:19По-моему громкость была просто запредельная. Желающие пообщаться на темы программирования были вынуждены выйти в лобби ) Потише был бы звук — лучше бы пошло, имхо)
lany
14.11.2017 13:30Ну это как раз нормально. В лобби было полно места, поэтому я бы не назвал это каким-то уж страшным вынуждением. Напитки можно было с собой выносить в лобби. Я и поговорить успел, и попрыгал. Так что тут вполне ок. Во всяком случае гораздо лучше, чем тот ад с офисом СберТеха, который был на JPoint :D
IvanPonomarev
14.11.2017 13:53На JPoint я тогда пошёл спать вместо вечеринки, т. к. у меня с утра был доклад. Но я слышал от коллег, что не пропустил ничего интересного)
IvanPonomarev
14.11.2017 13:15+1Вот да! Сэм Ааарон — это была настоящая находка! 23derevo, позовите его как-нибудь ещё!
Hixon10
Интересно, какую оценку получил Кейноут Кая Хорстманна? В телеграм-чатике было большое количество неположительных отзывов, да и мне он показался супер странным. Ваша же статья — habrahabr.ru/company/jugru/blog/336864 — на порядок полезнее (кол-во информации / время).
Лошадинный овёс — это да, нечто :)
А в целом, спасибо за очередную конфу. Было круто!
phillennium Автор
Когда я сравнивал оценки (отзывы тогда ещё продолжали приходить, так что что-то могло измениться), суть была такой: в топ докладов конференции он не попал, но и какого-то страшного провала по средней оценке там нет.
Рад, что в целом конференция понравилась!