Joker 2016: Вертикальное масштабирование

в 14:00, , рубрики: java, joker, performance, Блог компании JUG.ru Group, конференция, шипилёв

Joker 2016: Вертикальное масштабирование - 1

Помимо «чисел Joker 2016», перечисленных нами заранее, теперь можно назвать ещё одно: на конференции наши фотографы сделали более 5000 снимков. Неудивительно, что на обработку ушло ощутимое время, и на Хабре уже успел появиться отзыв глазами участника от dbelob — а теперь мы публикуем свой.

Резкие отличия Joker 2016 от предыдущих «Джокеров» бросались в глаза сразу. В чём они состояли, о чём рассказывали на конференции в этот раз, и какие доклады по зрительским оценкам оказались лучшими?

Первый день

Иногда не требуется даже дожидаться открытия конференции, чтобы ощущить её отличие от прошлогодней: в случае с Joker 2015 достаточно было просто прийти на площадку. В этот раз, собрав более 1000 человек, петербургская конференция переросла размеры «Park Inn Пулковской» и прошла в «ЭкспоФоруме». Оказавшись под его высоченными потолками, сложно было не впечатлиться масштабом. Можно сказать, что у конференции произошло вертикальное масштабирование во всех смыслах.

Joker 2016: Вертикальное масштабирование - 2

В разы увеличилась площадь. Это позволило размахнуться как следует, разместив множество нового: от ретро-компьютеров и фотобудки до отдельного мини-трека для IT-директоров и конкурса iCanCode. На одном и том же мероприятии присутствовали и шлем виртуальной реальности VFX1 из 90-х, и появившийся в 2016-м HTC Vive, так что можно было лично оценить путь, проделанный VR за двадцать лет. И, наконец, с площадью увеличилось главное: число треков возросло с четырёх до целых шести.

Joker 2016: Вертикальное масштабирование - 3

Ещё одно отличие возникло с открытием конференции, и оно имело значение не для присутствовавших в «ЭкспоФоруме», а для всех остальных: впервые в истории Joker видеотрансляция одного из треков была бесплатной. Но в этом случае, кроме новых возможностей, появились и новые сложности. С трансляцией возникли технические проблемы (предоставленный нам канал на upload оказался меньше, чем должен был), заставившие немало людей побегать в мыле. Позже ситуацию удалось исправить, но некоторое время всё ощущалось так, как на этом нашем твите.

Тем временем за официальным открытием последовал кейноут от Алексея Шипилёва о производительности. Поскольку формат кейноута не предполагает адского хардкора, выступление было менее техническим и более обзорным, чем его обычные доклады. А значит, давало отличную возможность всем, кто давно хотел послушать Шипилёва живьём, но боялся.

Joker 2016: Вертикальное масштабирование - 4

Что до содержания доклада, то ключевым его слайдом стала «Кривая им. Ш». Разделив работу над оптимизацией на несколько разных «зон», Шипилёв решительно заявил, что поначалу речь идёт «просто о том, какую часть говнокода переписывать в первую очередь». Это означает, что полезен будет любой профайлер, а все слова про «преждевременную оптимизацию как корень всех зол» не более чем ментальная ловушка. Вот позже, когда очевидные ошибки устранены и проект уже перешёл из «зелёной зоны» в «жёлтую», всё становится сложнее.

Joker 2016: Вертикальное масштабирование - 5

А после кейноута пришло время расходиться по залам, и тут ощущалась ещё одна сложность. Поскольку на этом Joker треков было целых шесть, выбор стал гораздо богаче, а в результате сделать его стало сложнее: куда ни пойди, упускаешь что-то интересное. И в этом тексте тоже упомянута лишь небольшая часть докладов, иначе его попросту сложно было бы дочитать. Но всем бы такие сложности, как «слишком много интересного»! В конце концов, всё пропущенное участники смогут посмотреть в записи.

Joker 2016: Вертикальное масштабирование - 6

Так что много любопытного происходило параллельно: пока в одном из залов тему производительности развивал Андрей apangin Паньгин (Одноклассники), в другом выступление Баруха jbaruch Садогурского (JFrog) и Виктора gAmUssA Гамова (Hazelcast) тоже перекликалось с кейноутом, но совсем иначе. Их предыдущие выступления с Groovy-паззлерами были так тепло приняты, что теперь они выступали уже с третьей порцией паззлеров, и в одном из них предлагали определить, какого докладчика выбрал бы для кейноута такой groovy-код:

Joker 2016: Вертикальное масштабирование - 7

Интересные факты о Kotlin можно было узнать ещё до начала доклада Андрея abreslav Бреслава (JetBrains), руководящего разработкой этого языка: в ожидании времени начала Андрей охотно отвечал на вопросы из зала. Поэтому зрители узнали любопытные детали не только о корутинах, которым был посвящён доклад (язык обзаведётся ими в 2017-м с релизом версии 1.1), но и о другом. Например, что работа над JavaScript в Kotlin продвигается полным ходом, а вот цель добавить в язык pattern matching не ставится: «На заре проекта пытались сделать, но тогда от этого отказались, а сейчас мы без этого не страдаем, да и люди в целом тоже. Потребность в полноценном pattern matching есть в основном у тех, кто пользовался Haskell или Scala и теперь считает, что это must have».

Joker 2016: Вертикальное масштабирование - 8

Когда пришло время обеда, не обошлось без очередей, но при этом в зале для обеда и кофе-брейков была оборудована сцена подкаста «Разбор полётов» — так что, ожидая своей очереди, можно было слушать бодрые диалоги резидентов и гостей «Разбора». Видеозаписи этих диалогов уже доступны зрителям Joker, а спецвыпуск самого подкаста, записанный на конференции, доступен всем.

Joker 2016: Вертикальное масштабирование - 9

У Тагира lany Валеева (JetBrains) собрался полный зал на «причудах Stream API», показывавших, сколько в этом API контринтуитивных ситуаций. Это вызывало реакцию «я-то считал использование стримов безопасным, как наивен я был», получался забавный результат: доклад одного из главных в мире энтузиастов стримов отпугивал людей от них. Более того: в YouTrack можно найти тикет, по которому получается, что с помощью Тагира IntelliJ IDEA станет помогать людям убирать стримы из кода. Что дальше, Мартин Одерски начнёт помогать людям мигрировать со Scala?

Joker 2016: Вертикальное масштабирование - 10

Рассказ об invokedynamic был от Чарльза Наттера (Red Hat). Понятно, что эта тема близка человеку, много лет работающему над JRuby («до появления invokedynamic JVM была построена вокруг Java, а другим языкам приходилось прибегать к грязным трюкам»). Но любопытно было узнать из его слайда, что он ещё в 2011-м твитнул «это изменит лицо платформы», сделав довольно точный прогноз: спустя пять лет invokedynamic называют «секретным оружием» Java, проторившим дорогу лямбдам.

Joker 2016: Вертикальное масштабирование - 11

А закрывающий кейноут первого дня органично переходил в вечеринку. Сначала Сэм Аарон объяснял, почему создал инструмент для музыкального лайвкодинга Sonic Pi: «Использовать языки программирования только для задач энтерпрайза — это всё равно что использовать русский или английский только для юридических документов». Затем демонстрировал основные принципы работы с ним и призвал желающих помочь с переводом туториала на русский (проект ориентирован и на детей, так что английского тут недостаточно).

Joker 2016: Вертикальное масштабирование - 12

Затем, переместившись в другой зал, он принялся за собственно лайвкодинг, отыграв двухчасовой сет. Код крупно выводился на экран, и временами Аарон обращался к зрителям с помощью комментариев в нём. Наттер, стоявший во время сета в первом ряду, снял фрагмент выступления телефоном в 4K-разрешении:

Второй день

Joker 2016: Вертикальное масштабирование - 13

Большую сцену следующим утром занял тот же Чарльз Наттер, открывая день кейноутом «From Java to Assembly: Down the Rabbit Hole». На втором дне были студенческие треки, так что среди зрителей было много начинающих — и доклад соответствовал этому, начинаясь с объяснения ключевых терминов вроде «байткода». Но по мере углубления в кроличью нору у «взрослых» тоже появлялось о чём послушать: многие ли пользуются PrintAssembly?

Joker 2016: Вертикальное масштабирование - 14

Ожидалось, что далее пути студентов и «взрослых» полностью разойдутся по разным трекам. Однако жизнь внесла свои коррективы: оказалось, что опытные разработчики жаждут слушать Владимира vlkrasil Красильщика даже в том случае, когда его доклад ориентирован на начинающих. В итоге на его выступлении «Анти-введение в Big Data» был аншлаг: там собрались и новички, и профессионалы.

Joker 2016: Вертикальное масштабирование - 15

Резко контрастировало с этим выступление Алексея Шипилёва о Java Memory Model: поскольку разжёвывать основы было некогда, доклад сразу требовал от зрителей определённого уровня понимания JMM, и там начинающим делать было нечего. Тем временем предыдущее выступление Шипилёва продолжало откликаться в сердцах. Например, Алексей zaleslaw Зиновьев в своём докладе о Spark 2.0 объяснял: «После кейноута все только и говорят о том, у кого оптимизация в какой зоне находится. Так вот, в бигдате вам повезёт, если вы окажетесь хоть в какой-то зоне!»

Joker 2016: Вертикальное масштабирование - 16

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

Joker 2016: Вертикальное масштабирование - 17

Позже среди самих этих «следующих докладов» было выступление Сандера Мака о модулях Java 9, а мало кто в мире знает о них столько: сейчас Мак пишет о них книгу, а по работе давно столкнулся с фреймворком OSGi, предвосхитившим Jigsaw. Опираясь на свой опыт, он объяснял: «Зачем вообще понадобился Jigsaw при существовании OSGi? Потому что без Jigsaw не модуляризовать непосредственно JDK. А почему тогда не использовать его только для JDK, оставив OSGi для всего остального? Хороший вопрос, вообще-то можно было бы сделать и так, но сказывается то, что OSGi не пользуется большой популярностью».

Joker 2016: Вертикальное масштабирование - 18

Олега m0nstermind Анастасьева из «Одноклассников» можно было увидеть в этом докладе на первом ряду, а он только недавно заявил нам «переход к модулям в нашем случае не даст преимуществ, оправдывающих его». Тут было не удержаться от вопроса «Ну как, Мак не переубедил в этом?» Ответ Олега оказался примерно таким:

Joker 2016: Вертикальное масштабирование - 19

Любителям Gradle на этом Joker и так было что послушать (речь о нём заходила многократно), но доклад о нововведениях ветки 3.x был особенным: рассказывал непосредственно участник команды Gradle Рене Грошке. Для начала он уточнил, почему версия 3.0 получила такой номер, если не лопается от новых возможностей: «У нас major release делается не в связи с новыми фичами, а в связи с прекращением поддержки deprecated-фич. Поэтому версия 2.0 в своё время многих разозлила!»

Joker 2016: Вертикальное масштабирование - 20

Если слайды о composite builds из недавней версии 3.1 вопросов ни у кого не вызывали, то изображение ниже Грошке показал со словами «Это первая конференция, на которой я ожидаю, что люди узнают изображённое». А вы узнаёте или нет? Почему посетители петербургской Joker знают это лучше других?

Узнать правду

На снимке видно часть острова Котлин, находящегося в Петербурге и подарившего название языку Kotlin. В этом году в Gradle стали использовать Kotlin для билд-скриптов.

Joker 2016: Вертикальное масштабирование - 21

Тем временем конференция подошла к концу, и завершал её кейноут Гиля Тене (Azul Systems) о «прагматичном перфомансе». Тене призывал оторваться от миллисекунд и задуматься, что нам вообще нужно: «Глупо сравнивать скорость в отрыве от практических задач. Возьмём спортивный автомобиль и мопед — что из них быстрее? А теперь сравним их в условиях пробки: на чём реально быстрее доберёшься до работы? С перфомансом то же самое. То, сколько запросов в секунду может обрабатывать система — это теоретический подход. Прагматичный такой: “Должны ли все её ответы до единого быть правильными?”»

Joker 2016: Вертикальное масштабирование - 22

Остаётся подвести итоги — вот какие доклады конференции стали лучшими по оценкам зрителей:

  1. Близкие Контакты JMM-степени — Алексей Шипилёв (Red Hat)
  2. Причуды Stream API — Тагир Валеев (JetBrains)
  3. Анти-введение в Big Data — Владимир Красильщик (Яндекс)
  4. Advanced search for your legacy application — David Pilato (elastic)
  5. Асинхронно, но понятно: сопрограммы в Kotlin — Андрей Бреслав (JetBrains)

В общем, масштабирование произошло успешно: без сложностей не обошлось, но их в таком случае стоит ожидать, и в итоге они были преодолены. Теперь будем ждать Java-разработчиков весной в Москве и Новосибирске: уже открыт приём докладов и на JPoint, и на JBreak. А напоследок — интересный штрих: спикер Рафаэль Уинтерхалтер (Scienta) в твиттере поделился тем, что дала конференция ему. Такое за деньги не купишь, да.

Joker 2016: Вертикальное масштабирование - 23

Автор: JUG.ru Group

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js