На этой неделе мы публикуем интервью с одним из организаторов конференции YAPC::Europe 2013 в Киеве, которое вышло в эфир в подкасте YAPP 13 сентября.
— Здравствуйте, дорогие слушатели. Вы слушаете второй выпуск второго сезона Yet Another Perl Podcast, подкаста о Perl на русском языке. Сегодня с вами я, Александр aka Afiskon Алексеев, Дмитрий Дегтярев, а также у нас сегодня гость — рок-звезда мира Perl Вячеслав vti Тихановский. Весь выпуск у нас сегодня будет в виде интервью с Вячеславом, в виде диалога и беседы.
— Слав, что значит «нерелигиозный разработчик»?
— Прежде чем ответить на вопрос, хотел бы сказать, что «рок-звезда» — сильно преувеличено. А насчет «нерелигиозный», тут два подтекста. Подтекст первый — собственно нерелигиозный в обычном смысле этого слова. А второй — имеется в виду, что перл для меня не является религией, я совершенно спокойно могу использовать любой язык программирования или какие-то утилиты независимо от того, перл это или не перл.
— Но все равно ты позиционируешь себя иенно как перл-разработчик, правильно?
— В основном да, конечно. В основном это перл, но как я уже сказал, шаг в сторону можно делать.
— И какие шаги в сторону ты уже делал, с чем ты еще знаком, чтобы можно было разрабатывать спокойно?
— Признавайся, на PHP пишешь?
— Нет, на PHP я не пишу и даже не пробовал. На PHP у меня нет никаких задач.
— На чем ты еще пишешь?
— Это C в основном, низкоуровневое программирование. JavaScript, конечно. Еще пишу много на bash-скриптах.
— А у тебя на десктопе Линукс?
— Да, у меня Убунту.
— Несмотря на то, что ты на маке сидишь, правильно я понимаю?
— Да.
— Интересный выбор. Почему, если не секрет?
— Мне привычнее по работе Линукс, мне было очень неудобно постоянно настраивать окружение, и я поставил Убунту, так и получилось.
— Открой нам секрет, а что же повлияло все-таки и свернуло твой выбор на перл, когда ты выбирал язык, на котором остановиться? Или ты не считаешь, что остановился?
— Выбора языка не было. Была задача, нужно было сделать, уже не помню что, так и пошло: Perl, а выбора я не делал.
— Как давно ты программируешь на перле осознанно?
— Я не помню. Еще с института, наверное, может с 2004 или 2005, точно не могу сказать.
— Но ты вообще программист продуктивный и выпускаешь по несколько публичных проектов в год.
— Проекты, которые я делал в свободное время, возможно назвать продуктивными.
— Сколько примерно — никогда не пытался подсчитать? — выходит проектов в год, на перле именно.
— Сложно сказать. Какая-то задача подворачивается, а нет решения на CPAN. Конечно, такое бывает редко, и получается модуль либо какой-то сайт. Точного количества не могу сказать.
— Один из твоих последних проектов из того, что мы видели, — это perltuts.com. Что тебя подвигло на его создание, что тебе не хватало, с какой целью? Как идея появилась?
— Я решил посмотреть на руби, у них был сайт, называется RubyMonk, там были онлайн-уроки, которые можно было пройти и быстренько познакомиться с основами языка. И я подумал, что бы такое на перле не придумать и сделать. Так оно и получилось.
— Сколько сейчас заданий на Perltuts?
— По-моему, четыре или пять.
— Заходит полный новичок в перле, и по идее когда-нибудь там будут задания в ходе которых он целиком обучится, правильно?
— Теоретически, да.
— Интерактивный онлайн-учебник.
— Да-да, такая задача.
— А как добавить туда урок? Есть код на гитхабе?
— Все уроки в полном формате можно скачать и почитать необязательно с сайта. Единственное преимущество сайта в том, что можно выполнить код. Можно без проблем скачать себе POD-файл, посмотреть, как он делается, написать свой туториал. На данный момент, конечно, нет механизма добавления, это происходит через меня. А кода самого сайта на гитхабе пока нет, я планировал это сделать, но пока не было времени. Чтобы написать туториал, сам код не требуется. Пишется простой POD-файл и все.
— Давай перейдем к самому интересному вопросу. Расскажи нам про YAPC::Europe. Что там с 2013 годом, там должно быть что-то очень важное?
— Да, на предыдущей конференции во Франкфурте объявили, что следующая конференция будет в Киеве, и мы всеми силами готовимся и ждем всех перл-программистов из СНГ, которые не могли до этого приехать на конференцию в Европу по разным причинам. Уникальная возможность увидеть и познакомиться с известными перл-программистами, поэтому очень и очень ждем. Очень надеемся, что все будет хорошо.
— Я правильно понимаю, что подготовка уже началась? Если она началась, то как это выглядит? Вы обзваниваете отели, говорите что хотите устроить конференцию?
— Конечно. Еще до того, как подается заявка на предложение какого-то города, всегда подыскивается несколько предполагаемых мест проведения, конференц-залов, есть определенные условия, определенные требования. Кроме конференц-залов учитывается общая инфраструктура города, стоимость проезда, наличие памятников архитектуры и прочее, и прочее.
— Кто входит в организаторы конференции?
— Конечно же Андрей Шитов, который организовывет все, Ярослав Коршак, я, и еще недавно Анатолий Шарифулин к нам тоже присоединился. Так что нас теперь четыре человека.
— Как организаторы вы занимаетесь именно подбором мест, правильно я понимаю? Ищете спонсоров, да?
— Кто чем может у нас занимается.
— Ну и самое интересное: скажи для наших слушателей, кто не читает твой блог, кто же туда приедет?
— Мы связались (точнее, Андрей связался) с Ларри Уоллом, Дэмианом Конвеем, Маттом Траутом. Я думаю, не нужно объяснять, кто это. И они предварительно согласились и очень хотят приехать в Киев, поэтому мы их ждем и надеемся, что их планы не изменятся.
— А с Себастьяном Риделем вы не связывались?
— Мы не связывались. Насколько я помню по разговорам несколько лет назад, он категорически против посещения каких-либо перл-мероприятий, поэтому я даже не знаю, есть ли смысл его приглашать. Может быть, кто-то попросит.
— Продолжая тему твоих проектов, в частности, веб-проектов. Интересно, ты большинство пишешь с использованием Dancer. Почему Dancer, почему не так популярный сейчас Mojolicious?
— Раньше они были на Mojolicious, теперь на «Дансере». Не все на «Дансере»; может, парочка есть. Потому что они не особо сложные, и мне нужно, чтобы оно работало стабильно и долго.
— Но тебя все устраивает как веб-фреймворк?
— В коммерческих проектах и по работе я, конечно, использую другие фреймворки, но для своих простых сайтиков «Дансер» самое оно.
— А что ты вообще используешь в коммерческих проектах?
— Есть свои кастомные фреймворки, заточенные под определенные задачи и определенную специфику приложения. Ничего общего на сегодняшний момент пока нет. Под каждый проект обычно какой-то базовый функционал, конечно, повторяется, но у каждого есть свои особенности.
— Ниогда не смотрел, какая самая частая функция в твоем перловом коде?
— Функция? Я функции не использую, только методы. Конструктор, наверное 🙂
— Как ты относишься к зависимостям в перловом коде? Имеется в виду, к модулям со спана?
— Положительно, конечно, но, опять же, без фанатизма. Если есть какая-то узкая специализированная задача, которая решена конкретным модулем с хорошей историей, почему бы и не нет: сэкономить время и силы. Я только за.
— Не вспомнишь с ходу, какой первый модуль ты установил со спана?
— Вспомнить сложно, конечно. Может, Template::Toolkit.
— Все-таки, в сторону веба?
— Да.
— Ты вообще больше веб-программист, да?
— Да, по большей части да.
— Слав, а скажи нам: у тебя блог на английском языке, оказывается. Почему он на английском?
— Скорее всего, потому что аудитория больше. Все-таки в англоязычном интернете почему-то про перл больше пишут. Больше вероятность и получить отзыв.
— То есть, английский не самоцель для тебя?
— Нет, это больше как средство достижения большей аудитории.
(Дмитрий) — Возвращаясь к спану. Есть ли модуль, без которого ты не начинаешь разработку, или который используешь чаще всего, за исключением «дансера», конечно?
(Afiskon) — Я могу назавать как минимум два, без которых не начинаю. Это Try::Tiny и Carp.
(vti) — Try::Tiny я пользовался как-то, но где-то я что-то прочитал или увидел какое-то обсуждение, что он медленно работает, и использую обычный eval, eval or do. Он локализирует переменную с ошибкой, и проблем никаких обычно не возникает. А Try::Tiny проблему не решает. Для отлова исключений все равно приходится писать ифы, проверять isa class и так далее. Есть еще хороший модуль Error::Simple, но к сожалению, он давно не поддерживается, и никто его не рекомендует, но в нем самый удобный интерфейс по поводу исключений. Там никаких ифов нет, сразу catch-блок, сразу указываешь классы, сразу получаешь блок, в котором можешь обработать исключение.
— Есть такой язык Perl 6, и в нем с исключениями очень и очень хорошо. И с классами замечательно. Я недавно попробовал, проникся и уже написал три модуля. Скажи, пробовал ли ты Perl 6 и как ты относишься к этому языку?
— Отношусь положительно, хорошо, если что-то развивается, какой-то новый язык всегда влияет на другие языки, влияет на индустрию в целом, но так, чтобы использовать, — пока вряд ли, пока не вижу никакого преимущества.
— Вот у нас был Андрей Шитов, он практически категорично сказал, что наверное у Perl 6 нет будущего [я такое сказал?? — А. Ш.] и с большой долей вероятности он свою задачу уже выполнил, привнес много нового и полезного в Perl 5. Как ты считаешь, есть будущее у этого языка как у отдельного языка?
— Возможно, в промышленных масштабах я бы тоже сомневался в его успешности, но можно быть успешным не только в этом, а влиять на Perl 5 и на другие языки, и на другие платформы. Плюсы можно найти и в других вещах. То есть, он может быть сугубо академический язык, ничего страшного в этом нет, мне кажется.
— На этом все наши вопросы, которые мы хотели тебе задать, закончились. Может, есть желание поведать нам что-нибудь?
— Я бы хотел пригласить всех на YAPC::Europe в Киев в августе. Приезжайте, постарайтесь найти время. Будет очень весело, мне кажется. И интересно.
— Это почти через год, да?
— Да, 49 недель.
— Обратный отсчет уже пошел.
— Да.