The OpenNET Project / Index page

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

Доступен язык программирования Perl 5.42

03.07.2025 22:30

После года разработки опубликован релиз новой стабильной ветки языка программирования Perl - 5.42. При подготовке нового выпуска было изменено около 280 тысяч строк кода (без документации и автоматически сгенерированного кода - 93 тысячи), изменения затронули 1500 файлов, в разработке приняли участие 64 разработчика.

Ветка 5.42 выпущена в соответствии с утверждённым двенадцать лет назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.42.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.42.0. Одновременно с выходом Perl 5.42 прекращена поддержка ветки 5.38, для которой обновления могут быть выпущены в будущем только в случае выявления критических проблем с безопасностью. Начался процесс разработки экспериментальной ветки 5.43, на базе которой в июне 2026 года будет сформирован стабильный релиз Perl 5.44, если не будет принято решение перейти к нумерации 7.x.

Ключевые изменения:

  • Добавлены экспериментальные операторы обработки списков - "any { BLOCK } @list" и "all { BLOCK } @list", которые напоминают оператор "grep { BLOCK } @list", но могут возвращать только значения true или false. Оператор "all" возвращает "true" при выполнении условия для всех элементов списка, а оператор "any" - при выполнении условия хотя бы для одного элемента. Функциональность операторов аналогична функциям из модуля List::Util, но встроенные варианты быстрее и потребляют меньше памяти.
    
       use v5.42;
       use feature 'keyword_all';
       no warnings 'experimental::keyword_all';
       my @numbers = ...
       if ( all { $_ % 2 == 0 } @numbers ) {
           say "All the numbers are even";
       }
    
  • Для определяемых внутри класса полей реализован атрибут ":writer", применяемый для автоматического создания метода, записывающего значение переменной в поле для текущего экземпляра класса.
    
       class Point {
           field $x :reader :writer :param;
           field $y :reader :writer :param;
       }
       my $p = Point->new( x => 20, y => 40 );
       $p->set_x(60);
    
  • Добавлена поддержка определения лексических методов, которая по аналогии с определением лексических подпрограмм ("lexical_subs"), позволяет создавать методы, доступные только в области лексической видимости блока в котором они были созданы. Для создания подобных методов используется выражение "my имя_метода".
  • Добавлен оператор "->&", позволяющий вызывать подпрограммы, находящиеся в лексической области видимости, так, как будто они являются методами. В сочетании с возможностью определения лексических методов новый оператор реализует функциональность, похожую на приватные методы.
  • Добавлен оператор присвоения "A ^^= B", выполняющий операцию "A = A XOR B".
  • Добавлена прагма "source::encoding", определяющая кодировку исходного кода. Для кода в кодировке ASCII можно указать "use source::encoding 'ascii'" (по умолчанию), а для UTF-8 - "use source::encoding 'utf8'", при этом последнее выражение эквивалентно выражению "use utf8". Интерпретатор выведет ошибку, если в коде, помеченном как ASCII, встречаются символы UTF-8, или если в коде, помеченном как UTF-8, используются escape-последовательности "\x{}". Для отключения проверки части кода можно использовать значение "no source::encoding". На практике, добавленная прагма может оказаться полезной для выявления случаев, когда разработчик забыл указать "use utf8" для кода в кодировке UTF-8.
  • В пространство имён "CORE::" добавлена функция chdir(). Например, теперь к данной функции можно обращаться как "&CORE::chdir($dir)" или "my $ref = \&CORE::chdir; $ref->($dir)".
  • Добавлено выражение 'no feature "apostrophe_as_package_separator"' для отключения поддержки использования символа " ' " в качестве разделителя имён пакетов (например, "My'Module'Var" вместо "My::Module::Var"). Изначально в Perl 5.42 планировалось удалить поддержку подобных разделителей, которые ранее были объявлены устаревшими, но в ходе обсуждений было решено сохранить данную возможность по умолчанию, но предусмотреть опцию для отключения.
  • В число возвращаемых возможностей переведена функциональность "switch" и оператор "~~", которые ранее были помечены устаревшими и были запланированы к удалению. Начиная с выпусков Perl 5.36 и 5.42 возможности "switch" и "~~" по умолчанию отключены при привязке кода к версиям языка (например, при указании "use v5.42"), но могут быть активированы выражениями 'use feature "switch"' и 'use feature "smartmatch"'.
  • Добавлена поддержка спецификации Unicode 16.0.


  1. Главная ссылка к новости (https://www.nntp.perl.org/grou...)
  2. OpenNews: Доступен язык программирования Perl 5.40.0
  3. OpenNews: Переполнение буфера в Perl, связанное с обработкой символов
  4. OpenNews: Уязвимость в Perl-модуле Spreadsheet::ParseExcel, используемая для компрометации Barracuda ESG
  5. OpenNews: Доступен язык программирования Perl 5.38.0 с поддержкой классов
  6. OpenNews: Релиз компилятора Rakudo 2023.04 для языка программирования Raku (бывший Perl 6)
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/63519-perl
Ключевые слова: perl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (107) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.13, wd (?), 01:05, 04/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    где-то в обломках 20+летней давности:

    sub all{@_==grep$_,@_}
    sub one{1==grep$_,@_}
    sub none{!grep$_,@_}
    sub any{!&none}

     
     
  • 2.29, Аноним (29), 08:17, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    WhiteDragon,ты? Нашёл твой qxp.pm недавно. ;)

    Ты где сейчас работаешь?

     
     
  • 3.42, wd (?), 10:00, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +4 +/
    миац местный админю
    а с кем имею честь?
     
     
  • 4.116, Аноним (116), 15:08, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Да так, аноним обычный :), просто вспомнил тебя из IRC.
     
     
  • 5.138, wd (?), 17:40, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    ну на #perl я по прежнему болтаюсь
     
  • 2.38, Жироватт (ok), 08:56, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну таки да. Почему бы и не засунуть на уровень языка действительно полезные макросы? (Да знаю я, что это процедуры, но фактически такие однострочники можно считать другой формой записи макросов, если это не обёртка)
     
     
  • 3.45, wd (?), 10:05, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    если мне склероз не изменяет, я их себе слепил увидев их в perl6, когда он только только
    и вроде бы я ниразу ими не воспользовался :)
    но то, что это засунут прямо в язык - это хорошо
    засунули бы еще бы чтото в духе:

    sub find(&@){no strict 'refs';local(*{(caller).'::a'})=\(my$a=$_[1]);&{$_[0]}||($a=$_)for(@_[2..$#_]);$a}
    sub first(&@){$_[0]->()&&return$_ for@_[1..$#_]}

     
     
  • 4.72, Аноним (-), 12:40, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Шикарный синтаксис!
    Прям все просто, понятно и совсем нет лишних закорючек.
    И эти люди гонят на другие языки...
     
     
  • 5.112, Аноним (112), 14:23, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Шикарный синтаксис!

    Как всегда, местные ыксперыды ничего кроме синтаксиса не видят. А я скажу, что самое плохое тут не синтаксис, а семантика. Хотя я не знаю перла, но определённые места выглядят явно подозрительно.
    >no strict 'refs';

    Тормоза придумали трусы.
    >local(*{(caller).'::a'})=

    Удачи в IDE воспользоваться поиском по коду.
    >$_[1]

    Экономия на аргументах в ущерб читаемости. Опять же, удачи в статическом анализе. Анонимных кортежей крайне желательно избегать, особенно если у элементов одинаковый тип. Иначе понять, что где лежит - не получится.

     
     
  • 6.134, wd (?), 17:27, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > что самое плохое тут не синтаксис, а семантика. Хотя я не
    > знаю перла, но определённые места выглядят явно подозрительно.
    >>no strict 'refs';
    > Тормоза придумали трусы.
    >>local(*{(caller).'::a'})=
    > Удачи в IDE воспользоваться поиском по коду.
    >>$_[1]
    > Экономия на аргументах в ущерб читаемости. Опять же, удачи в статическом анализе.
    > Анонимных кортежей крайне желательно избегать, особенно если у элементов одинаковый тип.
    > Иначе понять, что где лежит - не получится.

    если видишь no strict 'refs' значит до закрывающей блок скобки лучше ничего не трогать - это будет внутренняя магия
    вся эта кухня с выключением стрикта и дерганьем a из коллера - это вполне себе нормально для внутренних модулей
    ну у меня это тоже внутренний модуль
    в боевой код такое не идет, само собой

     
  • 5.165, Кошкажена (?), 23:48, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Шикарный синтаксис!
    > Прям все просто, понятно и совсем нет лишних закорючек.
    > И эти люди гонят на другие языки...

    Автор не зря побеждал в конкурсах по запутанному программированию на си.

     
  • 4.73, Аноним (73), 12:41, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > sub find(&@){no strict 'refs';local(*{(caller).'::a'})=\(my$a=$_[1]);&{$_[0]}||>>($a=$_)for(@_[2..$#_]);$a}
    > sub first(&@){$_[0]->()&&return$_ for@_[1..$#_]}

    У кого более забористый синтаксис: Rust или Perl?

     
     
  • 5.76, Аноним (-), 12:56, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > У кого более забористый синтаксис: Rust или Perl?

    Перл побеждает с большим отрывом.
    Синтаксису раста до него еще деградировать и деградировать...

     
     
  • 6.80, АнонимЯ (?), 13:11, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это лаконичнов. Вам не понять.
     
     
  • 7.85, Аноним (85), 13:32, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А, что тут непонятного?... Лаконичность ценой доп.рисков ошибок и нечитабельности другими, плохой читабельности другими хорошо знающими язык, как и ухудшением своей вычитки. Зато код чуть лаконичней...
     
     
  • 8.101, АнонимЯ (?), 13:53, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Как это доказать в логике или цифрах ... текст свёрнут, показать
     
  • 8.117, Аноним (117), 15:33, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Вы с другой стороны посмотрите, что бы наделать ошибок надо сперва хорошо по гра... текст свёрнут, показать
     
     
  • 9.135, wd (?), 17:28, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    я не, я не бросил, для меня перл - основной инструмент... текст свёрнут, показать
     
  • 5.81, wd (?), 13:15, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    у APL
    у перла же TMTOWTDI
    perlstyle гласит Just because you CAN do something a particular way doesn't mean that you SHOULD do it that way. Perl is designed to give you several ways to do anything, so consider picking the most readable one.

    в моем случае я такие однострочники шлепал просто в формате перочинного ножа, чтобы были под руками
    не нужно понимать что в них написано, считайте, что это уже компиленный бинарь

     
  • 5.105, Аноним (105), 13:57, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Самое забавное, что это как раз логичный и читаемый синтаксис, в отличие от раста.
     
     
  • 6.106, Аноним (-), 14:14, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Самое забавное, что это как раз логичный и читаемый синтаксис, в отличие от раста.

    Да-да, $#_ очень логично и очень читабельно)) Прям совсем не writeonly йезычог.
    Не зря попурность перла настолько упала.

     
     
  • 7.114, Аноним (105), 14:28, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    $#_ максимально читаемо, кроме шуток. В расте ты бросив один взгляд на код, не сможешь понять, что он делает.
     
  • 7.124, freehck (ok), 16:11, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >> Самое забавное, что это как раз логичный и читаемый синтаксис, в отличие от раста.
    > Да-да, $#_ очень логично и очень читабельно))

    Ну вообще-то да, читабельно. Нужно только мыслить в логике Perl.

    Смотри, значит, как это работает:
    - всё, что начинается на @ -- это массив
    - всё, что начинается на $ -- это скаляр
    - @_ -- это массив, который содержит все переданные в функцию аргументы
    - $#_ -- это скаляр, который содержит индекс последнего элемента массива @_
    - $_[$i] -- это скаляр, который возвращает $i-й элемент массива @_

    Таким образом, получаем вполне читаемый синтаксис:




    sub print_args {
      for (my $i = 0; $i <= $#_ ; $i++) {
        print "$_[$i]\n";
      }
    }



     
     
  • 8.126, Анонусс (-), 16:24, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Допустим логично Как это следует из предыдущих утверждений ... текст свёрнут, показать
     
     
  • 9.130, Аноним (112), 17:11, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вам плохо объясняют Переменные в перле содержит сигил и имя Сигил - это старнн... большой текст свёрнут, показать
     
     
  • 10.133, Сталин (?), 17:20, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    C 5 36 параметрам функций можно давать человеческие имена, а не распаковывать их... текст свёрнут, показать
     
  • 9.139, Аноним (105), 17:48, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    В баше что-то похожее, вроде ни разу проблем не возникало Ты просто знаешь, как... текст свёрнут, показать
     
  • 8.146, Someone (??), 19:52, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И как мне теперь ЭТО развидеть ... текст свёрнут, показать
     
  • 7.163, вымя (?), 23:07, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    $#_ как раз самое простое. А вот что такое ||>>? Как это вообще гуглить? У хаскелистов это хотя бы функцией было бы, которую можно в Hoogle поискать.
     
     
  • 8.168, Аноним (105), 00:51, 05/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Чатгпт уже придумали, не тормози ... текст свёрнут, показать
     
  • 5.119, Аноним (119), 15:48, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > У кого более забористый синтаксис: Rust или Perl?

    Ты шутишь что-ли, или не видел кода на Rust в глаза? У Rust синтаксис аналогичный плюсам, даже чуть проще.

     
  • 4.88, Аноним (88), 13:37, 04/07/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.122, Аноним (-), 16:01, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >sub find(&@){no strict 'refs';local(*{(caller).'::a'})=\(my$a=$_[1]);&{$_[0]}||>($a=$_)for(@_[2..$#_]);$a}
    >sub first(&@){$_[0]->()&&return$_ for@_[1..$#_]}

    Хитрожопый ты наш, ты же специально написал однострочники. Такие примеры ради лулзов прведены на Лурке. На самом деле, по-читаемости, синтаксис Перла намного лучше чем у Раста.

     
     
  • 5.125, Анонусс (-), 16:22, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > На самом деле, по-читаемости, синтаксис Перла намного лучше чем у Раста.

    Ахаха. Ну да, ну да.
    И это раст ругают за закорючки. Хоть в перловке почти весь код закорючки.

     
  • 5.136, wd (?), 17:37, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >>sub find(&@){no strict 'refs';local(*{(caller).'::a'})=\(my$a=$_[1]);&{$_[0]}||>($a=$_)for(@_[2..$#_]);$a}
    >>sub first(&@){$_[0]->()&&return$_ for@_[1..$#_]}
    > Хитрожопый ты наш, ты же специально написал однострочники. Такие примеры ради лулзов
    > прведены на Лурке. На самом деле, по-читаемости, синтаксис Перла намного лучше
    > чем у Раста.

    не, я это для себя писал - просто перочинный ножик, это было задолго до того патча бармина на лоре, который я, кстати, мгновенно разобрал (гуглите старые логи #perl руснета)
    погугли qxp.pm, там есть даже дичь, которая все операторы функциями делает, например после use qxp; можно сказать '*'->(\@a,\@b,\@c) и на выходе получить массив произведений $a[0]*$b[0]*$c[0] и так до конца самого жирного массива
    собственно там есть функция zip, которую я также подсмотрел в p6 на этапе его вылупления, однако же тамже автоматом есть и функция &,
    тобишь zip(\@a,\@b) это тоже самое, что и ','->(\@a,@b) ну или, если вдруг так больше нравится: &,(\@a,\@b)
    там даже есть функа с именем # которую как sub # не объявить, зато как *#=sub{} очень даже

    ну и до кучи предлагаю понять что за хрень и нафига функа yuki

     
  • 4.128, Аноним (128), 16:42, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Мне на собеседовании подсунули похожую мутатень, типа, где ошибка?
    С просил:
    - Это у вас так пишут?
    - Да. Это наш код. (С гордостью)
    - Прощайте.
     
     
  • 5.137, wd (?), 17:40, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Мне на собеседовании подсунули похожую мутатень, типа, где ошибка?
    > С просил:
    > - Это у вас так пишут?
    > - Да. Это наш код. (С гордостью)
    > - Прощайте.

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

     
     
  • 6.154, Аноним (119), 20:35, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > но как тест на скиловость, почему бы и да

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

    > лезть в которую не стоит - ну и хрен бы с ней

    Ха-ха, это прям определение любого кода не перле.

     
     
  • 7.169, wd (?), 01:04, 05/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    ну не знаю, меня такой код не пугает
    я могу писать как обслуживаемый код, так и не обслуживаемый
    в частности я могу лютую дичь писать просто для себя, как художник
    на полном серьезе у меня есть проэкты в которых всеравно никого никогда не будет и я просто отвожу душу: я пишу так, как писать ненадо
     
  • 2.118, Аноним (119), 15:45, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Какой же всё-таки выразительный, и при этом отвратный язык. Я очень рад что прошел в юности (в нулевых) через коммерческую разработку на нём, это много дало в понимании того как не надо делать. Единственная моя ошибка с этим связанная после - я потом (в десятых, уже в нормальной компании) вызвался переписывать легаси с перла (потому что был один из немногих в компании кто этот перл ещё помнил). Вот это конечно был ад, израиль и выгорание. Надо было сказать что никакого перла я уже не помню, и ищите любых оставшихся в конторе причастных к тому что это было допущено в прод, и пусть они сами переписывают как хотят.
     
     
  • 3.166, Кошкажена (?), 23:50, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот это конечно был ад, израиль и выгорание.

    Сейчас тебе любой ИИ это сделает без проблем.

     

  • 1.16, Аноним (16), 01:17, 04/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Год 2025й от рождества христова, кодеры всё ещё не определились с кодировками файлов. Когда определятся, там уже и о строках подумать можно будет.

    Впрочем, booking.com наглядно показал, что язык реализации — десятое дело для любого коммерчески успешного проекта. Жаль, до кодеров это дойдёт приблизительно никогда.

     
     
  • 2.47, Соль земли2 (?), 10:11, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Может я хочу файл с кодом сразу в нескольких кодировках CP1251/KOI8-R/UTF-8. Технически это возможно. Но нужно научить интерпретатор определять их на ходу.
     
     
  • 3.70, Аноним (-), 12:14, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Технически это возможно.

    Возможно, но зачем?
    Для чего вообще такое может понадобится? Какой реальный сценарий?

     
  • 3.129, Аноним (16), 17:00, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Может я хочу файл с кодом сразу в нескольких кодировках

    Я про продакшен, а не про локалхост очередного Тэрри Дэвиса.

     
  • 3.170, wd (?), 01:06, 05/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    use Encoding ?
    не пробовал на лету менять ничего конечно, я, если за пределы ascii выхожу, то это utf8, соответсвенно у меня только use utf8 и все
     
  • 2.120, Аноним (119), 16:00, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ничего себе Как раз наоборот - они сейчас тратят деньги и время чтобы перепи... большой текст свёрнут, показать
     
     
  • 3.131, Аноним (16), 17:13, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Именно так. Главное, что проект коммерчески успешен, благодаря чему у компании есть деньги для любых переписываний на любых языках. В отличие от всего того, что не взлетело, хоть и было написано на самом правильном языке с самой правильной архитектурой. А секрет прост: людям надо решение их проблем, такое, чтобы было дешевле заплатить за него, чем мучаться самому. Как ни крути, язык программирования на успех если и влияет, то весьма опосредованно.

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

    Начал с хорошего понимания сути проблемы…

    > только такое Perl для прода и могло выбрать)

    Но не удержался и скатился до ad hominem. Почему? Ну про это классики психологии много писали, повторяться не буду.

     
     
  • 4.151, Аноним (119), 20:22, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Именно так. Главное, что проект коммерчески успешен, благодаря чему у компании есть деньги для любых переписываний на любых языках

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

     

  • 1.21, Самый Лучший Гусь (?), 01:30, 04/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Интересный язык с сомобытными идеями который к сожалению уже уходит в разряд ретро

    Сейчас его место занимает python 3

     
     
  • 2.32, Аноним (32), 08:31, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Nim
     
     
  • 3.44, Кошкажена (?), 10:04, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, они новую версию пилят, снова все ломая.
     
  • 3.152, Аноним (119), 20:26, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Nim (zig, hare и т.д.) это игрульки отдельных разработчиков, без библиотек, сообщества и цели. Прод на них не будут писать никогда.
     
     
  • 4.167, Кошкажена (?), 23:51, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Прод на них не будут писать никогда

    Ну на zig есть bun и tigerbeetle, притом второй вроде как в проде.

     
  • 2.48, Аноним (48), 10:17, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Могу ошибаться, то Питон занял место не своё и фронтенд и бекенд. Везде один Питон.
     
     
  • 3.50, Аноним (50), 10:39, 04/07/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
     
  • 4.54, Аноним (48), 10:59, 04/07/2025 Скрыто ботом-модератором     [к модератору]
  • –1 +/
     
  • 3.107, anonymos (?), 14:15, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    class Test:
        x = 0

        def clsx(self):
            Test.x += 1

        def objx(self):
            self.x += 2

    ax = Test()
    bx = Test()

    ax.clsx()
    ax.objx()

    print("ax.x =", ax.x, "<= значение явно не корректное")
    print("bx.x =", bx.x)

     
  • 2.113, Аноним (112), 14:26, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >который к сожалению уже уходит в разряд ретро

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

     
  • 2.121, Аноним (119), 16:01, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Интересный язык с сомобытными идеями который к сожалению уже уходит в разряд ретро

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

     
  • 2.127, Анонусс (-), 16:27, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > сомобытные идеи

    это уже что-то из сленга рыбаков?

    > который к сожалению уже уходит в разряд ретро

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

     

  • 1.23, Аноним (23), 06:11, 04/07/2025 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     
  • 1.24, user90 (?), 07:03, 04/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Господа забывают, что такое Perl. А это Practical Extraction and Report Language, и в этой области он по прежнему лучший!
     
     
  • 2.26, Аноним (26), 07:19, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А это уже область ИИ-агентов. Попробуй скормить данные Grok'у, тебе понравится.
     
     
  • 3.30, Аноним (29), 08:18, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Гроку 10гб не скормить. Ему не понравится.
     
     
  • 4.43, _kp (ok), 10:02, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Когда то и компы были гигантские, выделенную подстанцию требовали. И с 640кб были.
    Будет подобное и локально.
     
  • 4.143, Аноним (26), 19:42, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Лоh и в африке лоh. Вместо того чтобы использовать возможность, вечно ищет оправдания для ничего неделания.
     
  • 3.36, Жироватт (ok), 08:54, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Который настолько ЭТИЧЕН, что откажется обрабатывать любые, не утверждённые генеральной линии штатовских партий, данные?
    Или который, в отличие от тупого скрипта, любит, умеет и практикует галлюцинации?

    Не, пасиб.

     
     
  • 4.132, Аноним (16), 17:16, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну пользуйся гомоморфным шифрованием, если боишься что тебе за данные Обама в подъезде лампочки снова бить начнёт.
     
     
  • 5.140, Аноним (112), 18:36, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Это не поможет. Нужна модель без цензуры, а не просто канал для передачи данных.
     
  • 5.144, Dzen Python (ok), 19:49, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что поделать - *правильно* обученный, на *правильном* датасете *правильных* данных ИИ-агент в отличие от мифического "Обама-в-парадной" уже существует и уже *правильно* толкует индусам в этих ваших твиттерах новости
     
  • 2.28, Аноним (28), 08:15, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Поэтому, ненужно его пихать в другие области.
     
     
  • 3.31, user90 (?), 08:24, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но "все — текст" ;)
     
     
  • 4.74, Аноним (73), 12:44, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Регекспы уже давно есть во всех языках.
     
  • 2.123, Аноним (119), 16:02, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да нет конечно. Нет в нём ничего специфического ни про extraction, ни про report. Регулярки  и принты есть в любом ЯП, и пользоваться ими проще.
     

  • 1.46, Кошкажена (?), 10:05, 04/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    class Point {
           field $x :reader :writer :param;
           field $y :reader :writer :param;
       }
       my $p = Point->new( x => 20, y => 40 );

    А с каких пор в перле классы были? Мне с пеной у рта доказывали местные экперты, что "не нужно", есть bless!!

     
     
  • 2.60, 1 (??), 11:33, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > А с каких пор в перле классы были?

    Дык с 5ки и начались ...
    Посмотри на любой модуль - можно как класс использовать, можно вызовом функций.

     
  • 2.71, wd (?), 12:22, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    прямо вот class завезли относительно недавно
    нафига он нужен - я не понимаю
    bless же есть
     
     
  • 3.115, Кошкажена (?), 14:30, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > прямо вот class завезли относительно недавно
    > нафига он нужен - я не понимаю
    > bless же есть

    Ну видмо все устали делать вид и завезли привычный синтаксис?

     
     
  • 4.173, wd (?), 01:12, 05/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    которым никто не пользуется всеравно :)
    откровенно говоря, я досихпор пишу так, что большая часть кода будет работать и на 5.6
    хотя use v5.12 или use v5.14 у меня давно в порядке вещей
    в первую очередь оно включает стрикт, во вторую - дает say, который я всеравно кроме как в perl -E не пользую, ну и наверное силу земли
     
  • 2.175, wd (?), 05:28, 05/07/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.49, Аноним (48), 10:23, 04/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Сабж сложен в изучении?
    Много вакансий на сабже?
    Сколько платят за знание сабжа?
     
     
  • 2.51, Аноним (50), 10:41, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В Перле сложно примерно ВСЁ. :) Но при этом это по-прежнему язык, кратно лучший похапэхи.
     
     
  • 3.62, 1 (??), 11:37, 04/07/2025 Скрыто ботом-модератором     [к модератору]
  • +2 +/
     
  • 3.75, Аноним (73), 12:48, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    При том, что, как и в Похапехе, в глазах пестрит от этих $.
    Вот если бы з/п перлопргера так пестрела этими значками, то тогда можно было бы мириться.
     
  • 3.103, Аноним (103), 13:55, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не сложнее, чем делать сайты на ассемблере.
     
     
  • 4.171, Аноним (171), 01:06, 05/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    У сайтов на ассемблере, кстати, есть одно преимущество - их пишут под одну архитектуру(целевая у сервера), в отличии от всякого прикладного, где несколько ос, и кроме х86 могут быть армы какие нибудь.
    Ну и про производительность не стоит забывать.
     
  • 2.52, Аноним (52), 10:43, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Обычно при выборе ЯП я оплату ставил на последнее место.
    Например, мне тошнит php и нравится rust
     
     
  • 3.53, Аноним (48), 10:58, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ну я вообще мало знаю любителей PHP. Но Rust не фанат, мне всё что содержит в названии C нравится: СИ, С++, С#, 1C.
     
     
  • 4.63, 1 (??), 11:39, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > не всё что содержит в названии C нравится: СИ, С++, С#, 1C.

    Поржал, спасибо ! Только COBOL забыл :-).

     
     
  • 5.68, Аноним (48), 11:53, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не, ну если первые два учил во времена учёбы, потом решил, вот недавно начал интересоваться 1С.
     
  • 5.69, Аноним (48), 11:55, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Слышал про Соболь, но никогда не интересовался, видимо не очень распространённый.
     
  • 4.147, Илья (??), 19:54, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >С#

    Лучшее, что сейчас есть на рынке

     
  • 4.177, wd (?), 06:01, 05/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    про 1с это хорошо... вспомнил и нарыл пару зарисовок:

    #!/usr/bin/perl
    use feature 'say';
    use utf8;
    sub один(){1}
    sub два(){2}
    sub сказать{say @_}
    sub если(&@){my %if=(if=>@_);if($if{if}->()){$if{then}->()}else{$if{else} && $if{else}->()}}
    sub то(&@){then=>@_}
    sub иначе(&){else=>@_}

    #сказать "1с ничто - перл все";

    если { один == 2 } то { сказать ага } иначе { сказать неа };
    если { один == 1 } то { сказать угу };
    если { два == 1 } то { сказать ога };

    ------------
    #!/usr/bin/perl
    use utf8;
    sub функа(&$){*{$_[1]}=$_[0]}
    sub называется($){$_[0]}


    функа {print @_} называется тест;

    тест(123);

     
  • 2.58, аролп5 (?), 11:14, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Идём на hh и смотрим. 80+ вакансий и ЗП 200к+. Поэтому пока лучше учить java/kotlin
     
     
  • 3.78, Аноним (78), 13:02, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    А что лучше, Java или 1с?
     
  • 3.82, wd (?), 13:22, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +3 +/
    а вы не задумывались, почему их так много и висят они годами?
     
     
  • 4.162, 12yoexpert (ok), 23:04, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    рожай уже свою глубокую мысль
     
  • 4.176, woof (?), 05:53, 05/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    "Почему долго висят" - потому что в нашей стране очень мало сильных специалистов
    "Почему их так много" - потому что они востребованы
     
  • 2.83, wd (?), 13:24, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +2 +/
    его нельзя изучать, перлом нужно проникнуться, нужно научиться думать на перле, разговаривать на перле
     
     
  • 3.111, Аноним (-), 14:18, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > перлом нужно проникнуться, нужно научиться думать на перле, разговаривать на перле

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

     
  • 3.164, вымя (?), 23:23, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > разговаривать на перле

    Напомнило историю про мальчика, который научился ПЮГЦНБЮПХБЮРЭ МЮ KOI-8

     
  • 2.84, ptr (ok), 13:31, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Сабж сложен в изучении?

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

    > Много вакансий на сабже?

    Немного, так как новых разработок на нем почти не ведется. Но есть огромный пласт легаси, который надо поддерживать.
    С точки зрения перспективы, самая веселуха начнется лет через 10, когда близость 2038 года потребует адаптации множества легаси.

    > Сколько платят за знание сабжа?

    В среденем, явно больше чем за Python или js. Что, собственно говоря, объясняет, почему для новых разработок он не востребован. Стоимость разработки на Perl получается выше, чем на Python или js. А производительность у Perl ниже.

    В некотором смысле, сейчас ситуация с Perl напоминает ситуацию с COBOL и RPG всего лет 20 назад.

     
     
  • 3.89, Аноним (48), 13:38, 04/07/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    RPG для меня это role play game, ЯП  с таким названием впервые слышу.
     
     
  • 4.172, Аноним (171), 01:10, 05/07/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.142, Аноним (-), 19:40, 04/07/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > При подготовке нового выпуска было изменено около 280 тысяч
    > строк кода (без документации и автоматически сгенерированного
    > кода - 93 тысячи)

    Нет бы написать "При подготовке нового выпуска было изменено около 93 тысяч строк кода (с документацией и бойлерплейтом - 280 тысяч)"

    Но... сам себя не похвалишь - никто не похвалит.

     
     
  • 2.174, Аноним (171), 01:12, 05/07/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Если это делали мясные мешки - уважение, в наш век ии агентов это уже подвиг.
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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