LINUX.ORG.RU

«The Perl and Raku Conference» видеоотчёт

 , , ,


1

2

Полный список докладов с кратким текстовым описанием можно посмотреть по ссылке.

В списке выступлений есть видео, которые будут полезны программистам на любых языках. Любители скандалов и интриг могут посмотреть видео про перипетии, предварившие выход Perl 5.34. Также в наличии отличные видео, рассказывающие, что за зверь язык «Raku», с чем его едят и какие «киллер фичи» он поддерживает из коробки.

>>> Плейлист с выступлениями

★★★

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

Вообще как-то уныло получилось. Единственное, что нормально зашло:

* Introduction to Perl Data Types - William N. Braswell, Jr. - нескучный товарищ, даже шутки иногда получались ;)

* perlimports or «Where did that symbol come from?» - Olaf Alders

* What's new in Perl? - Ricardo Signes - всегда приятно смотреть/слушать.

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

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

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

А чем объективно плох Perl

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

Плюс лично меня морозит работа со списками и left-right associativity, которая не всегда очевидна. Если смешать первое со вторым - будет пушка.

Ну и ещё указатели в языке с динамической типизацией это весело

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

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

Второе, если на Perl не пишешь постоянно, а так, от случая к случаю скриптоту, очень тяжело потом свой код читать, даже если писал на Perl, как на паскале.

И третье, какая-то шняга с русским языком. Регулярки с ним работают фигово, в целом как-то всё… Прагма utf-8 меня например не спасла. Взял питон и в нём всё из коробки на ура.

Третье. Заморочно работать с модулями, ну скажем так, сильно заморочней, чем в питоне.

Четвертое. По сравнению с питоном фиговая документация.

Пятое. Вроде бы огромная куча библиотек на все случаи жизни, но оказывается не так всё радужно. Что-то уже никем не поддерживается, что-то фигово документировано, что-то не прикрутить, что-то не совсем оно.

Шестое. Perl в стандартной поставке очень убогий, нужно искать библиотеки, см. #5.

Но это всё не так, чтобы прямо полный песец, ужас, тьма и скрежет зубовный. Просто в питоне всех этих проблем нет.

В питоне других проблем имеется, но мы не об этом.

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

но он очень хорош

Да я не сомневаюсь, но он всё-равно нафик не нужен именно в качестве «ещё одного языка» - там просто нет таких фич, которые отсутствуют в современных языках вроде Go, Ocaml, D. Зато есть крайне сомнительная история с бесконечной разработкой, непонятки с обратной совместимостью и экосистемой.

Вот в качестве виртуальной машины для желающих поковыряться с конструированием языков, и при этом без работы с Lisp или GraalVM - да, может быть любопытно. Но это ж полтора энтузиаста.

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

Я не эксперт в русском, но что-то я сомневаюсь про запятую в данном месте.

Изначально было корректно – «видео, рассказывающие что за зверь язык «Raku»».

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

При этом запятая нужна, если предложение будет выглядеть как «видео, рассказывающие, что за зверь-язык «Raku» могут отомстить адепты»

IPFreely ★★ ()
Последнее исправление: IPFreely (всего исправлений: 1)

Кстати, вот так удобней смотреть список видео с выступлений. В плейлисте тяжело читать, но я вставил ссылку именно на него, чтоб она оставалась актуальной даже через много лет :3

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

там просто нет таких фич, которые отсутствуют в современных языках вроде Go, Ocaml, D

Все таки, это некорректное сравнение, перл интерпретируемый ЯП для скриптов, сравнивать его логично с Python и Ruby, а не с компилируемыми ЯП общего назначения.

seiken ★★★★★ ()
Ответ на: комментарий от beck
  1. От языка не зависит.

  2. Дитто.

  3. Я уже однажды отвечал тебе, что у тебя лапки. Нет в перле никакой шняги с русским языком:

    $ cat ./test.pl 
    #!/usr/bin/perl
    use v5.30.0;
    STDOUT->print( "?> " );
    my $input = STDIN->getline();
    say $input =~ m{^(y|yes|д|да)$} ? "yes" : "no";

    $ ./test.pl 
    ?> д 
    yes

Как видишь, регулярка работает с русскими буквами.

  1. (У тебя «третье» два раза.) Что заморочного в работе с модулями?

Куча модулей опакечено, можно ставить из репы:

$ dnf search perl | grep -E ^perl- | wc -l
3374
$ dnf install perl-Moo

Нет проблем поставить модуль из CPAN без рутовых прав:

$ cpanm Moo

Куда уж проще-то?

  1. Это твоё мнение. А по-моему, в перле, по сравнению с питоном, отличная документация.

  2. Ну, частично ты прав. Однако, в пупи все модули отлично поддерживаются? Все документированы? Все прикручиваются? Все «совсем оно»? Я вот ткнул в первый попавшийся модуль:

    $ pip install markdown2html
    Defaulting to user installation because normal site-packages is not writeable
    Collecting markdown2html
      Downloading markdown2html-0.0.3.tar.gz (4.8 kB)
    Collecting pypandoc
      Downloading pypandoc-1.5.tar.gz (26 kB)
    ERROR: Could not find a version that satisfies the requirement hjsystemtools (from markdown2html) (from versions: none)
    ERROR: No matching distribution found for hjsystemtools (from markdown2html)

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

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

  1. См. п. 3 (второй из двух «третьих»).

Я так вижу, что перл и его инфраструктуру ты знаешь плохо, поэтому предпочитаешь питон. Это нормально и понятно. Непонятно нахрена ты ходишь в перловые топики и повторяшь ерунду про язык, который ты не знаешь и не пользуешь?

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

Нет, запятая к месту, изначально было некорректно, Ваша логика ущербна.

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

https://mishka-knizhka.ru/rasskazy-dlya-detej/rasskazy-charushina/chto-za-zver-charushin-e-i/

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

Прагма utf8 позволяет использовать в исходном коде не ASCII символы и больше ничего не делает. Ещё надо указать кодировку для дескриптора, т.к. далеко не факт что русский будет представлен юникодом. Про всё это можно прочитать в perldoc perluniintro или perldoc perlopentut.

# предполагается, что в STDIN и STDOUT будет только ASCII
echo 'Ха-ха' | perl -nE'say /\w\w-\w\w/ ? "1 - $&" : "0 - :("'
# 0 - :(

# STDIN - UTF8, а STDOUT ASCII. Отсюда предупреждение
echo 'Ха-ха' | perl -CI -nE'say /\w\w-\w\w/ ? "1 - $&" : "0 - :("'
# Wide character in say at -e line 1, <> line 1.
# 1 - Ха-ха

# STDIN и STDOUT в UTF8
echo 'Ха-ха' | perl -CIO -nE'say /\w\w-\w\w/ ? "1 - $&" : "0 - :("'
# 1 - Ха-ха

# Не ASCII-текст в исходном коде. Perl не знает чего с ним делать
echo 'Ха-ха' | perl -CIO -nE'say /ха-ха/i ? "1 - $&" : "0 - :("'
# 0 - :(

# А теперь знает
echo 'Ха-ха' | perl -Mutf8 -CIO -nE'say /ха-ха/i ? "1 - $&" : "0 - :("'
# 1 - Ха-ха

# А вот вариант задать кодировку UTF8 для всех открываемых и стандартных 
# (STDIN, STDOUT, STDERR) дескрипторов в неоднострочных скриптах
echo 'Ха-ха' | perl -nE'use open qw[ :std :encoding(utf8) ]; say /\w\w-\w\w/ ? "1 - $&" : "0 - :("'
perl5_guy ★★★ ()
Ответ на: комментарий от IPFreely

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

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

Нет в перле никакой шняги с русским языком

У меня задача была другая, как обычно, йолки иголки, телепаты-эксперты…

перл и его инфраструктуру ты знаешь плохо, поэтому предпочитаешь питон

Да я и питон плохо знаю. И не претендую, я уже давно не программист. Раз в год встаёт задача какой-то скриптоты наговнокодить. Получается по итогу фифти фифти, половина на перле, половина на питоне.

нахрена ты ходишь в перловые топики

Человек задал вопрос, я ответил, изложив мой собственный опыт. У тебя другой опыт. На то и форум, чтобы опытом делиться.

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

От языка не зависит

Зависит. Как я выше написал, контексты вместе с динамикой и указателями это пипос. Если у тебя есть приложенька хотя бы на 20-30к строк, то очень легко где-нибудь вкорячить скаляр вместо списка или забыть его обратно списком сделать. А дальше все зависит от сложности логики, можно и в базу шлак сложить, и запрос коряво отправить, и ветка с этим трешем может быть одна и редкая. В других языках такое не выйдет - питон ошибку кинет (хотя не всегда, это да), Ява просто отвалит сборку. Не, там тоже можно извернуть через рефлекшн и type erasure, но это уже разве что намеренно делать.

Меня ещё пару раз морозила ассоциативность когда в одну строку кто-нибудь свалит например мап, регулярку и объявление списка по обе стороны от =, и потом сидишь гадаешь что куда идёт.

Про либы - таки да, они бывают весьма занятные. У жсона были (уже нет) скажем приколы с числами и строками ибо в перле что последний тот и папа. С базой тоже такое себе работать, явкин jOOQ сильно удобнее. Но в питоне и яве кривых либ тоже хватает, как и везде.

И базовая поставка убогая, это правда. Например если у твоего CI нет выхода в сеть, то в базе ты даже жсон не раскуришь без пары приседаний. Помню пакетил перл на obs, там как раз без сети. Приходилось долго тыкать что есть в системе и оттуда уже танцевать.

Плюс назови мне нормальную ide, которая нормально может крупный перл. Не вим, чтоб был дебаггер и прочий бл/ш. Идея в целом может, но на толстых проектах её таки клинит.

upcFrost ★★★★★ ()
Последнее исправление: upcFrost (всего исправлений: 2)
Ответ на: комментарий от beck

У меня perl под aix и нет интернета. Очень просто, да.

Если ничего не помогает, прочтите, наконец, инструкцию:

$ cpanm --help
...
cpanm ~/dists/MyCompany-Enterprise-1.00.tar.gz            # install from a local file
...

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

Все остальные твои (не перловые, а твои) проблемы точно такие же — лапки.

debugger ★★★ ()