Подтвердить что ты не робот

Каково текущее состояние Perl 6?

Каково текущее состояние Perl 6, готово ли оно? Где мы сейчас стоим? Есть много программистов, интересующихся текущим развитием Perl 6.

Есть также две другие темы, открытые на в reddit и http://perlmonks.org/?node_id=835419 об этом.

4b9b3361

Ответ 1

Во-первых, и самое главное, следуйте Планета Six. Perl 6 еженедельных встреч и блогов от ведущих разработчиков и многих членов сообщества включены, и это отличный способ не отставать от прогресса Perl 6.

Чтобы понять, как работает Rakudo Perl, ведущая реализация Perl 6, ознакомьтесь с Perl 6 Advent Calendar. Каждый день показывает другой аспект Perl 6 и степень, в которой он был реализован прямо сейчас Rakudo.

Обновление (март 2012): сравнение функций perl6.org показывает ход реализации как Rakudo, так и Niecza (компилятор CLR-таргетинга, например .NET, Mono).


Perl 6, как спецификация, все еще подвергается постоянному уточнению и рефакторингу. Некоторые примеры того, где спецификация неясна: иерархия объектов, что должно и не должно быть частью основной библиотеки, обработкой даты, лени, "автопотоком" переходов. Но основная часть языка была завершена. Спецификация очень амбициозна, и IMHO является одной из основных причин, почему Perl 6 занял так много времени, чтобы начать работу.

С точки зрения реализации, ведущим проектом является Rakudo Perl 6, построенный на основе Parrot VM. Есть, пожалуй, десяток специализированных разработчиков и многие другие, которые помогают тестировать, писать библиотеки, код и документацию. Большинство работ по развитию финансируются за счет грантов Фонда Perl и сообщества, поэтому нет оснований ожидать, что он будет падать.

У Rakudo много ошибок и много недостающих функциональных возможностей. Он только недавно претерпел огромный рефакторинг - филиал "ng". Просмотрите любой существующий источник Perl 6, и вы найдете много комментариев, говорящих "Rakudobug" или "Rakudo еще не реализует это..."

Тем не менее, это рисует несправедливую картину Ракудо. Спецификация Perl 6 амбициозна, если не сказать больше. Язык имеет такое безумное количество функций, что он принял воплощения лет развития, чтобы достичь уровня, которым они являются сегодня. Rakudo, безусловно, вполне достаточен для того, чтобы люди писали текстовые игры, вики и другие веб-приложения, и это улучшалось с каждым днем. Разработчики на сегодняшний день написали около 40 000 единичных тестов для Perl 6, поэтому легко увидеть улучшения в реализации (Rakudo в настоящее время проходит ~ 30k тестов или 79% тестового набора)

Первый "полезный" (стабильный) релиз Rakudo известен как "Rakudo Star". В настоящее время он запланирован на второй квартал 2010 года (апрель-июнь). Общая идея заключалась в том, чтобы реализовать большую часть Perl 6 - не весь язык, а полезный подмножество, - и свести к минимуму ошибки. Что касается производства, Perl 6 всегда выпускал дату "Рождество". Возможно, это Рождество, скорее всего, что-то еще. Это будет долгое время, прежде чем вы сможете использовать весь Perl 6, без ошибок, но мы, по крайней мере, скоро увидим стабильный релиз, и, надеюсь, шумиха для Perl 6 начнется с тех пор, когда люди обнаружат что он реальный.

Если вас интересует Perl 6, вы можете подумать о вовлечении в сообщество. По моему опыту это очень дружелюбное сообщество (оно почти ползет меня, насколько хороши все, даже в IRC). Установите Rakudo, попробуйте сломать его, файл ошибки. Напишите тестовые файлы. Записывать реализации для основных функций, писать модули. Там много дел!

Ответ 2

Perl 6 не готов к производству с использованием наиболее общих определений "готовой продукции" в соответствии с собственным потоком SO - реализации нестабильны и, возможно, не имеют полных функций спецификация.

Подробнее о статусе с 2008 года см. этот ответ.. Языковая спецификация кажется стабильной (по крайней мере, согласно brian d foy в связанном сообщении), но реализация еще не существует.

Что касается конкретных дат, в соответствии с этим сообщением от 04/08/2010, первый крупный выпуск самого дальнего Perl 6 - Rakudo (на Parrot VM) - названный "Rakudo Star 1.0" ориентировочно нацелен на Q2 2010 (первоначальный план был около апреля 2010 года, но был перенесен из-за личных обстоятельств, связанных с ведущим разработчиком).

Конечно, YMMV - я видел, как люди используют LOT менее стабильный код/​​проекты в производстве (включая то, что они сами писали), чем текущее состояние Perl 6. Но я лично даже не стал бы мечтать о развертывании Perl 6 до тех пор, пока он не будет широко выпущен на некоторое время.

Однако обратите внимание на очень важный момент: вышеизложенное не означает, что Perl 6 является паровым или что его не следует изучать - похоже, он прогрессирует хорошо, и поэтому я лично намерен начните копаться в нем (ну, уже есть благодаря SO) раньше времени, поэтому я готов использовать его, когда он немного стабилизируется.

Кроме того, я хотел бы добавить, что большой кусок отличной функциональности Perl 6 был перенесен на Perl 5 (в 5.10-5-12 и см. Perl6:: modules), поэтому вышеозначенный вопрос об обучении Perl6 крайне уместен, даже если у вас нет ближайших планов по развертыванию самого Perl 6.

Ответ 3

Perl 6 был официально выпущен несколько дней назад, это Рождество в 2015 году. На самом деле были выпущены две очень важные вещи.

Первое и самое главное официальная и теперь стабильная языковая спецификация, Perl 6.c(c для Рождества), была выпущена. Спецификация представляет собой набор из более чем 120 000 тестов, известных как Perl 6 Roast ( R epository o f A ll S pec T ests), который можно найти на Github под perl6/roast.

Во-вторых, была выпущена новая версия реализации Perl 6, известной как Rakudo. Rakudo - это компилятор Perl 6, работающий на виртуальных машинах MoarVM и JVM. Эта новая версия Rakudo предназначена для спецификации языка 6.c и проходит все тесты на нескольких основных архитектурах. Более подробную информацию о выпуске можно найти на сайте Github в rakudo/rakudo и, в частности, в объявлении 2015.12 в разделе rakudo/rakudo/blob/nom/docs/announce/2015.12.md.

Rakudo довольно просто установить, я лично рекомендую использовать rakudobrew, который является менеджером установки Rakudo. Следуйте инструкциям здесь https://github.com/tadzik/rakudobrew. В дополнение к установке Rakudo и MoarVM он также может установить Panda, который является установщиком модуля Perl 6.

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

  • Сохраняет основные ценности Perl: выразительность, выполнение работы, влияние на естественный язык и продвижение границ языка.
  • Имеет чистый, современный синтаксис, внедренный в знакомые конструкции, но пересматривающий и пересматривающий то, что ему нужно.
  • Это действительно мультипарадигма, позволяющая элегантное объектно-ориентированное, функциональное, процедурное и параллельное программирование.
  • Служит отличным языком клея, позволяя легко вызывать C/С++ (используя NativeCall) и оставаться совместимым с Perl 5 (через Inline:: Perl5).
  • Предоставляет составные конструкции для работы с асинхронными данными и параллельными вычислениями
  • Резко реформирует и устанавливает новый стандарт в синтаксисе regex, который масштабируется до полных грамматик, достаточно мощный, чтобы самостоятельно анализировать Perl 6
  • Имеет отличную поддержку Unicode со строками, работающими на уровне grapheme.
  • Значения лексического охвата и инкапсуляции, позволяющие легко рефакторинг
  • Расширяется посредством программирования метаобъектов, определяемых пользователем операторов и признаков

Вся информация, которую вы хотите узнать о Perl 6, можно найти здесь http://perl6.org/.

Ответ 4

Интересный блог, опубликованный сегодня Леон Тиммерманн о некоторых из различий, появившихся в Perl 6.
Почему Perl 6 отличается? Не много говорить о том, когда эти различия выйдут.