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



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

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

Перший день
Іноді не потрібно навіть чекати відкриття конференції, щоб відчуваючи її відмінність від минулорічної: у випадку з Joker 2015 достатньо було просто прийти на майданчик. Цього разу, зібравши понад 1000 осіб, петербурзька конференція переросла розміри «Park Inn Пулковської» і пройшла в «Експофорум». Опинившись під його високими стелями, складно було не вразити масштабом. Можна сказати, що у конференції відбулося вертикальне масштабування у всіх сенсах.



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



Ще одна відмінність виникло з відкриттям конференції, і воно мало значення не для присутніх у «Експофорум», а для всіх інших: вперше в історії Joker відеотрансляція одного з треків була безкоштовною. Але у цьому випадку, крім нових можливостей, з'явилися і нові складності. З трансляцією виникли технічні проблеми (наданий нам канал на upload виявився менше, ніж повинен був), змусили чимало людей побігати в милі. Пізніше ситуацію вдалося виправити, але деякий час все відчувалося так, як на цьому нашому твіті.

Коротко про трансляції #jokerconf 2016 pic.twitter.com/7FQdnRVCdB  JUG.ru (@JUGru) October 15, 2016


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



Що до змісту доповіді, то ключовим його слайдом стала «Крива їм. Ш». Розділивши роботу над оптимізацією на кілька різних «зон», Шипилев рішуче заявив, що спочатку мова йде просто про те, яку частину говнокода переписувати в першу чергу». Це означає, що буде корисний будь профайлер, а слова про «передчасну оптимізацію як корінь всіх зол» не більш ніж ментальна пастка. Ось пізніше, коли очевидні помилки усунуті і проект вже перейшов з «зеленої зони» в «жовту», все стає складніше.



А після кейноута настав час розходитися по залах, і тут відчувалася ще одна складність. Оскільки на цьому Joker треків було цілих шість, вибір став набагато багатшими, а в результаті зробити його стало складніше: куди не піди, втрачаєш щось цікаве. І в цьому тексті теж згадана лише невелика частина доповідей, інакше його просто складно було б дочитати. Але всім би такі складності, як «занадто багато цікавого! Зрештою, все пропущене учасники зможуть подивитися в запису.



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



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



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



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



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



А закриває кейноут першого дня органічно переходив на вечірку. Спочатку Сем Аарон пояснював, чому створив інструмент для музичного лайвкодинга Sonic Pi «Використовувати мови програмування тільки для завдань ентерпрайза — це все одно що використовувати російську або англійську тільки для юридичних документів». Потім демонстрував основні принципи роботи з ним і закликав бажаючих допомогти з перекладом туториала на російську (проект орієнтований і на дітей, так що англійської тут недостатньо).



Потім, відійшовши в інший зал, він взявся за власне лайвкодинг, відігравши двогодинний сет. Код крупно виводився на екран, і часом Аарон звертався до глядачів з допомогою коментарів в ньому. Наттер, який стояв під час сету в першому ряду, зняв фрагмент виступу телефоном в 4K-дозвіл:



Другий день


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



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



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



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



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



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



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



Якщо слайди про composite builds з недавньої версії 3.1 питань ні у кого не викликали, то зображення нижче Грошке показав зі словами «Це перша конференція, на якій я очікую, що люди дізнаються зображене». А ви дізнаєтесь чи ні? Чому відвідувачі петербурзької Joker знають це краще за інших?

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


Тим часом конференція підійшла до кінця, і завершував її кейноут Гиля Тені (Azul Systems) про «прагматичному перфомансі». Тіньова закликав відірватися від мілісекунд і замислитися, що нам взагалі потрібно: «Нерозумно порівнювати швидкість у відриві від практичних завдань. Візьмемо спортивний автомобіль та мопед — що з них швидше? А тепер порівняємо їх в умовах пробки: на чому реально швидше доберешся до роботи? З перфомансом те ж саме. Те, скільки запитів в секунду може обробляти система — це теоретичний підхід. Прагматичний такий: «чи всі її відповіді до єдиного бути правильними?»"



Залишається підвести підсумки — ось які доповіді конференції стали кращими за оцінками глядачів:

  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) в твіттері поділився тим, що дала конференція йому. Таке за гроші не купиш, так.
@lukaseder @sjmaple Two VM engineers debugged a segfault for me. Another one helped me understand a GC problem. Can't pay for that.  Rafael Winterhalter (@rafaelcodes) October 16, 2016



Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.