LINUX.ORG.RU

Анонсирован выход Perl 7

 ,


3

2

Вчера вечером на «Perl and Raku Conference in the Cloud», Sawyer X анонсировал смену основной версии Perl с 5 на 7. Работы уже ведутся, новая версия выйдет в течение года. Большого количества изменений ждать не стоит, если коротко: Perl 7 это всё тот же Perl 5.32 с современными настройками по умолчанию. Вам больше не надо явно подключать возможности которые вы и так используете, их включат для вас!

Что включат?
Полного списка пока нет, но strict и warnigs точно! В 7м релизе сигнатуры скорей всего останутся экспериментальными, utf8 тоже включить не успеют.

Что будет отключено?

  • Непрямой вызов методов:
    {;
        package Foo;
    
        sub new { bless {} }
        sub bar { print "Hello from bar()!\n" x pop }
    }
    
    # Нормальный вызов
    my $foo = Foo->new();
    # Непрямой вызов
    bar $foo 42;
    

  • Пустые слова (barewords) как идентификаторы дескрипторов (за исключением стандартных (STDIN, STDOUT, STDERR))
  • Псевдо многомерные хэши в стиле Perl 4.
    # примеры взяты из perldoc perlvar
    $foo{$x,$y,$z}
    # на самом деле означает $foo{join($;, $x, $y, $z)}
    

  • Старые прототипы в стиле Perl 4. Теперь нужно писать только так:
    sub foo :prototype($$) ($left, $right) {
        return $left + $right;
    }
    

    Сначала прототип влияющий на компиляцию вызовов, а затем сигнатуры помещающие аргументы в соответствующие переменные во время выполнения.

Тем не менее, останется возможность вернуть всё обратно оптом:

use compat::perl5;
Или по-одному.

Perl 5.32 переходит в режим долгой поддержки на срок от 5 лет.

Развёрнутый анонс от Брайана Д Фоя: https://www.perl.com/article/announcing-perl-7/
TL;DR версия от него же: http://blogs.perl.org/users/brian_d_foy/2020/06/the-perl-7-tldr.html

>>> Подробности

★★

Проверено: alpha ()

Ответ на: комментарий от perl5_guy

Изменения ломающие.

Даже с use compat::perl5;?

Зарево от пылающих срак видно даже из космоса.

Как будто когда-то было иначе. ☺

Так что все логично и понятно.

А я не оспариваю. Я лишь высказал своё мнение по этому поводу.

mord0d ★★★ ()
Ответ на: комментарий от perl5_guy

За такие слова можно поGNUть в PNG. А если серьёзно, то никто все равно не перейдет на новый перл тупо из-за системных путей до интерпритатора. Немного забавно после того как в апреле кончилась поддержка второго питона.

Cirno ()
Последнее исправление: Cirno (всего исправлений: 1)
Ответ на: комментарий от Cirno

Это да. Не думаю что дистростроители будут тащить две версии. Скорей всего для системы останется 5.32, который обещают поддерживать минимум 5 лет. Я даже читал что может быть все 10, но это пока слухи.

perl5_guy ★★ ()
Ответ на: комментарий от anonymous

Если ты правда решишь выучить ЯП, то выделишь вечерок чтоб почитать про его плюсы и минусы. Информации в Интернетах достаточно. Единственное что я могу сказать - удели внимание принципам, культуре которая существует в Perl-сообществе. Много интересного узнаешь и аналогов у этого нет. Если тебе понравится атмосфера - смотри более детально каждый из языков и решай сам. Оба ЯП разделяют принцип «Не нужно знать его весь, чтоб начать использовать», так что можешь и Perl и Raku шатать. Удачи!

perl5_guy ★★ ()
Ответ на: комментарий от anonymous

выбирая между перлом и раку, что лучше учить? Раку для крепкого академического стояка – как хаскель, но перл. Перл – на прикладные текущие задачи.

anonymous ()

Вот если бы в перле, когда пытаешься выполнить шел команду, выводило бы: 'Ты действительно хочешь выполнить команду команда?'

И количество успешно выполняющих знаменитую программу из одной строчки уменьшилось бы.

zagatov_lev ()
Последнее исправление: zagatov_lev (всего исправлений: 1)
Ответ на: комментарий от perl5_guy

начать использовать - это конечно хорошо, но его бы сделать read-write вместо write-only и цены бы ему не было. после еола питона уже и поскриптовать не на чем.

в принципе почти всё, что было нужно уже переписано на го, как бы момент упущен и вся эта ракувая история не добавляет перлу привлекательности, но если удастся сохранить совместимость, например если гит сможет перейти с перл 5 на перл 7 без особого гемора, то это было бы огромным плюсом.

anonymous ()

Этот дошколёнок-хипстер Sawyer, окончательно похоронит перл. Зачем strict и warnigs использовать по-умолчанию.. С*ка как бесят. хипстеры поломали питон, теперь до перла добролись.

anonymous ()
Ответ на: комментарий от anonymous

ro-язык это миф. Perl замечательно поддерживается и легко осваивается. У меня есть опыт как программирования, так и обучения данному языку. Я всегда прошу примеры нечитаемого кода приводить. Тащат либо однострочники, либо JAPH/Golf, что говорит об органических поражениях мозга у приводящего подобные листинги в качестве аргументов.

perl5_guy ★★ ()
Ответ на: комментарий от perl5_guy

Я как-то писал большую клюкву с наследованием и дефолтными функциями. Не покажу ибо nda и стыд. Я четко понимаю, что читалось это потом отварительно, но зато было очень удобно писать.

Я люблю Perl, но дао «это можно сделать несколькими путями» по факту приводит к плохим результатам.

zloelamo ★★★★ ()
Ответ на: комментарий от perl5_guy

да прямо на слайдах по ссылке нечитаемо. перл задумывался как язык близкий к натуральному, а закончился программированием через закорючки и хак на хаке. знаешь как пони в цирке знает пять трюков, а перл знает ‘100’ + 500 трюков и не устаёт изобретать всё новые и новые.

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

с другой стороны, может что-то из этого и выйдет, т.к. раку всё таки оказался тупиком с точки зрения перла, ничего не было интегрировано обратно, перл как язык от этого ничего не получил и по большому счёту вся эта возня оказалась полностью бесполезной.

модель обновления «как в es» может сработать. но (но!). в es ещё есть тайпскрипт и переход с es5 на es6 делается таким способом, что код не надо переписывать, просто тайпскрипт начинает генерировать под es6. этот момент этот чувак с приколным хайером и дыркой в голове мне кажется не совсем улавливает, но может я не прав.

короче я рад, что почти всё что было нужно уже переписано на го (а не на перле), связываться с перлом мне стало хотеться ещё меньше во всех смыслах. желаю всем удачи, конечно, посмотрим что из этого выйдет. на чём-то скриптовать всё таки надо. питухон с нами попрощался - его дело, в добрый путь. было бы хорошо иметь какую-то замену. если с перлом 7 что-то получится, то это будет не плохо, но может быть и так, что и перл с нами попрощается, есть такие опасения.

anonymous ()
Ответ на: комментарий от Virtuos86

после питухона. а чего мне должно было не хватить в го? дженериков? ну да, не очень удобно, ну написали на 20 строк кода больше чем могли бы, ну и что? и вроде собираются добавить дженерики в го, так эти строчки удалятся потом. удалять код без потери функционала и читаемости - это же хорошо.

anonymous ()
Ответ на: комментарий от anonymous

перл задумывался как язык близкий к натуральному, а закончился программированием через закорючки и хак на хаке.

Ну да, Perl нужно учить и это особенность данного языка. Не что-то с чем надо смириться и жить, а ключевая фишка, ради которой Perl-программисты программируют на Perl. На самом деле, в язык добавляется по 1.5 новых закорючки в год, так что проблем не будет. Ну и сложность сильно преувеличена. Новую закорючку можно осилить за 5 минут и в следующий раз ты на ней не залипнешь. Всё это обеспечит великолепная документация и сообщество. На SO топы, вроде Брайна Ди Фоя целыми энциклопедическими статьями отвечают на тупейшие вопросы новичков.

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

Ну как не ценят-то? Perl 5.32 будет поддерживаться 5, а может быть и все 10 лет. Вообще ничего менять не надо будет. Ну и нельзя сказать что это прям что-то радикально новое. Я работаю с центосью седьмой где стоит perl 5.16 (2013 год).

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

Раку это другой язык, но он вполне себе Perl'овый. Я книжечку по нему прочитал и остался крайне доволен, так что не просто не стал бы его хоронить, мне кажется у Raku большое будущее.

модель обновления «как в es» может сработать. но (но!). в es ещё есть тайпскрипт и переход с es5 на es6 делается таким способом, что код не надо переписывать, просто тайпскрипт начинает генерировать под es6.

Есть попытки прикрутить типизацию, но перспективы не радужные. Конечно большие компании ставку на Perl не делают. На энтузиазме такой крест затащить сложно.

короче я рад, что почти всё что было нужно уже переписано на го (а не на перле), связываться с перлом мне стало хотеться ещё меньше во всех смыслах. желаю всем удачи, конечно, посмотрим что из этого выйдет.

Ну джавай, бро, и тебе всего хорошего. Спасибо за комментарий.

perl5_guy ★★ ()