В результате цепочки достаточно случайных факторов сегодня попал на данное мероприятие, представляющее собой конференцию разработчиков на Perl. Пока впечатления еще не улетучились - решил вот выразить их здесь в словестной форме.
Началось все с того, что мне в голову взбрела достаточно глупая мысль съездить к 9 утра субботы на лекции в университет, ни о какой конференции я не знал естественно. Не знаю как я умудрился вовремя проснуться, но так или иначе я выбрался из дома и отправился в свой ВУЗ, правда несколько изменив своей традиции делать это на метро - ранним утром на машине добраться до туда мне можно существенно быстрее, да и комфортнее. Лекции были по какому-то скучному предмету, так что я решил прогуляться и наткнулся случайно в коридоре на своего знакомого по имени Петр Федин, который, как оказалось, участвовал в организации этого мероприятия. Именно он и поведал мне о проведении в нашем ВУЗе (то есть ГУ-ВШЭ) конференции "May Perl", а также порекомендовал ее посетить. Собственно говоря в тот момент она только начиналась, и я не нашел ничего лучше кроме как согласиться, так как возвращаться на лекцию продолжать читать книжку на телефоне мне явно не хотелось.
Первые впечатления после попадания в аудиторию, где проводилась конференция, достаточно своеобразные: достаточно большое количество людей, там находящихся, состояло из двух групп - одна из них очень неорганизованно что-то делала в той части аудитории, где обычно преподаватель находится (как я в итоге понял - это была регистрация на конференцию), а другая была своеобразной пародией на студентов - тихо-мирно сидела за партами. Все это сопровождалось массой разного рода девайсов, валяющихся, казалось бы, где попало: фотоаппараты, камеры, ноутбуки конечно же в огромном количестве, позабавила лежащая на столе чья-то кепка с надписью root. Как я понял обстановка вполне нормальная для подобного рода мероприятий, но я все равно не очень люблю находиться в подобных скоплениях народа, видимо по-этому я раньше никогда не присутствовал на конференциях.
Спустя какое-то время суета закончилась и начался первый доклад. Сразу хочу сказать, что разработчиком на Perl я даже примерно не являюсь. Сталкивался я с этим языком программирования всего дважды: когда копался в исходниках Livejournal на предмет осознавания общих принципов использования в нем memcached и когда недавно тут разбирался с неправильным определением страны по IP в блоге, скрипт который мне удалось найти для решения этой задачей был как раз на Perl, но как надо он не работал - в итоге пришлось заняться доработкой его под конкретную задачу, не смотря на то, что языка я по сути не знаю и ни разу на нем ничего полноценно не писал. Первый доклад был достаточно продолжительным и охватывал серьезную тему асинхронного вывода на примере библиотеки IO::Lambda, если честно в суть повествования я вник далеко не сразу, поначалу большая часть моего сознания занималась тем, что осознавала малознакомый синтаксис. Ближе к концу доклада я наконец-то смог осознать картину, которая представляла собой по сути framework для реализации обработчиков различных событий, связанных с обменом данными. Насколько это эффективно мне судить сейчас сложно, но подход к программированию достаточно интересный и, возможно, наиболее рациональный в данном контексте.
Далее был обзор различных профайлеров для Perl-приложений, по большей части не очень информативно, скорее просто демонстрация некоторых решений этой задачи. Из них мне запомнился разве что kcachegrind, который мне в свое время доводилось совсем чуть-чуть использовать, а сегодня о нем рассказали несколько новых для меня вещей, а также показали пару способов визуализировать данные, полученные с помощью профайлинга.
Следующим пунктом программы был очень поверхностный рассказ о POE. К этому моменту я уже вполне привык к Perl'у и трудностей с пониманием кода больше не испытывал, так что понимать было существенно проще. Суть доклада заключалась в обзоре возможностей, предоставляемым эти окружением. Оно предоставляет возможность работы приложения как на очень низком уровне, так и с помощью предоставляемых высокоуровневых абстракций и framework'ов. Система имеет модульную структуру, основу которой составляют модули POE::Kernel и POE::Session, а остальные строятся на их базе и позволяют программисту пользоваться широким предоставляемым набором инструментов для решения задач различной сложности путем построения логики приложения в виде совокупности обработчиков событий, вызываемых как вручную так и при взаимодействии с внешними объектами.
После этого выступления конференция fork'анулась на две аудитории: в одной проходил мастер-класс по все тому же POE с Иваном Сережкиным из Яндекс, куда я собственно и пошел, а в другой (как я понял) - обзор framework'а Jifty. Мастер-класс был достаточно впечатляющим, даже при том что я ежедневно пользуюсь Linux, я был несколько удивлен увиденной мной на экране проектора операционной системой: очень минималистичный оконный менеджер с массой рабочих столов, на которых располагалось куча приложений, по большей части консольных. Дополнительное впечатление произвел владелец этой системы, который пользовался ей на удивление быстро и слаженно. Сам мастер-класс заключался в реализации средствами POE на ходу придумываемой задачи, которую на ходу же и меняли по определенным причинам (по большей части благодаря своеобразности организации доступа в интернет в здании). Как и любой нормальный программист, ведущий мастер-класс человек (не знаю как это правильно называется одним словом), в процессе очень активно и эффективно пользовался мануалами, а также советами и предложениями коллег. Процесс написания кода сопровождался подробнейшими комментариями, так что даже я прекрасно понимал что и зачем пишется в данный момент и вообще о чем идет речь.
Когда первая часть мастер-класса закончилась я поднялся наверх посмотреть на окончания доклада о Jifty, правда на тот момент докладчик уже отвечал на вопросы, так что я получил лишь общее представление о данном продукте. Далее по программе был большой перерыв на обед, на котором я решил отправиться домой, так как целый час перерыва слоняться в институте без дела ради еще одного доклада особого желания не было.
Конференция продолжится завтра, не знаю соберусь ли я туда съездить, впрочем свою долю впечатлений и информации я уже определенно получил. Эта конференция достаточно сильно изменила мое представление о Perl, как о языке программирования, причем в лучшую сторону. Возможно даже она подтолкнет меня изучить его более детально, правда для этого нужно сначала найти достаточно свободного времени...
В заключении хочу извиниться за малоинформативный пост, не знаю кому он вообще может быть интересен, но если вдруг Вы все же дочитали до конца: спасибо за внимание!