The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

26.12.2015 09:22  Состоялся рождественский релиз Perl 6

Увидел свет компилятор Rakudo 2015.12 "коледа", который отмечен Ларри Уоллом (Larry Wall) как первый релиз языка программирования Perl 6. Rakudo является одним из компиляторов Perl 6, преобразующих программы в байткод, который затем выполняется в специальной виртуальной машине. По умолчанию предлагается виртуальная машина MoarVM, в качестве альтернативы может использоваться виртуальная машина JVM (также продолжает развитие проект Parrot, но он не поддерживается в Rakudo, разработка альтернативного компилятора Niecza давно заброшена).

В Rakudo 2015.12 полностью реализована поддержка спецификации v6.c "Christmas" для Perl 6 и успешно пройдены связанные с ней тесты (тестовый набор включает около 120 тысяч проверок). Спецификация v6.c объявлена стабильной - некоторое время язык будет находиться в состоянии заморозки. В дальнейшем спецификация продолжит своё развитие и будет учитывать отзывы и пожелания сообщества, но общая совместимость будет сохраняться. Проект Rakudo как и раньше будет формировать ежемесячные выпуски, в которых основное внимание теперь будет уделено работе по увеличению производительности, переносимости и стабильности.

Perl 6 развивается более 15 лет, причём из них около 10 лет продолжалось ожидание финального релиза - на протяжении этих лет, на вопросы о дате релиза Ларри Уолл ежегодно отшучивался, что дата релиза давно известна – это канун Рождества, в тайне пока остается год этого события. Язык Perl 6 кардинально отличается от Perl 5 и может рассматриваться как созданный с нуля отдельный язык программирования, обладающий средствами метапрограммирования (возможность определения собственных синтаксических конструкций для расширения языка, в том числе создания новых инфиксных операторов) и встроенными объектно-ориентированными возможностями. Для обращения к коду на языках C/C++ в Perl 6 поддерживается интерфейс NativeCall, а для использования кода Perl 5 в программах на Perl 6 предоставляется прослойка Inline::Perl5 (для использования Perl 6 в программах на Perl 5 по аналогии предлагается модуль Inline::Perl6).

С особенностями Perl 6 можно познакомиться в обзорах Андрея Шитова. Ключевые отличия от Perl 5:

  • Возможность определения типизированных переменных ("my Int $i;" или "sub count(Int $i){", если присвоить $i строковое значение будет выведена ошибка). Поддерживаются типы Bool, Int, Str, Array, Hash, Complex, Num, Pair;
  • Полноценная система классов для объектно-ориентированного программирования (определение "class A {has $.i; method test($what)...}" и вызов "my $a = A.new(i => 1); say $a.i;"). Для наследования при объявлении класса следует указать родительский класс ("class B is A {" или "class C is A is B {").
  • Упрощение определения переменных ("my @list = 1, 2, 3;" или "my %hash = 'test1' => 1, 'test2' => 2;") и возможность использования Unicode в именах переменных ("my $переменная = 1;");
  • Определение области видимости переменной и элементов классов при помощи "твиглов" (%*ENV, $?FILE, $!a, $.b);
  • Возможность указания необязательных аргументов функции и значений по умолчанию ("sub func(Int $i?)", "sub func(Int $i = 1)");
  • Поддержка передачи аргументов функции по именам (определение "sub power(:$base, :$exponent)", вызов "power(:base(2), :exponent(3))");
  • Возможность создания вложенных функций и определения нескольких функций с одним именем (разделение по типам аргументов);
  • Методы параллельного программирования: каналы и механизмы синхронизации;
  • Анонимные блоки-замыкания ("my $cube = -> $x {$x ** 3};") и динамические переменные ("my $*var = 'Alpha'");
  • Изменённый синтаксис регулярных выражений и возможность определения грамматик;
  • Широкий набор метаоператоров;
  • Метод ".WHAT" для быстрого определения типа переменной ($scalar.WHAT) и оператор "===" для сравнения объектов типов ("if ($value.WHAT === Int)");
  • Переменная "$/" для записи результата сопоставления в регулярном выражении (совпавшую строку можно получить через $/.Str, для подстрок используется синтаксис $/[1] идентичный $1);
  • Переменная "$!" для доступа к сообщению об ошибке.


  1. Главная ссылка к новости (https://6guts.wordpress.com/20...)
Лицензия: CC-BY
Тип: Интересно / Программы
Ключевые слова: rakudo, perl6, perl
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, IMHO (?), 09:42, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]
  • +8 +/
    все, пропали празники, буду тестить и кодить
     
  • 1.2, Аноним (-), 10:07, 26/12/2015 [ответить] [показать ветку] [···]     [к модератору]
  • +1 +/
    Пока ждал Perl6, выучил C Не зря они NativeCall предусмотрели Имхо, C и ... весь текст скрыт [показать]
     
     
  • 2.5, Аноним (-), 10:38, 26/12/2015 [^] [ответить]    [к модератору]  
  • –13 +/
    Перл как был языком однострочников в консоли так и остался. Писать на нем что-либо более серьезное - идиотизм.
     
     
  • 3.8, Аноним (-), 11:27, 26/12/2015 [^] [ответить]     [к модератору]  
  • +2 +/
    Писал на Perl5 серьезные проекты Писались быстро, но было нереально сложно подд... весь текст скрыт [показать]
     
     
  • 4.11, Аноним (-), 12:02, 26/12/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Переходить с перла на плюсы из-за более легкой поддержки это пипец. Для этого есть питон, или на крайний ява с шарпами.
     
     
  • 5.44, Crazy Alex (ok), 18:13, 26/12/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Для перловика плюсы - довольно удобная штука, идеология очень похожа в плане гибкости,  желания оставить конечные решения за программистом и того самого TIMTOWDI.
     
  • 4.18, Аноним (-), 13:13, 26/12/2015 [^] [ответить]     [к модератору]  
  • +2 +/
    Судя по написанному, Вам нужно попробывать RUST lang https doc rust-lang org ... весь текст скрыт [показать]
     
     
  • 5.22, Аноним (-), 13:46, 26/12/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Так же у RUST хорошая поддержка для embedded платформ:

    https://twitter.com/SamsungOSG/status/679017493265031168
    https://twitter.com/VIAmkt/status/679837274754781184

     
  • 3.54, Аноним (-), 01:23, 27/12/2015 [^] [ответить]    [к модератору]  
  • +/
    а что Perl претендует на что-то большее? по твоей логике есть ЯП истинные для корпоративных порталов, а есть ЯП для одностраничек? если да тогда мне тебя жаль( все решают фреймворки а не ЯП!
     
  • 2.33, Аноним (-), 15:17, 26/12/2015 [^] [ответить]     [к модератору]  
  • –2 +/
    Зачем нужен Perl,Ruby , когда современные низкоуровневые языки вроде RUST предо... весь текст скрыт [показать]
     
     
  • 3.39, Michael Shigorin (ok), 17:12, 26/12/2015 [^] [ответить]    [к модератору]  
  • +7 +/
    > Зачем нужен Perl,Ruby.., когда современные низкоуровневые языки

    За всё тем же: работа со сложными структурами данных обозримым количеством кода.

     
     
  • 4.50, ананим.orig (?), 22:57, 26/12/2015 [^] [ответить]     [к модератору]  
  • –1 +/
    Ну 8230 не всё так плохо За этим и придумали библиотеки классов шаблонов этк ... весь текст скрыт [показать]
     
  • 4.52, птупогромист (?), 00:00, 27/12/2015 [^] [ответить]    [к модератору]  
  • –4 +/
    Да на шелле то поди ещё удобней? >_<
     
  • 3.64, angra (ok), 17:16, 27/12/2015 [^] [ответить]     [к модератору]  
  • +/
    Неужто они и такие конструкции умеют a asdf , b t f , v ... весь текст скрыт [показать]
     
     
  • 4.79, Andrii (?), 20:29, 30/12/2015 [^] [ответить]    [к модератору]  
  • +/
    А зачем такие конструкции? Легко совершить ошибку и все рушится с NoMethodError.
     
  • 1.3, Аноним (-), 10:19, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Они ошибку в названии пропустили, назвали "колЕда" вместо "колЯда", хотя ссылку на wikipedia именно на коляду поставили и пояснение указывает, что имели в виду коляду.
     
     
  • 2.4, Аноним (-), 10:26, 26/12/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    Толковый словарь Даля допускает "коледа" как вариант.
     
     
  • 3.7, A.Stahl (ok), 10:46, 26/12/2015 [^] [ответить]     [к модератору]  
  • –6 +/
    Это, скорее всего, означает, что в каком-то регионе в конце 19века использовалос... весь текст скрыт [показать]
     
     
  • 4.9, Khariton (ok), 11:55, 26/12/2015 [^] [ответить]     [к модератору]  
  • +/
    Ну почему имели Литва до сихпор так и говорит Kaleda И Болгария Коледа ht... весь текст скрыт [показать]
     
     
  • 5.10, A.Stahl (ok), 11:59, 26/12/2015 [^] [ответить]    [к модератору]  
  • –2 +/
    Даль разве интересовался болгарским или латышским? Я про словарь, его актуальность и конкретное слово в конкретном современном языке.
     
     
  • 6.48, Khariton (ok), 22:17, 26/12/2015 [^] [ответить]    [к модератору]  
  • +/
    > Даль разве интересовался болгарским или латышским? Я про словарь, его актуальность и
    > конкретное слово в конкретном современном языке.

    Слово-то заимствованное.

     
  • 5.16, Zulu (?), 12:53, 26/12/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    Распространенное изменение en -> ę -> Ѧ. То же самое в ментосе, которая мята.
     
  • 4.13, Michael Shigorin (ok), 12:50, 26/12/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    Ну идите, покайтесь на площади, что у Вас какая-то душа ещё осталась Не положе... весь текст скрыт [показать]
     
  • 4.38, asd (??), 16:52, 26/12/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    Стыдно, что некоторые до сих пор решают, что и кому можно и нужно помнить.
     
     
  • 5.49, Khariton (ok), 22:19, 26/12/2015 [^] [ответить]     [к модератору]  
  • +/
    и не говорите, но самое стыдное, что кто-то еще устанавливает рамки чего нужно с... весь текст скрыт [показать]
     
  • 2.6, Аноним (-), 10:46, 26/12/2015 [^] [ответить]     [к модератору]  
  • +2 +/
    Возможно, используется болгарский термин - он пишется через Е В анонсе сказано ... весь текст скрыт [показать]
     
  • 2.45, Crazy Alex (ok), 18:25, 26/12/2015 [^] [ответить]    [к модератору]  
  • +/
    А написать, как в оригинале, Rakudo Star что мешало? по ссылке на релиз "коледа" нет, место этой хрени - разве что где-то глубоко в примечаниях
     
  • 1.12, grayich (ok), 12:07, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +11 +/
    логотип perl 6 - https://perl6.org/camelia-logo.png
    .. наркоманы
     
     
  • 2.23, Я (??), 13:59, 26/12/2015 [^] [ответить]    [к модератору]  
  • –2 +/
    Но судя по посту и плюсам детей у вас нет ...
     
     
  • 3.27, Аноним (-), 14:42, 26/12/2015 [^] [ответить]    [к модератору]  
  • +/
    И дети есть, и пузо есть, но логотип всё равно отвратный. Второе место после gnu'шных черепашек-гомосеков, но с отрывом опережая golang'овского хомячка.
     
     
  • 4.35, kravich (ok), 16:26, 26/12/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Не трож хомяка!
     
  • 2.29, Нимано (?), 14:59, 26/12/2015 [^] [ответить]     [к модератору]  
  • +1 +/
    То ли дело розового W небесного солнечного цвета слоники http hadoop apache ... весь текст скрыт [показать]
     
     
  • 3.30, grayich (ok), 15:00, 26/12/2015 [^] [ответить]    [к модератору]  
  • +7 +/
    вокруг одни наркоманы
     
     
  • 4.42, chinarulezzz (ok), 17:45, 26/12/2015 [^] [ответить]    [к модератору]  
  • +/
    > вокруг одни наркоманы

    один лишь ты стоишь со шпагой, в плаще мушкетёра.

     
  • 2.36, Аноним (-), 16:46, 26/12/2015 [^] [ответить]    [к модератору]  
  • +/
    Это же рождественская бабочка!!!
     
     
  • 3.43, grayich (ok), 18:00, 26/12/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    нет, рождественская вот - https://perl6.org/camelia-advent.png

     
  • 1.14, Ilya Indigo (ok), 12:51, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Ларри, таки сдержал своё слово. На рождество. :-)
     
  • 1.15, Michael Shigorin (ok), 12:52, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    Да уж, последние времена наступают -- что там ещё не вышло из долгостроев?
     
     
  • 2.19, kravich (ok), 13:33, 26/12/2015 [^] [ответить]    [к модератору]  
  • +/
    GNU Hurd? Тоже ведь зашевелился...
     
     
  • 3.21, kravich (ok), 13:36, 26/12/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    И Реактось спустя сколько времени готова мифическим релизом 0.4 разродиться...
     
  • 2.20, Аноним (-), 13:33, 26/12/2015 [^] [ответить]    [к модератору]  
  • +5 +/
    > Да уж, последние времена наступают -- что там ещё не вышло из долгостроев?

    Hurd? Half-Life 3?

     
     
  • 3.24, A.Stahl (ok), 13:59, 26/12/2015 [^] [ответить]     [к модератору]  
  • –3 +/
    А Half-Life 3 тут каким боком Это не долгострой Его не строят И никогда не бу... весь текст скрыт [показать]
     
     
  • 4.70, Аноним (-), 07:33, 29/12/2015 [^] [ответить]    [к модератору]  
  • +/
    > после того, что вышло в качестве второй.

    Э...

    > Stahl

    А, ну да.

     
  • 1.17, Аноним (-), 13:11, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    Джвадцать лет ждал! (нет)
     
  • 1.25, Pilat (ok), 14:19, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    Мёртворождественский релиз
     
     
  • 2.28, Michael Shigorin (ok), 14:57, 26/12/2015 [^] [ответить]     [к модератору]  
  • +/
    Почему PS наш комайнтейнер перлов пишет --- Правда за прошедший месяц с прошл... весь текст скрыт [показать]
     
     
  • 3.32, Pilat (ok), 15:12, 26/12/2015 [^] [ответить]    [к модератору]  
  • –2 +/
    >> Мёртворождественский релиз
    > Почему?

    Да потому что весь язык мёртворождённый. Шуму много , а толку ноль.

     
  • 3.62, Аноним (-), 14:49, 27/12/2015 [^] [ответить]     [к модератору]  
  • +/
    Потому что поломали всю семантику perl а, без явных на то оснований if value ... весь текст скрыт [показать]
     
     
  • 4.69, 1 (??), 11:22, 28/12/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Дык так и утверждалось, что Perl6 совершенно другой язык, нежели Perl5.
     
  • 1.26, агент малдер (?), 14:37, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    use Inline::Perl5 qw(CPAN)
     
  • 1.31, chinarulezzz (ok), 15:04, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    Хех) жду оптимизаций.
    Пятый перл им не заменить, а вот нишу еще предстоит открыть/занять. Интересно.
     
     
  • 2.34, Аноним (-), 15:48, 26/12/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    для Вас: http://www.opennet.ru/openforum/vsluhforumID3/106131.html#33
     
     
  • 3.40, chinarulezzz (ok), 17:40, 26/12/2015 [^] [ответить]    [к модератору]  
  • +/
    > для Вас: http://www.opennet.ru/openforum/vsluhforumID3/106131.html#33

    у perl хоть синтаксис получше.

     
     
  • 4.46, Аноним (-), 19:13, 26/12/2015 [^] [ответить]     [к модератору]  
  • –2 +/
    У perl получше мда, я конечно как человек долгое время работавший с python,... весь текст скрыт [показать]
     
     
  • 5.55, Нимано (?), 02:42, 27/12/2015 [^] [ответить]     [к модератору]  
  • +3 +/
    code def unique _, __ type __ type ... весь текст скрыт [показать]
     
     
  • 6.56, Аноним (-), 11:20, 27/12/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    Это как раз код Перловика который первый раз решил что-то написать на Питоне!
     
     
  • 7.57, grayich (ok), 11:52, 27/12/2015 [^] [ответить]    [к модератору]  
  • +6 +/
    Нимано наглядно показал, что лёгкость чтения сорцов не зависит особо от языка, а больше от носителя языка.
     
  • 6.71, Гвидо (?), 08:23, 29/12/2015 [^] [ответить]    [к модератору]  
  • +/
    Чо уж, свинья грязи найдёт )))

    Штатно пишется как-то так:

    def unique(iterable):
        return sorted(set(iterable))

     
     
  • 7.72, Нимано (?), 16:26, 29/12/2015 [^] [ответить]    [к модератору]  
  • +/
    > Штатно пишется как-то так:
    > def unique(iterable):
    >     return sorted(set(iterable))

    [code]
    def unique(iterable):
        s = set()
        return [iterable for iterable in iterable if iterable not in s and not s.add(iterable)][/code]
    (да-да, вот такие пироги с котятами ) )
    <==>
    [code]
    def unique(iterable):
        s = set()
        return [elem for elem in iterable if elem not in s and not s.add(elem)][/code]

     
     
  • 8.75, Гвидо (?), 01:47, 30/12/2015 [^] [ответить]    [к модератору]  
  • +/
    s.add(elem) всегда возвращает None.
    Незнание этого факта - еще не диагноз,
    а вот написание каментов вроде ваших
    выставляет вас идиотом.

    Зачем вы так делаете?

     
     
  • 9.76, Нимано (?), 02:58, 30/12/2015 [^] [ответить]    [к модератору]  
  • +/
    > s.add(elem) всегда возвращает None.

    И что?
    > Незнание этого факта - еще не диагноз,

    Ванга в треде?
    Ну тогда угадайте, зачем там вообще "and not".
    Подсказки:
    list comprehension, statement, expression
    "not None" == True
    ну и
    > The expression x and y first evaluates x; if x is false, its value is returned; otherwise, y is evaluated and the
    > resulting value is returned.

    а то ведь стыдно должно быть, с таким ником, нести чепуху.

    > а вот написание каментов вроде ваших
    > выставляет вас идиотом.
    > Зачем вы так делаете?

    Что сказать-то хотели?

     
     
  • 10.77, Гвидо (?), 03:21, 30/12/2015 [^] [ответить]    [к модератору]  
  • +/
    Почитайте дзен питона и не пишите плохой код лишь для того, чтобы похвастаться своей способностью так писать.
    Никто этого не оценит.
     
  • 10.78, Гвидо (?), 03:38, 30/12/2015 [^] [ответить]    [к модератору]  
  • +/
    Вот вам утешительный приз

    from collections import OrderedDict
    def unique(iterable):
        return list(OrderedDict.fromkeys(iterable).keys())

     
  • 2.37, Michael Shigorin (ok), 16:50, 26/12/2015 [^] [ответить]    [к модератору]  
  • +/
    > Пятый перл им не заменить

    В смысле пятый CPAN? :)

     
     
  • 3.41, chinarulezzz (ok), 17:43, 26/12/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    >> Пятый перл им не заменить
    > В смысле пятый CPAN? :)

    Да. К тому же, 5-й в базовой поставке всех неспециализированных дистров.

     
  • 1.47, Аноним (-), 20:29, 26/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    perlgolf
     
  • 1.58, Аноним (58), 13:29, 27/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    когда все дистрибутивы *nix перейдут на perl6 ?
     
     
  • 2.59, Michael Shigorin (ok), 13:58, 27/12/2015 [^] [ответить]    [к модератору]  
  • +2 +/
    > когда все дистрибутивы *nix перейдут на perl6 ?

    Ларри никуда не спешил -- и мы не торопимся. :)

     
  • 2.60, grayich (ok), 14:12, 27/12/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    причём тут дистрибутивы к perl ?


     
     
  • 3.73, . (?), 18:42, 29/12/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    Да он просто в криокамере с 1999 был.
    Ещё не в курсе что перловку из дистрибов выпилили, и везде всунули питон.

    Кстати - чё то мне не верится, что теперь питон выкинут и впилят перло 6 :-)

     
  • 2.63, angra (ok), 17:04, 27/12/2015 [^] [ответить]    [к модератору]  
  • +1 +/
    Скорее всего никогда. Perl6 просто не годится для этой ниши.
     
  • 1.61, Аноним (-), 14:48, 27/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Решили раздробить малочисленное сообщество.
    Для web и Perl5 достаточно.
     
  • 1.65, Аноним (-), 21:46, 27/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Языков сейчас слишком много, по сути они дублируют друг друга, и кто-то должен быть вытеснен. Perl и Python кандидаты номер 1. Все последние новости по ним не что иное, как конвульсирования.
     
     
  • 2.66, grayich (ok), 21:48, 27/12/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    и на чём писать например системные скрипты?
     
     
  • 3.67, Аноним (-), 22:22, 27/12/2015 [^] [ответить]    [к модератору]  
  • +/
    За тебя уже подумал Леня, не надо больше ничего писать, просто потребляй.
     
  • 2.74, . (?), 19:25, 29/12/2015 [^] [ответить]    [к модератору]  
  • –1 +/
    > Языков сейчас слишком много, по сути они дублируют друг друга,

    Это так вот уже лет 15, а то и больше ...

    > и кто-то должен быть вытеснен. Perl и Python кандидаты номер 1.

    ORLY?! :) А спорим - ты девственник? Или и того хуже 8-\

    > Все последние новости по ним не что иное, как конвульсирования.

    Чаво-чаво? Кон ... куда .. вания? Шёл бы ты уроки делать. А чёрд, каникулы же ...

     
  • 1.68, Онаним (?), 01:25, 28/12/2015 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Первый абзац навёл на мысль, что давно пора разделить разработку языков/компиляторов и виртуальных мойшин для них, разделить более серьёзно.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor