Выпуск 28. Июнь 2015

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

Интервью с Рене Беккером

Рене Беккер (Renée Bäcker) — немецкий Perl-программист, выпускал журнал $foo, активно участвует в немецком Perl-сообществе

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

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

Через несколько лет я изучил в школе Pascal. В основном базовые вещи, и все еще программирование меня не сильно очаровывало. После школы — в 2001 — я пошел на курсы ИТ-специалистов, где мы изучали Java в компании и C++ на курсах. Я проходил обучение в небольшой компании, занимающейся биоинформатикой, и много писал на Java. Через полгода я сменил работу и попал в департамент биоинформатики одной большой фармацевтической компании. Люди там были математиками, химиками, биологами, но не программистами. И они использовали Perl…

Именно в это время я и научился программировать. Я всегда учился путем проб и ошибок и с помощью Google ;-) У меня не очень получается читать книги по информатике, мне хочется больше что-то делать, чем читать. Когда мне нужно что-то реализовать, я думаю, как это можно сделать и пробую. Если ничего не получается, я читаю документацию, форумы и блоги по конкретной тематике и пытаюсь понять что (и почему) происходит.

Таким способом у меня лучше происходит обучение и я получаю более глубокие знания по сравнению с чтением книг.

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

Я не привязан к какому-то конкретному редактору. Я использую то, что доступно… Когда я на Windows, я использую Kephra или Padre, на текущем проекте я использую Notepad++ и Komodo. Когда я на *NIX, я использую vi/vim.

Поэтому я не тот человек, чтобы участвовать в холиварах.

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

Я уже упоминал в ответе не первый вопрос, что мое первое знакомство с Perl было с департаменте биоинформатики. Это было в 2002-м. Непрограммисты занимались программированием. Они писали довольно простые и небольшие Perl-скрипты.

Они не могли научить меня Perl, но они хотели, чтобы я писал на Perl, чтобы они как минимум могли читать мой код. Поэтому мне пришлось самому научиться. Это было несложно, документация у Perl была очень хорошей, и были такие форумы как http://perl.de (сообщество этого форума несколько лет назад основало http://perl-community.de) и Perlmonks.

Поэтому это было что-то вроде JDIWP (Just do it - with perl, Просто Сделай Это — На Перле) без какого либо руководства. Наверное я до сих пор и пользуюсь перлом, потому что на нем можно писать, особо не разбираясь в языке. Конечно, в скриптах было полно глобальных переменных, не было strict и warnings (но с этим я познакомился через неделю), я не знал всех идиом, но скрипты работали.

Я до сих пор учу что-то новое каждый день…

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

Очень редко я программирую на C/C++ и PHP, и мне это совсем не нравится. Также мне приходится часто писать на JavaScript, а в последнее время я начал посматривать на Rust. С такими фреймворками как jQuery JavaScript вполне ок. Можно довольно быстро делать многие вещи. И Rust выглядит многообещающе…

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

Сообщество, CPAN и обратная совместимость.

Сообщество, возможно, не для всех является преимуществом. Я знаю множество программистов, которые не участвуют в сообществе (в не зависимости от языка программирования). Они используют язык как инструмент и не более. По-моему, сообщество особенно важно для технологий, за которыми не стоит большая компания.

Без CPAN я бы не сделал столько всего, сколько сделал. Я хотел бы сказать «Спасибо» всем авторам отличных модулей на CPAN.

А обратная совместимость это то, что я часто слышу от своих клиентов. Им нравится Perl, они используют его достаточно давно, и обновления проходят без проблем.

Что, по-твоему, является самым важным свойством языков будущего?

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

Что думаешь о Perl 6?

Я не следил внимательно на разработкой Perl 6 до недавнего момента и использую Perl 6 только для небольших скриптов, я думаю у языка много отличных особенностей. В моей работе Perl 6 не заменит Perl 5 в течение ближайших лет, но для моих личных проектов я все больше и больше использую Perl 6.

Мы должны прекратить волноваться о влиянии Perl 6 на Perl 5 (например, было ли правильным назвать язык Perl 6, хотя он максимум является родственным языком; задержала ли работа над Perl 6 развитие Perl 5; …). Сейчас нам стоит наслаждаться Perl 6 и его фишками.

Как и когда начал выпускать журнал $foo? Почему решил прекратить?

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

В 2006 на очередном немецком Perl-воркшопе мы поговорили на эту тему еще раз, но снова ничего не случилось.

Где-то в ноябре 2006 я подумал, что раз никто не начинает журнал, я должен это сделать. Я составил список тем и начал писать статьи. Я загрузил Scribus и начал оформлять первый номер… Я ничего не знал об издательском деле и еще меньше о «дизайне» журнала. Но я все равно сделал это. Я не хотел тратить много денег на подобный эксперимент, поэтому все делал сам.

В феврале 2007 был напечатан первый номер журнала $foo. Я отправил его нескольким Perl-программистов, которых я знал, и один из них работал в компании, которая занималась дизайном, и они указали мне на все ошибки, которые я допустил. Создание шаблона журнала не так просто! В конце концов они сделали мне шаблон, и я отплатил им программированием.

Я сделал небольшой сайт и начал продавать через него журнал.

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

Хочу поблагодарить Герберта Бройнунга (Herbert Breunung), который был постоянным автором и написал множество статей.

После того как появились статьи, их нужно вычитать. Затем нужно составить номер, отправить его в печать, забрать из типографии и отправить читателям.

С 2007 года после первого выпуска моя жизнь сильно изменилась. Я женился, у меня сейчас двое сыновей. Вначале было просто писать множество статей, так как мои проекты затрагивали самые разнообразные темы. Но в последние годы становилось все сложнее и сложнее. Мне приходилось думать о новых темах, читать о них, тестировать код и писать статьи. И у меня была обычная работа. Все это не срасталось.

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

Почему сделал perlybook.org?

В течение многих лет и использую Pod в качестве основного языка разметки. Для статей в $foo, для документации, для обучающих материалов и т.д. Это очень просто, и можно конвертировать в другие форматы. Во время поездок в командировки я хочу готовиться к тренингам, читать документаци и т.п., но я не хочу делать это со своего лаптопа. Для этого больше подходят электронные книги. Поэтому мне нужно было сконвертировать свои тексты и документаци CPAN-модулей в ebook-форматы.

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

К счастью, есть MetaCPAN с отличным API, поэтому я переписал консольную утилиту в надлежащий модуль с поддержкой плагинов для разных источников, таких как локальные файлы, MetaCPAN, GitHub и т.п. и для целевых форматов, таких как текст, PDF и EPub. Этим и занимается модуль EPublisher. Затем написал небольшое веб-приложение вокруг этого модули и perlybook был готов.

Так что этот вебсайт начался как небольшая утилита, которая решала мою задачу…

Что такое perl-academy.de?

В прошлом многие клиенты хотели, чтобы я не только занимался программированием, но и обучал их работников самым разнообразным Perl-темам (начиная от таких базовых вещей как правильно использовать DBI и ссылки до ООП с использованием Moose). И также я делал несколько докладов на Perl- и не-Perl-мепроприятиях. Мне нравилось делать доклады и обучать людей.

Также я провел несколько курсов в университете, где учился, для нескольких компаний. Весь этот опыт привел к решению начать собственный бизнес. На http://perl-academy.de можно найти различные Perl-курсы, которые нельзя найти в других компаниях, занимающихся тренингами (в Германии).

В начале я предоставлял материалы на субдомене Perl-Services.de, но потом понял, что так их сложнее найти. Поэтому я зарегистрировал Perl-Academy.de. Это сделало курсы более заметными.

Проведение тренингов вносит интересные перемены в жизнь программиста.

Ты спонсировал или помогал организовывать Perl-стенды на различных компьютерных выставках в Германии. Что мотивирует этим заниматься?

Мне нравится Perl и мне нравится говорить о Perl. Я начал заниматься стендами в 2010 году во время CeBIT, большой IT-выставки. Я не помню, кому пришла в голову идея принять участие в спонсировании стенда в зале open source-проектов, но в конце концов у нас был стенд, и мы отлично пообщались с 400 людьми о перле.

Мы узнали, что множество компаний используют Perl, но используют его также как и в 2000-м или 1990-м. Они не знают, насколько Perl и его экосистема эволюционировали. Поэтому мы им рассказывали про современные практики, новые модули и о многом другом.

С тех пор я был на многих мероприятиях, где присутствовал Perl-стенд, и общался со многими людьми.

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

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

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

По-моему, каждая компания, которая использует open source, должна что-то отдавать взамен. И спонсирование это самый простой способ это делать. К тому же, это маркетинг ;-)

Что делаешь для Frankfurt.pm?

На данный момент совсем немного… Я член совета директоров. Мы создали группу в 2011 году, когда начали организовывать YAPC::EU 2012. И в 2013 году мы взяли на себя ответственность помогать локальным группам организовывать немецкий Perl-воркшоп.

Так как я не могу посещать социальные встречи Frankfurt.pm, я занимаюсь только организационной частью.

Где сейчас работаешь, сколько времени проводишь за написанием Perl-кода?

Я до сих пор занимаюсь собственным Perl-бизнесом (плюс немного HTML, SQL и JavaScript). Я пишу на Perl от 8 до 10 часов в день, и мне это нравится. На сегодняшний день у меня есть долгосрочный проект с Deutsche Bahn (немецкая железная дорога), но также у меня много работы по доработке OTRS. OTRS это система обработки заявок (конкурент RT, с которым должны быть знакомы CPAN-авторы), написанная на Perl и особенно широко распространенная в Германии.

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

Да! Мы не должны принуждать никого изучать Perl, но должны советовать молодым программистам на него посмотреть. Они затем должны решить, что им нравится использовать.

Perl, возможно, старый язык, но не устаревший. Я провел несколько уроков в школе и спонсировал призы на соревновании «Jugend forsich» (исследовательская программа для молодежи). Некоторые подростки проявили талант при работе с перлом, и им это понравилось.

И у молодых людей есть новые идеи, у них нет лицеприятных мнений. Это может привести к отличным новым разработкам. Хорошо иметь свежие идеи в Perl-сообществе. И, возможно, однажды у нас появится следующее большое приложение, которое будут все использовать, и оно будет написано на Perl.

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

Будут ли опубликованы выпуски $foo?

Все выпуски $foo доступны в PDF-формате по адресу http://abo.perl-magazin.de. Мы планируем опубликовать статьи в других форматах. Но это может занять некоторое время.

Почему Mojolicious?

Короткий ответ: это отличный веб-фреймворк.

Длинный ответ: я начал веб-программирование с простых CGI-скриптов. Затем я перешел на CGI::Application и CGI::Application::Dispatch. Некоторые мои программы до сих пор используют эти модули. Я также использовал Catalyst. Но для одного проекта — очень небольшого веб-приложения — я хотел попробовать что-то более современное, чем CGI или CGI::Application, а Catalyst был слишком громоздким.

У меня в голове было три альтернативы: Dancer, Mojolicious и голый Plack. Мой клиент не был программистом, и я не хотел оставлять его с проблемами с зависимостями. Этим мне и нравится в Mojolicious — никаких зависимостей, кроме Perl. И, @vti, это все твоя вина ;-) Ты написал о Mojolicious в своем блоге, и мне это показалось интересным.

Мне очень нравились все фишки, которые были включены в ядро Mojolicious, такие как поддержка Websocket. Я знаю, что поставлять все одним пакетом может считаться минусом. Только один человек и небольшая группа ответственна за фиксы багов.

Другой интересной стороной Mojolicious является Mojolicious::Lite. Я могу пользоваться одним фреймворком и для «больших» веб-приложений, и для небольших приложений на один экран. И мне не нужно создавать иерархию директорий для небольшого приложения. Достаточно просто написать один файл и его задеплоить…

В то же время количество плагинов постоянно растет, и легко разрабатывать веб-приложения любого калибра.

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


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

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