Каково текущее состояние Perl 6? - PullRequest
28 голосов
/ 19 апреля 2010

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

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

Ответы [ 4 ]

23 голосов
/ 19 апреля 2010

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

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

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


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

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

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

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

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

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

15 голосов
/ 19 апреля 2010

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

См. Этот SO-ответ для получения подробной информации о статусе по состоянию на 2008 . Спецификация языка кажется стабильной (по крайней мере, в соответствии с brian d foy в связанном посте), но реализация пока не существует.

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

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

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

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

10 голосов
/ 30 декабря 2015

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 выглядит чрезвычайно мощным и глубоким языком, который решает многие проблемы, которые я нахожу с существующими динамическими языками. Взять прямо из объявления Ракудо:

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

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

2 голосов
/ 20 апреля 2010

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

...