...

суббота, 25 июня 2016 г.

HolyJS: с первой попытки

Петербургская JavaScript-конференция HolyJS начиналась почти как авантюра. Затевать совершенно новую конференцию, когда время на подготовку очень ограничено — смелое решение.

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

Конференция была сделана совместными силами: организацией занималась JUG.ru Group, а программу готовили SPB Frontend. Логичное разделение труда: у первых — большой опыт организации других конференций, у вторых — знание JS-мира, позволяющее обеспечить должный уровень докладов.

Впрочем, в открывающем кейноуте от Дениса Мишунова (Digital Garden AS) знание тонкостей JavaScript не требовалось: речь пошла не о них, а о тонкостях человеческого восприятия. Гонясь за миллисекундами и килобайтами, легко позабыть, что на фронтэнде вся эта гонка изначально нужна ради пользователя. А то, насколько будет хорошо пользователю, зависит не только от миллисекунд.

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

Доклад заканчивался отсылкой к документации Apple для разработчиков, в которой напрямую сказано: «The perception of performance is just as effective as actual performance in many cases».

Мишунова на главной сцене сменил Виктор Русакович (GP Software.travel) с докладом о реактивном программировании, и всё сразу стало куда технологичнее. Описав состав RxJS как «объекты, операторы и магия», Русакович подробно прошёлся по второму пункту. Цель «расписать каждый оператор» не ставилась (их попросту слишком много), но конкретные примеры, проиллюстрированные «шариками» с сайта RxMarbles, позволяли получить хорошее общее представление.

Затем Дино Эспозито говорил о распознавании устройств и различном отображении сайтов на них. Он напоминал, что, с одной стороны, user agent string доверять нельзя («как-то мы тестировали дешёвый китайский планшет, так он выдавал себя за iPad»), но с другой, определять параметры устройства и полагаться на responsive web design тоже не панацея («главная проблема в том, что он одинаково обходится с компьютерным окном браузера шириной в 480 пикселов и со смартфоном, у которого ширина экрана 480 пикселов»).

Любопытно было наблюдать контраст с тем, как тот же Эспозито выступал двумя днями ранее на DotNext. В .NET-мире он крупный авторитет, и на соответствующей конференции блистал на главной сцене, как рок-звезда перед заворожёнными поклонниками. Здесь же был просто одним из докладчиков второго зала, и таким плотным потоком остроты не обрушивал. Впрочем, спутать его с кем-то другим все равно не получилось бы: такую харизму не спрячешь.

Его сменил Михаил Дружинин (Luxoft) с рассказом о порталах на JavaScript: «Бывает нужно разместить на одной странице несколько разных модулей. И если они не зависят друг от друга, то в этом случае ещё повезло...». Но пока Михаил разбирал, как в этом может помочь фреймворк F2, в третьем зале Алексей Симоненко с докладом «Как я перестал верить технологиям» (и завидной бородой) критиковал беготню за новыми фреймворками и прочими инструментами.

С бурным развитием JS-мира неудивительно, что в нём синдром серебряной пули особенно силён: тут чуть ли не каждый день что-то новое обещает исправить все ошибки предшественников и сделать ваш проект гораздо успешнее. Но статья «No Silver Bullet», в этом году отмечающая 30-летие, не стала с момента сочинения менее актуальной. Поэтому неудивительно и появление возражений «куда вы так несётесь, посмотрите на реальных примерах, как переход на что-то новое совершенно не избавлял от всех проблем».

Симоненко оригинально построил доклад, начав с прославления нового чудодейственного средства Hype.js и лишь затем признавшись, что его не существует. Позже он привёл классическую диаграмму The Hype Cycle, напоминающую, что для любой новой технологии характерен «пик завышенных ожиданий», обычно сменяющийся болезненным разочарованием. Поэтому, пока кто-то постоянно прыгает с одной технологии на другую, уже напрыгавшийся и набивший шишек спикер советовал «работайте с тем, что знаете».

В обеденном перерыве, как и накануне на Mobius, можно было услышать обсуждения задач от EPAM. Их набор частично отличался, но задача об инфицированной шахматной доске снова попала в список — и снова обращала на себя внимание. Помимо задач, стенд EPAM запомнился многим возможностью поиграть с развивающим конструктором Qubidoo, заставив шарик катиться по жёлобу. На сайте конструктора написано «от 3 лет до 140 IQ», и это ироничное определение похоже на правду: на HolyJS взрослые мужчины увлечённо возились с игрушкой, способной вызвать интерес у трёхлетнего.

А после обеда Василика Климова (Artec Group) рассказывала про WebGL. Для обычного фронтэндера без опыта работы с 3D-графикой тема может показаться далёкой и пугающей, но Василика объясняла, что бояться нечего: при использовании библиотеки Three.js всё оказывается куда проще, чем можно предположить. От общих слов и эффектных демо-роликов она перешла непосредственно к тому, как пишут шейдеры, и примеры оказались вполне доступными для зрителей без WebGL-опыта: ну да, чтобы превратить цветную модель в чёрно-белую, из трёх цветов по RGB стоит выводить среднее арифметическое, логично.

Помимо отмеченной многими содержательности доклада, он впечатлял ещё и в совсем другом отношении. Пока что на IT-конференциях нечасто можно увидеть, как обаятельная девушка объясняет мужчинам «зря вы боитесь, я разобралась, тут ничего страшного», и кому-то из зрителей такая картина могла рвать шаблон. Но судя по появлению мероприятий вроде Ladies Code, где среди прочих участвовала та же Василика, интерес женщин к IT растёт, и в будущем это может стать куда более привычной картиной.

Затем в том же зале Кирилл Сухомлин (EPAM Systems) говорил о том, откуда берутся новые JS-фичи, и это ярко показывало отличие JS-мира от других. На конференциях DotNext и Mobius не вставал вопрос, откуда берутся новые фичи в .NET или Swift — там сразу ясно, кто всему голова. А в случае с JavaScript о роли Ecma International задумываются куда меньше.

Зато в процессе его развития случаются такие же казусы, как и в других мирах. Как объяснял Кирилл, четвёртая версия ECMAScript была самой амбициозной, но в итоге оказалась заброшенной, и пятую, наоборот, можно было назвать «дуем на воду». Это заставляло вспомнить то, что Дино Эспозито на DotNext говорил о происходящем с (ASP).NET Core: Microsoft устроил революцию, но ещё не доведя её до релиза, испугался результатов и дал по тормозам.

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

Закрывал конференцию кейноут от Вячеслава Егорова (Google), работавшего над движком V8. Получалась интересная симметрия с открывающим кейноутом: оба были о производительности, но первый о психологии и восприятии, а второй, наоборот, о технологическом хардкоре и внутренностях движков.

И даже в топ-10 докладов по отзывам зрителей эти два выступления оказались на соседних позициях, уступив только неверию в технологии:

1. Алексей Симоненко — Как я перестал верить технологиям
2. Вячеслав Егоров — Производительность JavaScript через подзорную трубу
3. Денис Мишунов — В погоне за производительностью: психология пользователя
4. Виктор Грищенко — Swarm: синхронизируем рой устройств
5. Николай Рыжиков — JаvaScriрt внутри PostgreSQL
6. Алексей Охрименко — Парсеры — это Спарта
7. Василика Климова — Практическое применение WebGL
8. Роман Дворнов — CSSO: оптимизируем CSS
9. Игорь Зотов — Iskra JS: JаvaScriрt в микроконтроллере
10. Михаил Новиков — Удобные API с GraphQL

Доклад Егорова перекликался с тем, что на Java-конференциях устраивает Алексей Шипилёв: глубокое знание «кишочков» сочеталось с задорным изложением, а суровые числа бенчмарков — с яркими иллюстрациями. Более того, даже в выборе иллюстраций у этих двух спикеров есть пересечения:

На этом выступлении, когда конференция было уже на финишной прямой, внезапно возникла проблема с техникой, и на некоторое время зал остался без слайдов. Как заметил Егоров, прямо перед докладом Алексей 23derevo Фёдоров сказал ему «Раз за всё мероприятие ещё не произошло ни одного технического факапа, значит, на твоём что-то произойдёт, готовься». Забавно было видеть, насколько точными оказались эти слова: фраза из анекдота «стена рухнула точно по графику» получала вполне буквальное воплощение.

Но затем техника ожила, и дело дошло до завершительного слайда «Спасибо». А в остальном конференция прошла удивительно беспроблемно для первого раза, и зрительские отзывы показали: если устраивать HolyJS и было авантюрой, то она явно удалась.

Комментарии (0)

    Let's block ads! (Why?)

    Комментариев нет:

    Отправить комментарий