Интервью Рикардо Сигнеса для подкаста rebuild.fm

Темы:

На проходившей в Бельгии конференции FOSDEM 2015 один из докладов делал Рикардо Сигнес — ответственный за релизы стабильных версий Perl (pumpkin). Доклад был посвящён процессу подготовки релизов Perl и, в частности, грядущему стабильному релизу 5.22. Тацухико Миягаве удалось взять интервью, в ходе которого и обсуждалась тема доклада.

Запись интервью на английском языке доступна на сайте подкаста. Далее кратко о чём же беседовали два известных Perl-хакера.

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

Рикардо Сигнес кратко рассказал об истории разработки Perl 5 и о том, как он пришёл в разработку. Затяжной период между 5.8 и 5.10 не устраивал никого. 5.10.1 вышел только через 3 года после 5.10.0. Использование системы контроля версий Perforce затрудняло вливание в процесс новых разработчиков. Чтобы решить подобные проблемы была разработана новая система релизов Perl: каждый месяц выходит новая версия для разработчиков (нечётная минорная версия), а каждый год выпускается стабильный релиз (чётная минорная версия) с последующими патч-релизами, исправляющими только ошибки, не добавляющие новых фич.

Perl 5.22 ожидается в мае 2015, и вполне возможно он выйдет 22 мая. Но это не правило, а случайность. Иначе, как заметил Тацухико, при выпуске версии 5.32 могут возникнуть проблемы.

Раньше, при приближении релиза Perl объявлялось замораживание разработки с целью включения только исправлений. Это затрудняло работу разработчиков, т.к. мешало им вносить свои наработки. Сейчас таких заморозок нет. Перед релизом Perl формируется отдельный бранч, в который потом аккуратно переносят фиксы.

Новая нестабильная ветка разработки Perl 5.23 выйдет сразу в день релиза 5.22. И, как сказал Сигнес, начнётся безумие, т.к. многие начнут выкладывать свои самые смелые наработки. К осени безумие спадёт и люди начнут больше уделять внимание отчётам cpanreports и исправлению модулей на CPAN, которых сломал blead Perl.

Тацухико заметил, что самый нестабильный Perl в ветке blead всегда остаётся вполне работоспособным, ведь чтобы коммит прошёл, должны без ошибок завершиться все тесты. Рикардо подтвердил, что инфраструктура Perl обладает одной из самых мощных систем тестирования и проверок на множестве различных архитектур, которая поддерживается силами всего сообщества. Это включает в себя и многодневные проверки по пересборке всего CPAN для ветки blead, что позволяет сразу определить какие изменения сломали CPAN.

В докладе Сигнеса упоминались и новые фичи, которые появятся в релизе 5.22. Самые интересные на его взгляд изменения — это оператор double diamond (двойной бриллиант) <<>>, который аналогичен по действию <>, открывает файлы, указанные в параметрах скрипта, но делает это безопасно, используя open с тремя аргументами. 5.22 имеет и множество оптимизаций, что может радикально повысить производительность.

Также Рикардо рассказал об экспериментальной фиче, которая появилась на днях в blead: bitwise. Теперь битовые операторы & | ^ ~ всегда трактуют свои аргументы как числа. Введены двойные операторы &. |. ^. ~., которые трактуют свои операнды всегда как строки. Тоже самое касается и операции с присвоением, т.е. например, &.=. Хоть Perl и не поддерживает типизацию, но разделение операций для строк и чисел можно считать своеобразной усечённой поддержкой типов.

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

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

Часто возвращались к вопросу о сигнатуре функций. Эта фича была очень ожидаема и была изюминкой 5.20. Перестанет ли она быть экспериментальной в 5.22? Нет, ответил Рикардо, возможно она останется экспериментальной и в 5.24. Надо понаблюдать за её использованием, чтобы понять когда пора.

Затронут был и доклад Ларри Уолла о релизе Perl6 на рождество 2015 года. Все восприняли это очень оптимистично и с удовольствием будут ждать релиза.

В конце разговора для всех, кому интересно помочь разработке Perl, было предложено начать с dev.perl.org. На самом деле, знание языка C не является определяющим. Сам Рикардо сделал только пару патчей для C-кода, в основном же его работа сводится к другим задачам. Это и тесты, и документация, и модули, и исправление багов.