Raku


Raku (от яп. 楽土произн. ракудо — Рай,[1][2] и от , произн. раку — счастье, лёгкость, сукха[3][4]) — язык программирования из семейства Perl-подобных языков. Серьёзный пересмотр как дизайна, так и реализации языка Perl, нарушающий обратную совместимость с ним, хотя до 2010 года еще предполагалось наличие режима совместимости.[5]

Подобно языку Perl, Raku оставляет программистам много свободы. Он всё еще позволяет выражаться кратко, в том числе писать однострочники, но также упрощает и написание больших программ, благодаря статической типизации и улучшенной поддержке ООП.

Прежнее название Raku — Perl 6.[6]В течение многих лет в сообществе Perl имели место шуточные замечания о дате релиза. На вопрос «когда выйдет Perl 6» обычным ответом было «на Рождество», но без указания года.[7][8]В 2015 году, то есть после пятнадцати лет ожидания, наконец была анонсирована так называемая «рождественская» версия.[9][10][11]

Разработка Perl 6 была впервые анонсирована Ларри Уоллом 19 июля 2000 года, в четвертый день Perl Conference того года,[13] в его выступлении State of the Onion.[14] В то время первоочередными задачами было: удалить из языка «исторические бородавки»; «простые вещи должны оставаться простыми, сложные вещи должны становиться проще, и невозможные вещи должны стать сложными»; общая чистка внутреннего дизайна и API. Процесс начался с серии RFC. Этот процесс был открыт для всех участников, и ни один аспект языка не оставался закрытым для изменений.[15]

Был получен 361 запрос, каждый из которых был рассмотрен Уоллом. Затем он начал процесс написания нескольких «Апокалипсисов» — христианский термин, означающий «раскрытие хороших новостей хорошим людям».[16] Хотя первоначальной целью было написать по одному Апокалипсису для каждой главы книги en:Programming Perl, стало очевидно, что по мере написания каждого Апокалипсиса, предыдущие Апокалипсисы аннулировались более поздними изменениями. По этой причине был опубликован набор Синопсисов, каждый из которых относился к одному Апокалипсису, но включал корректировки из новых Апокалипсисов. Сегодня спецификация Raku управляется набором тестов «roast»,[17] в то время как Синопсисы хранятся в качестве исторической справки.[18]

Есть также серия Экзегез, написанных Дэмиэном Конуэем, которые объясняют содержание каждого Апокалипсиса с точки зрения практического использования. Каждая Экзегеза состоит из примеров кода с обсуждением их использования и значения.[19]