Мир! Труд! May Perl!
17-18 мая 2008 года в Москве в аудиториях Высшей школы экономики прошла конференция YAPC:Russia 2008 «May Perl».
Конференция такого формата состоялась в России впервые. В ноябре 2007-го в Москве уже проходила встреча разработчиков в «младшем» формате – Perl Workshop, спустя полгода организаторы (Moscow.pm-московская группа Perl-программистов, perl6.ru, deeptext.net) сумели довести уровень мероприятия до настоящей Yet Another Perl Conference, серии форумов, объединяющих Perl-разработчиков по всему миру. От Perl Workshop, YAPC отличается как количеством докладов и участников, так и международным характером мероприятия.
Регистрация участников (Иван Сережкин «сканирует» очередного посетителя)
День первый – Lambda, POE и MVC
Приведённые в введении новости содержались во вступительном слове Андрея Шитова (Moscow.pm). После него начались доклады. Слово взял Дмитрий Карасик (Copenhagen.pm), рассказавший о модуле IO::Lambda, предназначенном для асинхронного программирования асинхронного ввода-вывода. Модуль отличается использованием техник функционального программирования (отсюда название), а Дмитрий – живостью изложения и интересной подачей материала.
Слушатели мастер-класса про POE (организаторы ожидали гораздо меньше посетителей этого мастер-класса)
Затем конференция разделилась на два потока. В одной аудитории Дмитрий Осиенко (Eludia.pm) делился с коллегами опытом разработки корпоративных информационных систем на MVC-платформе Eludia. Хоть это и был рассказ представителя компании о собственной разработке, доклад перерос в обсуждение методов построения внутрикорпоративных информационных систем.
Алексей Карпанов (Rambler) сообщил о методах и инструментах профилирования Perl-кода (цитата: «Сколько ни есть профилировщиков для Perl – все кривые, но...»). Познавательный доклад был подкреплён блиц-выступлением о применении профайлинга при построении Рамблер-почты, состоявшимся на следующий день («Компиляция шаблонов в машинный код», ни больше, ни меньше).
Доклад Анатолия Шарифулина (RostovOnDon.pm) «My POE» стал, наверное, самым интересным в первый день конференции. Впрочем, тем, кто уже давно в курсе технологии работы событийной машины Perl, он мог показаться излишне обзорным, но таких было не очень много.
Изучение технологии продолжилось на мастер-классе «POE в повседневной жизни». К сожалению, занятие, обещавшее быть интересным, чуть не было испорчено своеобразием доступа в Интернет, реализованного местными администраторами (цитата: «Кто бы мог подумать, что Интернетом называется только HTTP и только через прокси, который выдаёт DNS и только Explorer?»).
Ивану Серёжкину (Yandex) пришлось демонстрировать решение средствами POE на ходу скорректированной задачи, но делал он это настолько интересно и, я бы сказал, с артистизмом, что кажется, не будь трудностей с сетью, их стоило бы придумать.
В основной аудитории тем временем прошёл доклад Руслана Закирова «Сайт на Jifty за пару часов», в котором рассказывалось об основных принципах организации этого относительно нового MVC-каркаса.
Анатолий Шарифулин и Иван Сережкин ведут мастер-класс «POE в повседневной жизни»
После перерыва последовал доклад Сергея Антонинко (UMI.CMS) «Аргументы в пользу XSLT». Он несколько выбивался из общей тематики конференции, так как непосредственно про Perl не было сказано почти ничего, но зато были очень ярко продемонстрированы преимущества технологии XSLT в веб-разработке. Надо сказать, что сделано это было интересно и убедительно, но мне показалось, что вопрос «причём здесь Perl», повисший с начала доклада, так и висел до его окончания.
Очень интересным оказался доклад Николая Лавлинского «Построение совместимых Perl/mod_perl-систем с веб-интерфейсом». Было рассказано об особенностях конфигурации веб-сервера Apache для организации mod_perl-хостинга, а также использовании модуля SOAP::Lite для создания системы управления сайтом.
Доклад Александра Котова «Perl и Web2.0» на самом деле был посвящен значению этого языка в современном мире веб-разработки. Александр привёл анализ рынка труда, анализ книжных новинок, показывающий востребованность различных в той или иной степени конкурентных технологий. Выводы напрашивались средней утешительности – хоть Perl и уступает по востребованности некоторым языкам, зато его положение (а, следовательно, и ниша) стабильно. Впрочем, народ откровенно веселился. Дело в том, что при демонстрации графиков популярности различных средств разработки проектор показывал линии, соответствующие Perl, цветом, совпадающим с цветом фона. Таким образом, все остальные языки смотрелись довольно жалко на фоне Perl-вселенной.
Выступление Александра Котова о рынке Perl-программистов было одним из докладов, привлекших большое внимание
Закончился первый день коротким, но очень живым рассказом Руслана Закирова о собственном опыте публикации CPAN-модулей. В известной степени это была агитка, которая достигла цели – у многих глаза зажглись.
Спонтанное выступление Руслана Закирова о том, как зарабатывать на публикации модулей
День второй – блиц и гольф
Второй день конференции начался с блиц-докладов. Это был, наверное, самый интересный момент конференции – серия выступлений по пять минут, без вопросов, прерываемых ударом гонга Алекса Капранова. Все было очень здорово и слушалось на одном дыхании.
Запомнился доклад Карасика, про «секретные операторы» в Perl, провокационная речь «CGI.pm – зло?!» Анатолия Шарифулина, «Презентации в стиле Такахаси» Алекса Капранова и особенно блиц Ивана Сережкина, который не произнёс не слова, просто набирал в редакторе текст, сорвав аплодисменты.
Доклад Сережкина «ООП. Пэррот. Можно использовать» ввёл слушателей в дебри практики написания и использования модулей для будущего Perl 6 (цитата: «Он только родится, опа, а модули уже есть»). Основная мысль – работать с Parrot уже не только можно, но и нужно. И как можно больше!
Ярослав-Александр Литот (Oxigen) в докладе «Perl + виртуализация» рассказал про построение системы хостинг-виртуализации и способах управления виртуальными машинами.
В докладе «UTF Perl Practicе» Владимир Перепелица (Агава) говорилось о функциях utf8 и о состоянии поддержки Unicode в Perl. Его речь вызвала большое количество вопросов, завязалась небольшая дискуссия.
Далее последовал доклад Ильи Общадко (Travel.ru) об истории разработки и архитектуре CMS Travel.ru, которая, несомненно, представляет интерес для изучения. Отдельно были представлены убедительные обоснования выбора Perl как языка разработки крупнейшего туристического портала.
В последнем докладе Егор Шиповалов рассказал о различных реализациях ORM в Perl, провёл их сравнительный анализ, продемонстрировал практическое применения модуля DBIx::Class. На этом двухдневный марафон был окончен, и появилась возможность перевести дух и подвести итоги.
В самом начале конференции всем участникам раздали задания на Perl Golf – традиционного соревнования программистов. Были поставлены две задачи, которые требовалось решить с использованием минимума символов. Первая – написать, используя только управляющие конструкции и регулярные выражения, проверку делимости числа на 11. Вторая с чуть более сложным условием. При заданном блоке строк из пробелов и символов # требовалось найти максимальное число символов #, попадающих в любой из прямоугольников, площадью точно равных заданному на STDIN числу N и всеми своими клетками, лежащими внутри заданного блока.
В конце конференции были подведены итоги, с раздачей слоников, причём отмечены были не только самые короткие, но и наиболее интересные решения.
В заключение хотелось бы поблагодарить организаторов и лично Андрея Шитова за хорошо проведённое мероприятие. По-моему, первая российская конференция YAPC вполне удалась.
Текст Кирилла Сухова, фотографии Андрея Шитова