Выпуск 4. Июнь 2013

Обзор CPAN за май 2013 г. | Содержание | Perl Quiz

Интервью с Андреем Шитовым

Андрей Шитов — организатор большинства Perl-мероприятий на территории СНГ и бывшего СССР. За его плечами воршкопы Perl Today, May Perl, Saint Perl, BY Perl, BG Perl, Perl Mova, конференции YAPC::Russia и YAPC::Europe 2011. А впереди киевская YAPC::Europe 2013.

Как и когда начал изучать программирование?

Когда я начинал изучать программирование, компьютеров еще не было :-) Я где-то прочитал про школьный алгоритмический язык (и 1С тогда не было) и пытался что-то нарисовать, перемещая курсор. Потом появился курс информатики в школе (но не в нашей, там компьютеров тоже не было, а в соседней). Там стояли Синклеры с Бейсиком. Через год компьютеры завезли и в нашу школу, но это были такие дивайсы под названием «Корвет», выпускаемые центром ЭЛЕКС ГКВТИ. Интерфейс был русский, поэтому при загрузке на мониторе (монохромном, кстати) было написано: «Загрузка ОС». Мне эти осы не понравились, и мы с одноклассником попросились ходить на уроки в соседнюю школу.

В университете я впитывал всю литературу, которую мог найти: как минимум, помню про MS-DOS, паскаль, ассемблер, C++, пролог, фортран и Java. Это самообразование в чистом виде, потому что курс программирования был весьма скромным, и один из преподавателей ходил ко мне консультироваться по C++. А с Java меня познакомил мой научный руководитель: он принес одну из первых книг (если вообще не первую) на русском языке об этом языке.

Кстати, я учился не только программированию, но и тому, как об этом пишут. Как, например, легко получается писать про ассемблер у Питера Нортона (и почему у самого ничего не получается с первого раза). Или о том, как А. Архангельский может писать тысячестраничные книги про любой новый продукт Борланда. Лучшей книгой о языке программирования я до сих пор считаю «Turbo C++: язык и его применение» Цимбала, Майорова и Козодаева.

Какой редактор используешь?

Долгое время пользовался Komodo Edit, но они не сумели вовремя подстроиться под ретину, поэтому пришлось перейти на Sublime Text 2. (Одновременно я открыл программу ExpanDrive, после чего выбор редактора не упирался в умение работать с файлами по SSH.) На втором месте идут vim и редактор, встроенный в mc. Редактор мне нужен только как программа, в которой можно писать; я никогда не пользуюсь ни плагинами, ни возможностями для просмотра структуры кода или рефакторинга.

Как и когда познакомился с Perl?

Где-то в 2000-м. Во-первых, Perl был на обложках книг в магазине, которые я еще не читал. Во-вторых, один товарищ рассказал мне, что он по работе познакомился с перлом, и там можно писать и так, и сяк, и задом наперед, и все будет работать. Я решил не отставать от моды.

С какими другими языками программирования приятно работать?

Нежно люблю C++. Заинтересовался Go. Хотя ни на том, ни на другом не пишу много. Go, между прочим, очень легко дается тем, кто знаком с перлом.

Когда-то посмотрел видеозаписи выступлений Дугласа Крокфорда и сильно удивился, насколько интересно устройство JavaScript.

Думаю, было бы приятно работать с Perl 6, но.

Какое, по-твоему, самое большое преимущество Perl?

У перла было невероятное преимущество: он шел в комплекте с любым юниксом. Важная черта языка — лаконичность и относительная синтаксическая свобода. В интернете есть замечательный майндмап на эту тему, составленный три года назад Валерием Студенниковым для доклада на конференции May Perl в Москве.

Я не думаю, что новые языки (в частности, динамические) сильно уступают перлу, но перл как-то ближе. Настолько близок, что мне проще говорить о самых больших недостатках перла, чем о преимуществах :-) Немного про это я рассказывал в недавнем подкасте YAPP № 17.

На перле удобно быстро писать прототипы любых сетевых приложений, и время от времени разрабочики это успешно демонстрируют.

И, без сомнения, среди важных достоинств — регулярные выражения и хорошая поддержка юникода (хотя иногда и приходится танцевать с перекодировками и попытками угадать, выставлен ли у строки utf8-флаг).

Какая, по-твоему, характеристика наиболее важна для языков будущего?

Возможность решать задачи, которые возникнут в будущем.

Скорее всего, потребуется удобно и просто описывать в программе работу с распределенными (или хотя бы удаленными) ресурсами и параллельность.

Важно, что такие возможности должны быть заложены не только в синтаксисе языка, но и в самом компиляторе. Программа не должна превращаться в код на ассемблере, детально перечисляя все шаги по работе с распределенными данными или кодом. Существенную роль должен выполнять компилятор.

В большинстве случаев компьютер может распределить ресурсы намного эффективнее, чем это сделал бы обычный программист. Пример этого эффекта — управление памятью. На перле намного проще создавать объекты, не задумываясь о выделении памяти, чем это нужно делать, например, на C. Если язык требует вручную освобождать память, это часто приводит лишь к необходимости быть более внимательным, хотя задача при этом решается с ошибками. Точно так же языки будущего должны самостоятельно заботиться обо всем, что связано с распределенной работой, будь это многопроцессорный компьютер или несколько компьютеров, подключенных к интернету.

Как было организовано сообщество Moscow.pm? Соответствует ли текущее положение тому, что задумывалось?

Moscow.pm создал не я, а Руслан Закиров. Он, например, первый встречался в Москве с Джонатаном Вортингтоном. Я лишь увеличил численность подписчиков Moscow.pm на 15 000% и начал устраивать воркшопы и конференции.

Кстати, уже пару лет труъ-домен сайта Moscow.pm — moscow.pm.

По поводу соответствия задумке: скорее да, чем нет. В начале у меня было две задачи. Во-первых, познакомить людей друг с другом, во-вторых, организовать парочку мероприятий. Обе эти задачи выполнены вполне успешно. Помимо этого заработала рассылка Mocsow.pm, появились несколько групп в других городах и проводятся хоть и не регулярные, но и не слишком редкие офлайновые встречи.

Детального плана с датами по развитию группы, разумеется, нет, поэтому все опирается на энтузиазм людей, которые сами хотят что-то сделать. Наличие Moscow.pm значительно облегчает жизнь таким людям, потому что это неплохая точка входа, чтобы оповестить коллег о своих намерениях. Например, в этом году Павел Щербинин предложил собирать офлайновые технические встречи в офисе Mail.ru и хочет сделать их ежемесячными, да еще и с видеотрансляцией.

Что мотивирует тебя на такую активность в организации Perl-мероприятий? Кому и чем они могут быть полезны?

Мне интересно послушать других разработчиков, поэтому конференции я делал именно так, чтобы мне было интересно туда придти. К тому же я люблю путешествовать, поэтому появились конференции за пределами Москвы.

Организация конференций — весьма интересное дело само по себе. Когда я посещаю мероприятия, я всегда обращаю внимание на организационные детали и стараюсь перенять что-то интересное и избежать чужих ошибок. Ну и вообще интересно было побить рекорды не только по числу организованных мероприятий, но и по числу охваченных стран.

Два года я ждал мероприятия во Владивостоке. Но потом все срослось само собой, и мы провели там дальневосточный Perl-воркшоп, да еще и с зарубежным гостем, Джонатаном Вортингтоном (он сам очень любит путешествия и не боится ездить в плацкарте, поэтому его совсем не надо было упрашивать).

Примерно тогда же я ходил вокруг карты и очень хотел сделать что-нибудь в Польше. Но тогда это не получилось, а в мае 2013 ребята из Варшавы наконец-то провели первый польский воркшоп.

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

Вторая составляющая наших мероприятий — это просто общение, знакомства, обмен идеями и совместный прием пищи.

Почему локальные конференции всегда бесплатные?

Первый воркшоп в Москве был условно-платным. Участникам предлагалось либо прийти бесплатно, либо заплатить столько, сколько они хотят. Этот эксперимент хотя и не был полностью провальным, показал, что в сборе денег за участие нет никакого смысла.

Чтобы огранизация мероприятия окупила себя только со входных билетов, во многих случаях (прежде всего, когда не удается найти бесплатное помещение), цену надо было бы сделать достаточно высокой. Достаточно настолько, чтобы оттолкнуть людей от участия. Единственный практический смысл от продажи билетов — более точно спрогнозировать численность участников. Билет даже по символической цене в 100-200 рублей (примерно 2,5-5 евро — прим. ред.) купит скорее всего именно тот, кто действительно планирует посетить конференцию, а не просто зарегистрироваться на сайте на всякий случай.

Левых людей на бесплатных Perl-мероприятиях обычно не бывает, так что отсутствие билета как входного порога ничего не меняет. А деньги на организацию намного проще найти где-нибудь в другом месте. Один-два спонсора могут покрыть все расходы, и это позволяет избавиться от сложной работы по сбору денег с десятков участников.

С большими конференциями типа YAPC::Europe этот принцип уже не работает. Входные билеты составляют примерно треть от бюджета, а это уже довольно существенная часть. Хотя при большом желании можно было бы сделать бесплатной и YAPC::Europe, но этим мы поломаем традицию и испортим жизнь следующим организаторам, которые будут вынуждены искать деньги вместо того, чтобы работать с докладчиками и делать конференцию максимально полезной.

Несколько раз YAPC::Europe получали на все три дня бесплатное помещение, и тогда конференция становилась прибыльной, а деньги шли либо на гранты для работы над перлом, либо на спонсирование конференции следующего года. С конференцией в Амстердаме в 2001 году случилась курьезная история, когда ни помещение, ни кейтеринговая компания после неоднократных напоминаний в течение нескольких лет так и не выставили счет организаторам. На этом бюджете возник фонд YAPC::Europe Foundation, где организаторы могут попросить так называемые kick-start donations для своих мероприятий.

Как продвигается организация конференции YAPC::Europe в Киеве? Какие сложности приходится преодолевать при организации мероприятия такого уровня?

Мы начали готовить эту конференцию за год до ее начала (даже раньше). Причем не просто фантазировать, а именно готовить: уже заключен договор с помещением, арендован корабль, есть договоренность с организацией экскурсий для партнеров. Согласован приезд Ларри Уолла с супругой. Сейчас идет работа над меню для ежедневных кофе-брейков, обедов и фуршета на корабле. Проделана (но еще не закончена) сложная работа с привлечением спонсоров. Этот паззл мы уже собрали настолько, что картинка стала понятной и дальше можно не сверяться с подсказкой. Я очень доволен работой с Вячеславом Тихановским, потому что все, что нужно решать на месте в Киеве, делает именно он.

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

Заодно удается подумать над тем, чтобы сделать содержание конференции максимально точно соответствующим названию (Future Perl). Программный коммитет работает с авторами докладов, которые уже начали поступать.

Так что трудности приходится не преодолевать, а придумывать :-) Но это только подталкивает на новые выдумки. Например, после того, как я опубликовал вариант футболки с большой надписью Perl 7 и появились громкие негативные отзывы (абсолютно необоснованные на мой взгяд, но все-таки), потребовалось быстро придумать что-то, чтобы это преодолеть. Так появился конструктор футболок, где каждый участник может выбрать себе вариант надписи, который ему больше нравится и не противоречит его взглядам. Хотелось бы, чтобы эта идея смогла воплотиться в жизнь.

Что дальше после конференции в Киеве?

Хороший вопрос. Я занимаюсь конференциями с 2007 года, и за это время у меня накопились идеи за пределами и конференций, и перла. Если когда-нибудь отменят визы в Россию, хочется сразу подать заявку на YAPC::Europe в Москве. Я уже знаю, чем займусь после конференции в Киеве, но рассказывать об этом пока не буду.

Организация конференций показала, что там, где есть активные люди, мероприятия хорошо получаются и без моего участия. Лучший пример здесь — Болгария. Мариан Маринов успешно делает болгарский Perl-воркшоп уже в пятый раз, хотя вместе мы с ним делали только первый из них в 2009 году.

С перлом у меня связаны еще пара задумок (даже три).

Во-первых, хочется заново запустить сайт yapc.tv и преврать его в более полезный и обновляемый ресурс не только с видео, но и с отсортированными по темам презентациями. Кстати, там появилось два новых видео с польского воркшопа.

Во-вторых, моя давняя мечта — сделать онлайн-коллекцию всех книг про Perl, с перекрестными ссылками на разные издания и переводы. Эдакий старый books.perl.org, только лучше. Проект задуман исключительно как исторический сайт-справка, возможность скачать текст не предусмотрена. Мы уже договорились с Венди ван Дайк, что через месяц-другой попробуем отсканировать обложки книг из ее огромной коллекции. Я, в свою очередь, собрал почти все книги о перле на русском языке.

Еще один онлайновый проект, связанный с конференциями по перлу, я собираюсь показать в Киеве.

Можешь дать несколько советов тем, кто хочет организовать Perl-хакатон или воркшоп у себя в городе?

Прежде всего надо посетить несколько других подобных мероприятий и смотреть на то, как все организовано. Ближайшая хорошая возможность, разумеется, это конференция YAPC::Europe в Киеве. А дальше нужно найти помещение, открыть сайт и собрать участников и докладчиков и сделать мероприятие интересным в первую очередь для себя. Если у вас найдутся единомышленники, которым тоже будет интересно, то они обязательно придут на ваше мероприятие.

Где сейчас работаешь? Сколько времени уделяешь программированию? Сколько на Perl?

Сейчас я работаю в компании по онлайновому бронированию гостиниц «Островок.ру» и занимаюсь там автоматизацией контекстной рекламы, работой с аффилиатами (партнерами, которые продают наши номера у себя на сайтах) и парой внутренних сервисов по мониторингу. С разработкой собственно сайта, которым пользуются клиенты, я почти не связан.

Честно говоря, никогда не считал, сколько времени на что уходит. Обычно мне интересно самостоятельно запрограммировать прототип проекта, после чего передать его в руки более опытных в программировании молодых коллег и направлять весь проект в нужное русло. Придумывать задачи и проекты, интересные себе и при этом полезные для компании, — это очень увлекательно.

Большинство кода, к которому я сам приложил руку, написано на перле; есть несколько критичных по времени программ на С++ и парочка на Go. И, разумеется, бесконечное число XSLT-файлов.

Стоит ли сейчас советовать молодым программистам учить Perl?

Молодым программистам я бы посоветовал знакомиться со всем, на что хватает времени. Не обязательно сразу профессионально изучать все тонкости языков и технологий, потому что первая задача — сформировать кругозор, который позволит выбирать нужное направление по мере поступления реальных задач.

Познакомиться с перлом обязательно нужно, даже если этот язык покажется недостаточно строгим, чтобы на нем серьезно программировать. Молодой программист должен пользоваться своим главным преимуществом — смотреть на мир незашоренными глазами. Будет достаточно, если в один прекрасный день, увидев очередную задачу, он скажет: «О, а это же лучше сделать на перле!»

Вопросы от читателей

Как работалось в студии Лебедева?

Работалось просто замечательно. Это одно из лучших мест в России, а может и в мире, хотя оставаться там на всю жизнь, наверное, не нужно. Сейчас Студия совсем другая (да и до меня она уже успела сильно измениться), но зато работа с Темой оставляет след, и я могу сказать, что уже появилось второе поколение его школы (это когда бывшие работники заражают хорошим людей, которые в Студии никогда не работали).

А еще очень полезно было поработать с другим отцом руского интернета, Антоном Носиком (посмотрите, хотя бы, сколько я здесь по тексту наставил ссылок).

Стоит ли подписываться на рассылку Moscow.pm?

Рассылка Mocsow.pm является, фактически, ExUSSR.pm. Сейчас на нее подписаны 335 человек, и не все из них живут в Москве. У нас есть подписчики из других городов и России, и мира. Интересно, что те, кто подписаны на рассылки других PM-групп, часто читают и Moscow.pm. Есть по крайней мере один подписчик из Австрии, который хотя и не говорит по-русски, но в какой-то степени понимает письменную речь и иногда даже отвечает.

Удивительно, что такой олдскульный формат вполне заменяет общение в других местах: сейчас, например, нет более или менее живых форумов про перл на русском языке (не говоря уже про G+), поэтому письменное общение на Moscow.pm относительно оживленное, и я бы сказал, что это единственное место, где сейчас собраны активные люди.

Как дополнительный бонус, рассылка иногда становится онлайновой встречей Moscow.pm. Например, почти любой пост с вакансией вызывает поток ответов с другими вакансиями или троллингом по поводу условий работы и зарплаты.

Кстати, работодатели часто сами не подписываются на рассылку, но пытаются отправить в нее сообщение. Как они читают ответы, если люди отвечают не личным письмом, а в общий лист, — загадка.

Еще одно полезное применение рассылки — узнать об офлайновой встрече (или предложить собрать ее). Так что есть смысл подписаться уже для того, чтобы знать, когда и где участников можно увидеть в реале.

Когда появится украинская версия shitov.ru?

У меня и русская-то версия давно не обновлялась. Версии сайта на других языках — одностраничные страницы, где висит какой-то текст типа «Привет, меня зовут так-то», я обновляю их, когда могу на этом языке написать что-то осмысленное без онлайн-переводчика. Но с украинским языком я познакомился еще до интернета, поэтому нет и украинской версии.

Как тебе Ларри Уолл в общении?

Приятный, скромный человек, но при этом всегда чувствуется, что перл ему действительно очень интересен. В том числе он очень трепетно относится к работе над Perl 6 и хочет, чтобы он получился.

Приезжайте в Киев и пообщайтесь лично: это просто. Минимальный вариант — попросите с ним сфотографироваться.

Приедешь в Киев на YAPC::Europe в этом году :) ?

После своего первого визита на YAPC::Europe в Вене в 2007 году я пропустил только одну из этих конференций, прошлогоднюю во Франкфурте. Так что в этом году обязательно наверстаю упущенное.

Моя компания хочет спонсировать конференцию. Что мне делать?

Написать о желании на . Причем тянуть с этим не надо, конференция уже на носу.

Явное спонсорство — не единственная возможность. Если вы забронируете гостиницу, используя сервис на сайте конференции, вы чуть-чуть, но увеличите наш бюджет, при том, что для вас гостиница будет стоить меньше, чем на любом другом сайте.

Но даже простое участие — уже само по себе помощь для развития и перла, и сообщества.

Вячеслав Тихановский


Обзор CPAN за май 2013 г. | Содержание | Perl Quiz
Нас уже 1382. Больше подписчиков — лучше выпуски!

Комментарии к статье

Чат