«JS становится более зрелым»: интервью с программным комитетом HolyJS 2018 Moscow
Как JS-разработчик может провести время на выходных лениво, но в то же время с пользой? Посмотреть онлайн-трансляцию HolyJS: и что-то новое узнаешь, и выходить из дома не придётся.
А в преддверии конференции мы задали вопросы программному комитету HolyJS: людям, от которых зависит, какие доклады можно будет увидеть. Как они сами видят правильную программу «конференции для JS-разработчиков»? Что в неё может попасть, а что нет? Как борются со сложностями?
В разговоре поучаствовали:
Евгений bunopus Кот
Дмитрий DmitryMakhnev Махнёв
Вадим bmsdave Горбачёв
Алексей zolotyh Золотых
Андрей real_ales Дмитриев
Помимо них над программой также работали Екатерина cakeinpanic Павленко и Михаил v1r Полубояринов.
JUG.ru Group: У JavaScript есть репутация «экосистемы, где каждую неделю меняют фреймворк», но понятно, что это утрированный стереотип, и React уже исполнилось пять лет. А когда смотришь на экосистему с точки зрения программного комитета, которому нужен актуальный материал, насколько быстро в ней всё меняется? Есть ли на новом HolyJS доклады, которых полгода назад на предыдущем в принципе ещё не могло быть?
Алексей Золотых: Ну, конкретно про фреймворки у нас и докладов-то нет, программа о другом.
Дмитрий Махнёв: Хотя основные столпы (React, Angular, Webpack, Vue) появились достаточно давно, при этом много чего происходит и меняется вокруг них. Вышла новая версия Webpack — с одной стороны, это тот же Webpack, а с другой, много всего поменялось. Недавно был очень серьёзный релиз у React, они очень некисло поменяли некоторые хуки жизненного цикла компонентов, что сильно изменило многое. И так далее
Евгений Кот: Конкретно фреймворков и громких имён появляется не очень много. Но есть тренды: что-то сейчас становится более популярным, а три года назад об этом меньше говорили. Например, у нас будет доклад от Bartosz Pietrucha про то, как сделать из смартфона Nintendo-контроллер с помощью JavaScript и машинного обучения. А также доклад Isa Silveira конкретно про машинное обучение и AI, эта тема стала настолько популярной и простой в мире JS и фронтенда не так давно.
Алексей: Но вообще среди заявок на доклады больше того, что уже реально используют в продакшне. Сейчас стадия не быстрого роста, а поддержки существующего.
Евгений: Возможно, это связано с тем, что у HolyJS есть некое позиционирование: доклады уровня «Hello world! Смотрите, я заюзал новую библиотеку» уже не подойдут. Конференция немного про другое.
Дмитрий: По поводу каких-то новых штук. Например, Витя Вершанский расскажет про асинхронные хуки в ноде. Они появились недавно, решают достаточно сложные проблемы, но до конца еще не устаканились.
Алексей: Но эта тема связана с проблемами, с которыми люди сталкиваются в продакшене. То есть это не «игрушки», а что-то работающее.
Вадим Горбачёв: Я ещё дополнил бы ответ тем, что волна холиваров между фреймворками уже успокоилась, сейчас взгляд и интерес нацелился в другие, более прикладные и рассудительные стороны. Мне кажется, сейчас очень стала видна работа W3C, TC39 и прочих. Что они делают, что принимается в стандарты. Proposals очень хорошо освещаются, чувствуется, что сам JavaScript становится более зрелым.
Дмитрий: Хочется добавить, что мы действительно взрослеем. Очень много в последнее время слышно о типах. Нам становится приблизительно 18 с точки зрения разработки. Например, Вячеслав Шебанов поможет стать нам намного старше и расскажет не просто о том, как он Flow прикрутил, а действительно о теории типов, откуда это возникло.
Евгений: Ты думаешь, что теперь джаваскриптеры, фигурально выражаясь, пойдут в институт?
Дмитрий: Я бы сказал, подготовятся к ЕГЭ.
Андрей Дмитриев (программный директор): В армию пойдут они!
JUG.ru Group: — Из нового в программе ещё можно заметить Flutter. И для конференции с «JS» в названии это «пограничная» тема: джаваскриптерам расскажут о том, как писать на Dart для iOS и Android. Возникает вопрос:, а где именно проходит граница подходящих для HolyJS тем? Почему этот доклад решили взять?
Дмитрий: Мобильная разработка так или иначе важна, особенно в моментах, когда ты хочешь попробовать сделать свой стартап. Потому что без мобильной разработки сейчас никуда, приложения писать всё-таки надо. И как бы все ни кричали про PWA, все мы видим, где PWA находится. Все мы помним эксперименты с React Native, замечательные статьи от наших коллег из Airbnb, доклад на HolyJS Дмитрия Пацуры про нюансы React Native. То, что происходит с Vue Native, это лишь одна из трансформаций React Native. Куча проблем остается.
Тем не менее, ребята из фронтенда все равно хотят как-то пытаться писать мобильные приложения. А все-таки Java — это Java, а Objective-C и Swift — это Objective-C и Swift, и там куча нюансов. Опять же, хочется делать это кроссплатформенно. Flutter сейчас очень сильно выстреливает за счёт этого, не только во фронтендовских сообществах, но и много где, потому что он позволяет делать это кроссплатформенно. Как бы мы ни кривили душой, Dart достаточно близок к JS по сравнению с Java или Objective-C. Для современного фронтендера порог входа туда, мне кажется, будет проще, чем разобраться с Java и Gradle, чтобы запилить приложение под Android. Поэтому это выглядит достаточно интересной штукой, которую хочется показать людям, чтобы решить часть их проблем. И это не жёсткий пиар-проект от Жени, а осознанный выбор
Евгений: Цель моей жизни: чтобы каждый понял, что Dart — это не западло! Я могу дополнить Диму. Конечно, для HolyJS это доклад «на грани доступного». Но тут сыграло роль и то, что сказал Дима, и личность докладчика. Ари Лернер — очень интересный человек, мы с ним брали интервью для Хабра. Он программист старой школы, самый труёвый. Он написал книжки про Angular, AngularJS, React, React Native, Vue — что-то в соавторстве, что-то сам. Он берёт технологию, которая ему интересна, разбирает её до самых потрохов, пишет по этому поводу книгу и делает какие-то доклады, рассказывает о том, что он изучил.
Может выглядеть странно, что автор ng-book рассказывает про Flutter: где одно, а где другое? Но он действительно крут тем, что берёт технологию, вгрызается в неё до костей, выворачивает наизнанку и потом рассказывает о том, что он нашёл и увидел. К нему большое уважение за это. Мне кажется, он сможет дать что-то интересное для разработчиков, которые даже не думали о том, что им нужна мобильная разработка. Сейчас мобильные приложения стали использоваться чаще, чем десктоп.
Дмитрий: Еще хотелось бы к этому добавить, что мы долго позиционировались как конференция исключительно про JS, и возникали нюансы при формировании программ, а также люди подходили и спрашивали: «Почему так, JS ведь живёт не в сферическом вакууме». Например, если мы посмотрим на Node, там можно (и иногда это действительно делают) писать на плюсах. У меня есть хороший знакомый, который построил большую часть продакшн-инфраструктуры Node.js в одной немаленькой компании, и они действительно пилят немало на Node.js, но когда припёр проект, где нужна была производительность, то сел писать на плюсах и сделал это осознанно. Надеюсь, что на следующий HolyJS мы его вытащим с докладом об этом.
Евгений: О времена, о нравы! Джаваскриптеры пишут на C++!
Дмитрий: Да, а что делать, если жизнь заставит? Вот мы и поменяли позиционирование. Сейчас мы — конференция для JS-разработчиков. Хотелось бы начать показывать людям некоторый мир вокруг, потому что много опыта, например, из Java можно применить к нам. Особенно с тем, как мы сейчас начинаем угорать по типам. Когда-то нужны мобильные приложения, и надо идти лезть туда. Когда-то нам надо работать с бинарными данными, даже в браузере, приходится лезть и в такие вещи. Общее расширение кругозора после конференции тоже очень важно. Мы начинаем делать некоторые шаги в эту сторону, помимо поля JS.
Вадим: Вообще это в HolyJS уже давно. Например, когда Коля Рыжиков рассказывал, как на JS писать в PostgreSQL. Я думаю, что публику не удивить тем, что на HolyJS говорят не только про JS.
Дмитрий: Теперь делаем это более осознанно и более свободно, нежели раньше.
JUG.ru Group: Одна из вечных проблем всех конференций в мире — отмена доклада незадолго до мероприятия из-за форс-мажора (например, болезни спикера). Что вы делаете в такой ситуации?
Евгений: При подготовке к конференции мы проводим внутри программного комитета голосование, какие доклады мы берём, какие — нет. И те доклады, которые «чуть-чуть недобрали», становятся запасными. Мы приглашаем этих докладчиков на конференцию, они получают все те же бенефиты, что и основные спикеры. Они приезжают на неё, но по умолчанию не выступают, становясь запасным вариантом. И при отмене какого-то принятого в программу доклада мы сразу включаем запасной вариант. Причём этих спикеров мы, как и принятых в программу, тренируем, проводим созвоны, работаем с ними. Благодаря этому, даже если замена происходит в последний момент, у нас качественный доклад, а не что-то, сделанное наспех, лишь бы заткнуть дыру в расписании.
Дмитрий: Наверное, сейчас первый раз за мою практику, когда спикеры согласились на это в большом количестве, за что им хотелось бы сказать огромное спасибо.
JUG.ru Group: Если докладчик в итоге не выступает на конференции и остаётся «на скамейке запасных», но над его докладом шла активная работа и были прогоны, возможно, есть смысл взять видеозапись последнего прогона и опубликовать на YouTube?
Евгений: Мне кажется, что это не одно и то же, потому что все-таки у доклада на большую аудиторию какая-то другая энергетика.
Алексей: Соглашусь с Женей. У меня недавно случай на прослушивании был, когда человек говорил, что не чувствует энергетику. Тяжело выступать, когда нет глаз зрителей и их энергетики, по-дурацки себя ощущаешь.
Вадим: Но спикеры же не делают эту подготовку впустую. Контент накапливается, формализуется, и если даже не получится выступить на площадке HolyJS, докладчик вполне может с этой подготовкой поехать и выступить на другой конференции.
JUG.ru Group: Сейчас офлайновые билеты на HolyJS уже распроданы, но остаётся возможность посмотреть трансляцию. Понятно, что зрители трансляции упускают происходящее на площадке общение —, а в чём ещё разница, что ещё можно получить только «живьём»?
Дмитрий: Есть ряд не попадающих в трансляцию вещей, например, BoF-сессии в конце первого дня: это дискуссии с участием спикеров, посвящённые какой-то конкретной теме. В них могут поучаствовать все желающие, главное — оставаться в рамках дискуссии, а не приходить с какими-то своими вопросами (для этого есть дискуссионные зоны).
Евгений: Если, например, вы работаете в компании, где есть 10–15 фронтендеров, и вы обсуждаете, как сделать стейт в вашем большом приложении, то никто не будет говорить: «У меня вот это, а что у вас — мне все равно». BoF, по сути, выглядит так, что мы собираемся как «общая фронтенд-команда» и пытаемся решить какую-то проблему или обсуждаем наши мнения.
У нас будут три BoF-сессии: про Node.js, стейт на клиентской стороне и инструменты разработчика.
BoF про Ноду очень хорошо зашёл в прошлый раз, поэтому поднимаем тему снова. Так сложилось, что у нас на конференции в этом году много спикеров, напрямую относящихся к Node — Thomas Watson, Ujjwal Sharma. Здесь тематика очевидна: Node.js, что вокруг, куда это идёт, как развивается. Модератором будет Николай Матвиенко, которого зрители прошлых HolyJS могут помнить как спикера (например, вот его доклад с питерской HolyJS).
Про стейт то же самое: интересно, потому что поучаствуют Michel Weststrate, создатель MobX и MobX-state-free, и Erik Rasmussen, создатель Redux-Form. В целом стейты как понятие могут показаться достаточно узкой темой, но все их используют, все так или иначе хранят какое-то состояние на клиенте. И кому лучше знать best practices в этом отношении, как не этим спикерам? Ещё там поучаствует Виктор Грищенко —, а он «отец русского CRDT».
Дмитрий: И насчёт третьего бофа, про инструменты. Во-первых, у нас будет Алексей Козятинский, который делает очень много всего для работы с JS в Chrome DevTools. Соответственно, у него можно будет спросить про все уголки Chrome DevTools, которые связаны с JS. Будет Кирилл Черкашин из проекта Firebase, позиционирующего себя как набор большого количества тулзов. Будет Стас Курилов, который делает с Webpack черт-те что и пишет к нему плагин. По всем вопросам относительно Webpack его можно терроризировать достаточно глубоко. Будет Роман Дворнов, он сделал очень много тулзов, много всего по дизайн системам, по тому, как их строить на основе анализа React-компонентов по AST.
Евгений: Помните Инспектора Гаджета? Мне кажется, Роман Дворнов — Инспектор Гаджет русского фронтенда.
Дмитрий: И Виталий Слободин — человек, который заканчивал поддержку PhantomJS. PhantomJS — это инструмент, на котором было основано огромное количество тулов для тестирования чего-либо в браузере. Виталий ранее на HolyJS рассказывал про headless-браузеры.
Алексей: Это один из тех случаев, когда гордость берёт после того, как узнаешь, что человек, сделавший это, из России.
JUG.ru Group: И напоследок. Раз вы, в отличие от нас и читателей, уже видели доклады, скажите что-нибудь о том, который вам особенно близок — возможно, благодаря вам какие-то зрители не пропустят интересные им выступления.
Дмитрий: Очень сложно выделить один доклад, потому что в этот раз программа получилась очень интересной для меня. Но в первую очередь хотелось бы отметить доклад Вячеслава Шебанова «Система типов в двух словах», я проводил его первый прогон и не понял там около половины слов. Это очень классный доклад, где почти на каждом слайде хочется идти в википедию и читать. Тем не менее, по ходу доклада слова становятся понятны, и это очень интересно.
И ещё выделю доклад Theodore Vorillas про accessibility в реальной жизни. Вообще-то я очень тяжело отношусь к заявкам по accessibility, потому что мне приходится им заниматься на работе, и когда выходит какой-нибудь евангелист и рассказывает о существовании ARIA-тегов — это, конечно, замечательно, но так делают все. А здесь всё-таки про то, как сделать какую-то железяку, которая помогала бы людям читать. Честно говоря, меня очень поразила статистика, раскрытая в начале этого доклада: какому количеству людей это нужно.
Евгений: С моей стороны, конечно, это Ари Лернер про Flutter. Это будет единственный доклад с Dart на слайдах. Но, помимо этого, интересен доклад Lucas Da Costa про функциональное программирование. Когда я смотрел прогон, я тоже попал в ситуацию, когда даже по слайдам не увидел ничего знакомого. Но самый кайф этого доклада в том, что это будто какой-то сложный коктейль, который накрывает через полчаса. Я посмотрел, ни черта не понял, а потом посидел, и у меня случилось озарение: ничего себе, блин, круто! Поэтому я рекомендую сходить. Если после этого доклада вы выйдете и с ошарашенным видом будете полдня ходить, потом вас накроет нормально.
Алексей: Я почти влюбился в доклад про машинное обучение, многое от него жду. И ещё мне понравились оба доклада про accessibility — и от Теодора, и «Разработка доступных графиков».
Вадим: Как говорится: «Talk is cheap. Show me the code». В Chrome можно при двойном нажатии Ctrl+Shift+i (на Mac — Cmd+Shift+i), вызвать DevTools на DevTools и посмотреть его исходники… Посмотрите перед
докладом про протокол Chrome DevTools.
JUG.ru Group: Спасибо за ответы!
У онлайн-трансляции HolyJS есть два варианта. Во-первых, бесплатная трансляция первого зала первого дня: она будет доступна всем попросту на YouTube. А во-вторых, платная, дающая доступ ко всем докладам обоих дней (как в прямом эфире, и в записи после конференции).