JPoint 2016: Быстрее, выше, производительнее

В прошлом году московская Java-конференция JPoint прошла с таким размахом (тысяча человек, четыре зала, именитые спикеры), что казалось, дальше расти некуда. Но JPoint 2016 показал: есть куда. Конференция оказалась настолько масштабнее, что даже на обработку фотографий с неё ушло много времени (поэтому наш текст запоздал настолько, что на Хабре раньше успел появиться обзор глазами участника от dbelob). Под катом — все подробности о том, как это было.

14c011d0e4cd4b77a0e8021ddb3a4b7a.jpg

Первый день

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

6a6db9d8bd234d1b8a96830a868c2592.jpg

В фойе тоже обнаруживалась пара сюрпризов: аттракцион с использованием Oculus Rift и робот Федя. Разъезжая вокруг пришедших, Федя заводил с ними разговор, и в результате получался негласный тест Тьюринга: собеседники пытались понять по его репликам, произносит их живой оператор или генерирует алгоритм. Впрочем, догадаться было несложно, потому что машины пока толком не научились шутить, а Федя делал это постоянно, вызвав за день множество улыбок. Но то, что самым общительным участником конференции оказалась ездящая по полу железяка, уже само по себе показывает: будущее можно считать наступившим.

870d4d13064c4908bb916fea7ae5496d.jpg

Открывающий keynote тоже отличался от того, что можно увидеть обычно. За него отвечали ведущие подкаста «Разбор полётов», и вместо речи одного спикера здесь, как в недавнем вирусном ролике про монолог Гамлета, на сцене оказался целый ряд людей, знакомых многим в зале: Барух Садогурский, Виктор Гамов, Кирилл Толкачев, Антон Архипов, Алексей Абашев и Антон Черноусов. Бойко пройдясь по современным трендам Java-мира и упомянув связанные с этими трендами доклады в программе JPoint, они напоследок включили видео с известной репликой Стива Баллмера «Developers, developers, developers, developers». Логичный выбор: только Баллмер способен сравниться с Барухом по громкости.

Затем все разошлись по разным трекам. Пока главную сцену занял Владимир Красильщик (Luxoft) с докладом о логировании (дебютировавшем в марте на новосибирском JBreak), в четвёртом зале Дмитрий Чуйко (Oracle) агитировал уже сейчас пробовать девятую версию Java (словами «всё сломается, но починить несложно») и написанный на Java компилятор Graal (словами «он не настолько экспериментальный, чтобы быть плохим»).

982b7c2cc495459ebf5c764ca3faf2b9.jpg

Сменил его Дмитрий Жемеров (JetBrains) с докладом «Ой, котик побежал: Компиляция и производительность кода на Kotlin». Только пару месяцев назад этот язык наконец дошёл до версии 1.0, а теперь в докладе речь зашла и о поддержке возможностей Java 8, запланированной в 1.1. Сроков выхода новой версии озвучено не было (с уважительной причиной «про выход 1.0 мы много чего говорили, и в итоге как-то нехорошо получилось»), зато заявленный в названии котик действительно фигурировал. Между хардкорными слайдами JMH-бенчмарков Дмитрий показал видеоролик, где его кот при прогулке по мебели разворачивается в три приёма. Другой милой деталью доклада было использование числа »239» в примере кода: по этому можно было догадаться, что спикер родом из Петербурга, где физико-математический лицей с таким номером играет важнейшую роль в техническом сообществе.

c45bc22df9a34565b3a1e5eee56f2ff0.jpg

Затем в том же зале выступал Руслан Черёмин из Deutsche Bank с темой «Escape Analysis и Scalar Replacement», рассказывая вещи, которые не получится нагуглить — точнее, нагуглится запись в блоге самого Руслана Черёмина, частично пересекающаяся с докладом. Какие именно фрагменты кода получится скаляризовать, а какие нет — вещь неочевидная и подробно в интернете не расписанная, поэтому Черёмин самостоятельно разбирался с ней методом проб и ошибок, как с «чёрным ящиком», и на конференции делился редким опытом. Как сказал он сам, «так было интереснее, чем спрашивать у Шипилёва» —, а в итоге тот же Шипилёв сидел на этом докладе, возможно, узнавая что-то новое для себя. Может ведь в Java быть хоть что-то такое, чего Шипилёв не знает, правда?

6f1382520b32471a975f0a4d66751a3c.jpg

Тем временем в главном зале Олега Анастасьева («Одноклассники»), рассказавшего о распределённых системах, сменили сразу трое докладчиков, и началось настоящее шоу. Сравнить, какой инструмент для сборки лучше и чем, решено было в форме баттла: Евгений Борисов, Барух Садогурский и Антон Архипов пытались справиться с рядом задач в Maven, Gradle и SBT соответственно, измеряя результат зрительскими аплодисментами. Это сопровождалось таким количеством саркастичных реплик в адрес друг друга, что рэп-баттлы могли бы позавидовать. В результате, пока Maven и Gradle жёстко соперничали, Архипов зачастую признавал отсутствие у SBT соответствующих возможностей —, но великодушные зрители хлопали ему громче всего, чтобы он не расстраивался.

ab05f30222d74194a7a6a0d4d0f43237.jpg

После этого произошла главная техническая проблема конференции: когда Алексей Шипилёв (Oracle) вышел рассказать о том, как нам жить после ухода sun.misc.Unsafe, экран в главном зале не хотел ничего показывать. В случае с каким-то другим докладчиком это могло бы означать пятнадцать минут напряжённого молчания, но только не с Шипилёвым: за время устранения проблемы он успел произнести много запоминающихся фраз вроде «самое сложное с Unsafe — рассказывать о нём так, чтобы не вызвать у людей желания им пользоваться». Но начинать доклад без слайдов он не хотел, и, когда всё заработало, стало ясно, почему: было бы преступлением оставить зал, например, без такой картинки, вызвавшей дружный смех.

c18fe6c1f9a84cbcbd162af153ab51fe.jpg

А затем, после закрывающего первый день keynote от Максима Дорофеева, следовало продолжение банкета: вечеринка в клубе StereoHall. Тамвыпуск подкаста «Разбор полётов» был записан прямо на глазах у публики, так что все желавшие могли задавать ведущим вопросы («Сколько надо Scala-программистов, чтобы развалить проект на Java?» — «Обычно хватало одного»). А затем выступила группа Animal Джаz, песнями вроде «Три полоски» вернувшая всем их 2007-й: у посетителей JPoint с теми временами наверняка связано много ностальгических воспоминаний.

394d8f74b68e443cba637ec056d291fe.jpg

Второй день

Утро после вечеринке в клубе — не лучший момент для того, чтобы вникать в нюансы оптимизации кода. Так что открывающий keynote второго дня был более общедоступным: Евгения Тимонова, известная своим биологическим видеоблогом «Всё как у зверей», рассказывала о том, насколько людей можно считать запрограммироваными. На слова «удивлённое вскидывание бровей — инстинкт, свойственный всем людям на планете» из зала возражали «а как же игроки в покер?», и она уточняла: «да, мозг может в некоторой степени подавлять эту реакцию».

b2faca763a75456a92080068379383a1.jpg

«Сбербанк-Технологии», недавно уже рассказывавшие о новой платформе «Сбербанка» на JBreak, в этом случае вообще заняли зал на целый день, чтобы сделать это максимально подробно. Но это не означает, что другим темам пришлось ужаться: для «Сбертеха» был выделен ещё один зал, помимо задействованных ранее. То есть во второй день JPoint действие происходило одновременно в пяти залах — и это если не считать экспертных зон в холле. Вопрос «куда уж масштабнее» находил совершенно прямой ответ.

2e035a670f824a7c98f6a0d1ca3d05ad.jpg

С таким масштабом приходят и сложности — год назад заминкой предыдущего JPoint стала большая очередь на обед. Но в этом раз решено было разделить аудиторию пополам и разнести обед по двум разным перерывам, так что ситуация не повторилась. В общем, доклады по оптимизации высоконагруженных систем не проходят даром: можно сказать, что слишком долго исполнявшийся процесс был успешно распараллелен. Когда одна половина пришедших была на обеде, другой в продолжительном перерыве было чем заняться: в фойе можно было хоть дотошно расспрашивать уже покинувших сцены спикеров, хоть обойти многочисленные стенды компаний-участниц, попутно зарядив у «Одноклассников» свои гаджеты.

b8a8931ac2ed40a884e18a61fd268ab8.jpg

Слот «между двумя обедами» можно было назвать «сибирским», потому что два зала одновременно оказались заняты новосибирцами: Тагиром Валеевым с докладом про Stream API и Никитой Липским, рассказывавшим про Excelsior JET. Неудивительно, что оба они выступали в марте на JBreak (ещё бы, пропустить главное Java-мероприятие у себя на родине), и неудивительно, что оба говорили там о тех же проектах: Валеев разрабатывает библиотеку StreamEx, расширяющую возможности Stream API, а Липский и вовсе сделал Excelsior JET делом своей жизни. Однако это не означает, что новосибирский и московский доклады у них полностью совпадали: если на JBreak Валеев рассматривал Stream API с практической точки зрения «как добиться определённого результата», то на JPoint акценты были смещены в сторону теоретического «как это устроено».

0539d28e9d9640b3b4c0b82ee512de8a.jpg

После Тагира на главной сцене оказался… тот же Тагир, но уже в компании Баруха Садогурского и Евгения Борисова. По опыту баттла накануне можно было сразу предположить, что такая компания означает оживление в зале — так и произошло. Совместное выступление с темой «Java 8 Puzzlers» предлагало присутствующим не просто послушать о каверзных нюансах Java, а лично поломать голову над тем, к какому результату приведёт тот или иной фрагмент кода, и лишь затем узнать правильный результат. В результате в зале царил азарт: все активно тянули руки за один из вариантов, а затем с интересом обнаруживали, насколько заблуждались.

bc8a6944b2044d44ba8b72cbd7b1c786.jpg

Следом в четвёртом зале тоже прошло совместное выступление, в котором два Александра из Oracle — Белокрылов и Мироненко — говорили об «интернете вещей». Тут не было такого веселья, но для далёких от темы людей хватало любопытных неочевидных моментов: от того, что IoT можно использовать для удалённой диагностики устройств вроде беговых дорожек (мы-то привыкли, что все называют юзкейс «включать лампочку»), до того, что для него используют протокол XMPP (мы-то привыкли, что он для мессенджинга между живыми людьми, а не устройствами).

79a8259faf304a7483c96c20c45de43f.jpg

Наконец, после рассказа Шипилёва о java.lang.String в JDK 9 пришло время заключительного кейноута — Тим Берглунд (DataStax) рассказывал на английском о том, чему разработчики могли бы поучиться у киноиндустрии. Было очевидно, что в кинематографе он разбирается не хуже, чем в разработке: примеры разнились от первых звуковых фильмов (показывавших, как индустрия не спешила хвататься за новую технологию) до недавней «Одержимости» («сначала там сделали короткометражку, а затем развили до полного метра — это же lean filmmaking!»). Среди зрителей тоже нашлись ценители, знающие, что «Воспитывая Аризону» сняли братья Коэны (далеко не самая известная их работа). Хотя в этом выступлении не было кода, получилось хардкорное завершение хардкорной конференции: слушать на английском языке о технической стороне другой индустрии, запоминая, что можно намотать на ус.

Два дня, пять залов, вечеринка в середине — JPoint явно оказался масштабнее предыдущего. Может ли что-то ещё сильнее увеличить масштаб? Может: на следующий день после этого всего был ещё и Student Day с докладами для начинающих. Но об этом — в отдельном следующем тексте.

fcca926b5fc74372ad8193a028564d5e.jpg

© Habrahabr.ru