Отсюда. (Гуглоперевод)
Почему я должен изучать Perl 6? Что в этом хорошего?Perl 6 объединяет множество замечательных идей, которые обычно не встречаются на других языках программирования. Хотя некоторые другие языки предлагают некоторые из этих функций, ни один из них не предлагает все.
Perl 6 предлагает процедурные, объектно-ориентированные и функциональные методологии программирования.
Простой в использовании последовательный синтаксис, используя неизменные сигилы для структур данных.
Поддержка Unicode на основе полного графема, включая Приложение № 29.
Чистые, более читаемые регулярные выражения; доведенный до следующего уровня удобства использования, с гораздо большей функциональностью. Именованные регулярные выражения улучшают простоту использования.
Переходы, позволяющие легко проверять множество возможностей; например, $a == 1|3|42 (равно $a, равному 1 или 3 или 42).
Динамические переменные предоставляют лексическую область для глобальных переменных.
Акцент на композитоспособности и лексическом охвате для предотвращения «действия на расстоянии»; например, импорт всегда лексически охвачен.
Легко понять согласованные правила и ограничения.
Мощная ориентация объектов, с классами и ролями (все можно рассматривать как объект). Наследование. Подтипы. Код повторного использования.
Интроспекция объектов и метаобъектов (черепахи до конца).
Протокол метаобъектов, позволяющий метапрограммирование без необходимости генерировать / анализировать код.
Подпрограммы и сигнатуры методов для простой распаковки позиционных и именованных параметров.
Multi-отправка для идентично названных подпрограмм / методов с разными сигнатурами, основанных на arity, типах и дополнительном дополнительном коде.
Сообщение об ошибке времени компиляции по неизвестным подпрограммам / невозможной отправке.
Дополнительная постепенная проверка типов при отсутствии дополнительных затрат времени исполнения. С дополнительными аннотациями типа.
Расширенные отчеты об ошибках, основанные на интроспекции состояния компилятора / среды выполнения. Это означает более полезные, более точные сообщения об ошибках.
Фазеры (например, BEGIN / END) позволяют выполнять код при входе / выходе области, в первом или последнем / следующем циклах и во многих других специальных контекстах.
Модель параллелизма высокого уровня, как для неявной, так и для явной многопроцессорной обработки, которая выходит за рамки примитивных потоков и блокировок. Параллельность Perl 6 предлагает богатый набор (составных) инструментов.
Многоядерные компьютеры становятся все более и более используемыми, и с Perl 6 они могут использоваться благодаря параллелизму, как неявным (например, с помощью метода >>), так и явным (start {code}). Это важно, потому что закон Мура заканчивается.
Предоставляется поддержка структурированного языка, позволяющая программировать для асинхронного выполнения кода.
Расходные материалы позволяют выполнять код, когда что-то происходит (например, таймер или сигнал или событие файловой системы).
реагировать / когда / снабжать ключевые слова, позволяет легко создавать интерактивные приложения, управляемые событиями.
Ленивая оценка, когда это возможно, нетерпеливая оценка при желании или необходимость. Это означает, например, ленивые списки и даже бесконечные ленивые списки, такие как последовательность Фибоначчи или все простые числа.
Родные типы данных для ускорения, ближе к металлу, обработки.
Взаимодействие с внешними библиотеками на C / C ++ тривиально просто с NativeCall.
Взаимодействие с модулями Perl 5 (CPAN) / Python тривиально просто с Inline :: Perl5 и Inline :: Python.
Может иметь несколько версий модуля, установленных и загруженных одновременно.
Системное администрирование упрощено благодаря упрощенным политикам обновления и обновления.
Простые численные вычисления без потери точности из-за крыс (рациональные числа).
Расширяемые грамматики для анализа данных или кода (которые Perl 6 использует для синтаксического анализа).
Perl 6 - очень изменчивый язык (определите свои собственные функции, операторы, черты и типы данных, которые модифицируют парсер для вас).
Большой выбор типов данных, а также возможность создавать свои собственные типы.
Многомерные фасонные и / или нативные массивы с надлежащей проверкой границ.
Выполнить код в любое время во время разбора грамматики или когда произошло определенное совпадение.
Добавление пользовательского оператора или добавление признака так же просто, как запись подпрограммы.
Автоматическая генерация гипероператоров на любом операторе (система или пользовательская добавленная).
Работает на разных концах. В настоящее время MoarVM и JVM, JavaScript в разработке, могут следовать.
Оптимизация времени запуска горячих кодов во время выполнения (JIT).
Работает на небольшом (например, Raspberry Pi) и большом многопроцессорном оборудовании.
Сбор мусора: нет своевременного уничтожения, поэтому нет необходимости пересчета. Используйте фазеры для своевременных действий.
Методы могут быть смешаны с любым экземпляром объекта во время выполнения; например, чтобы позволить добавлять внеполосные данные.
Легкий интерфейс командной строки, доступный подпрограммой MAIN с несколькими отправками и автоматическим использованием сообщений.
Меньше строк кода позволяет создавать более компактные программы. Хаффман-кодирование имен позволяет улучшить удобочитаемость.
Ленивые списки, определенные с помощью простого интерфейса итератора, который любой класс может предоставить, минимально поставляя один метод.
Девизы l 6 остаются такими же, как и для Perl: «Perl отличается. В двух словах, Perl разработан, чтобы упростить работу, не делая трудные задания невозможными »и« Существует не один способ сделать это ». Теперь с еще большим количеством -Ofun добавил.