The OpenNET Project / Index page

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

Доступен язык программирования Perl 5.38.0 с поддержкой классов

03.07.2023 13:16

После 13 месяцев разработки опубликован релиз новой стабильной ветки языка программирования Perl - 5.38. При подготовке нового выпуска было изменено около 290 тыс. строк кода, изменения затронули 1500 файлов, в разработке приняли участие 100 разработчиков.

Ветка 5.38 выпущена в соответствии с утверждённым десять лет назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.38.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.38.0. Одновременно с выходом Perl 5.38 прекращена поддержка ветки 5.34, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.39, на базе которой в мае или июне 2024 года будет сформирован стабильный релиз Perl 5.40, если не будет принято решение перейти к нумерации 7.x.

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

  • Предложен новый экспериментальный синтаксис создания классов, в которых могут определяться поля и методы, привязанные к каждому экземпляру класса. Классы расширяют возможности работы с объектами в Perl и позволяют использовать более близкий к другим языкам программирования синтаксис (ранее подобие объектной модели в Perl 5 основывалось на применении иерархии, привязанной к именам пакетов).

    Определение классов похоже на создание пакетов при помощи блока "package", за исключением необходимости инициализации класса с запуском конструктора ("my $object = My::Class->new(%arguments);") для создания отдельного экземпляра класса, с которым в последующем ведётся работа. Для выполнения своего кода во время инициализации предложен новый блок "ADJUST", напоминающий блок "BEGIN". Возможно наследование классов, используя атрибут ":isa".

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

    
       use feature 'class';
    
       class Example::Base {
           field $x;
       
           ADJUST {
               $x = "Hello, world";
           }
    
           method print_message {
              say $x;
           }
     
    
       }
    
       class Example::Subclass :isa(Example::Base) {
           ...  
       }
    
       Example::Base->new->print_message;
    
  • В предупреждения, выводимые при использовании в коде устаревших возможностей, добавлена привязка к подкатегориями, которые могут отключаться по отдельности. Например, для отключения вывода предупреждения об использовании конструкции goto, но сохранении остальных предупреждений, можно указать "no warnings 'deprecated::goto_construct'".
  • Предложен новый служебный хэш "%{^HOOK}", позволяющий создавать функции-обёртки для ключевых слов. В текущем виде доступны для определения две обёртки - "require__before" и "require__after", позволяющие привязать обработчики, вызываемые на разных стадиях обработки ключевого слова "require".
    
        my $old_hook = ${^HOOK}{require__before};
        local ${^HOOK}{require__before} = sub {
           my $old_hook_ret;
           $old_hook_ret = $old_hook->($name) if $old_hook;
           warn "Requiring: $name\n";
           ...
        };
    
  • Добавлена новая переменная окружения PERL_RAND_SEED, через которую можно выставить свою затравку для генератора псевдослучайных чисел (например, для достижения повторяемого поведения во время тестирования).
  • Добавлена поддержка операторов "//=" и "||=" для определения значений по умолчанию аргументов функций. Выставленное через оператор "//=" значение применяется, если аргумент не определён (undef), а оператор "||=" применяется, если аргумент содержит логическое значение "false" или отсутствует).
    
       sub foo ($name //= "world") {
           print "Hello, $name";
       }
       sub foo ($x ||= 10) {
           return 5 + $x;
       }
       foo(undef);  # будет выведено "Hello, world"
    
  • Поддержка спецификации Unicode обновлена до версии 15.0.
  • В некоторых случаях внутри блоков "defer" (отложенные блоки, выполняемые в самом конце) и "finally" (блок с кодом, выполняемый в самом конце конструкции try/catch) разрешено использование оператора "goto". Применение goto допускается только при использовании постоянных меток перехода, которые не выходят за пределы блока.
    
       use feature 'defer';
    
       defer {
         goto LABEL;
         print "This does not execute\n";
         LABEL: print "This does\n";
       }
    
  • На стадии компиляции обеспечено выявление недопустимого выхода из блоков defer или finally при помощи операций return или goto. Ранее подобные запрещённые манипуляции выявлялись только в момент выполнения проблемного кода, а теперь ошибка выводится сразу.
  • Для выполнения блоков кода внутри regex-шаблона добавлена конструкция "*{ ... }", которая эквивалентна конструкциям "?{ ... }" и "??{ ... }", за исключением того, что её использование не приводит к отключению оптимизации в движке регулярных выражений, из-за чего повышается производительность, но поведение становится менее стабильным.
    
       "good" =~ /g(?:o(*{print "o"}))*d/;
    
  • Размер квантификаторов регулярных выражений (REG_INF) увеличен с 65 536 до 2 147 483 647 (c U16_MAX до I32_MAX), что позволяет использовать конструкции вида "/(?:word){1000000}/".
  • Добавлены новые функции optimize_optree и finalize_optree для работы с фрагментами внутренней структуры optree.
  • В движке регулярных выражений реализована новая переменная ${^LAST_SUCCESSFUL_PATTERN}, при помощи которой можно получить доступ к последнему успешно выполненному шаблону.
    
       if (m/foo/ || m/bar/) {
           s/${^LAST_SUCCESSFUL_PATTERN}/PQR/;
       }
    
  • Добавлена поддержка категории локали LC_NAME, которую можно указывать при вызове "setlocale".
  • Изменения, нарушающие совместимость: В функции readline() и операторе "<>" после ошибки при обработке потока прекращена очистка флагов, сигнализирующих конец файла или ошибки. Прекращено выполнение блоков INIT после вызова exit() в секции BEGIN.
  • Объявлено устаревшим использование символа " ' " в качестве разделителя имён пакетов.


  1. Главная ссылка к новости (https://www.nntp.perl.org/grou...)
  2. OpenNews: Доступен язык программирования Perl 5.36.0
  3. OpenNews: Perl 7 плавно продолжит развитие Perl 5 без нарушения обратной совместимости
  4. OpenNews: Руководство Perl приостановило работу команды, следящей за соблюдением кодекса поведения
  5. OpenNews: Анонсирован Perl 7
  6. OpenNews: Анализ рисков при воплощении в жизнь инициативы Perl 7
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/59373-perl
Ключевые слова: perl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (122) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 13:42, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +9 +/
    > повышается производительность, но поведение становится менее стабильным.

    это начало конца

     
     
  • 2.12, Аноним (12), 14:30, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Никто тебя за яйца не тянет использовать неуклюжую конструкцию, просто игнорируй. Регэкспы и перл - это нерушимая связка.
     
  • 2.35, n00by (ok), 16:18, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    может уменьшить стабильность, в смысле, что количество вызовов движка р... большой текст свёрнут, показать
     
     
  • 3.71, Аноним (71), 20:58, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если результат выполнения один и тот же - какие аргументы к отключению оптимизации?

    Это идиотский подход.

     
     
  • 4.106, n00by (ok), 09:15, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Хотите, что бы я второй раз поискал за Вас? Тогда как на Perl из нас двоих пишете лишь Вы.

    Это идиотский подход.

     
  • 2.64, Golangdev (?), 19:20, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > поведение становится менее стабильным

    вот в джаве всё стабильно

    используйтие её / котлин

     
     
  • 3.69, Аноним (69), 20:10, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Уж лучше всех джавистов на Колыму...
    Почему экологи не присмотрятся к платформам разработки? Вот где неконтролируемый углеродный выброс!
     
     
  • 4.86, Golangdev (?), 00:23, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Пруфы или нет никакого выброса
     

  • 1.2, Аноним (2), 13:52, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +17 +/
    Это они вовремя успели классы как раз в моде.
     
     
  • 2.3, rshadow (ok), 13:59, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Написано что экспериментально. Возможно еще не примут.
     
     
  • 3.5, Аноним (2), 14:05, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Про один экспериментальный безопастный язык тоже так писал. Но эксперимент затянулся.
     
     
  • 4.169, freecoder (ok), 12:03, 07/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Эксперимент удался
     
  • 2.13, Аноним (12), 14:30, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Можешь не язвить, классы в Перле существуют уже лет 20.
     
     
  • 3.16, Аноним (2), 14:39, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +5 +/
    В ванильном С тоже тогда есть классы. Зачем тогда С++?
     
     
  • 4.21, анонимус (??), 14:56, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    С++ и не нужен.
     
  • 4.36, n00by (ok), 16:23, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что бы не удивлять транслятор Си конструкцией struct { private: };
     

  • 1.4, Аноним (4), 14:00, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    Перл и ООП это всегда была шутка юмора. Видимо, поклонники языка (зря что ли учили) закапывать не спешат, вот, начали активно работать над закапыванием сами, чтобы даже до самых тугих дошло. Кому нужен перл без goto, опять же? Никому.
     
     
  • 2.6, Sadok (ok), 14:12, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    goto там можно придумать, но за это отрубают руки, вообще то
     
     
  • 3.8, Аноним (4), 14:23, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Примерно, как в goto в питоне? А так, естественно, уже несколько поколений выросло с лапшой на ушах, будто бы нечитаемая лапша в коде это благо, а goto -- вот, вселенское зло. Но споры об этом ентри левел веб-программистов.
     
     
  • 4.17, Аноним (2), 14:41, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Goto органично смотрятся только в asm.
     
     
  • 5.72, Илья (??), 21:34, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Как насчёт гото посреди нечитаемой лапши?
     
     
  • 6.113, Анони (?), 11:20, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Посреди нечитаемой лапши в asm тоже органично смотрится.
     
  • 4.19, Аноним (19), 14:45, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    goto в 100% случаях только в лапше и применяется. Или ты можешь привести обратный пример?
     
     
  • 5.20, Аноним (4), 14:52, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Логика может быть лапшой, от этого никуда не деться. И goto всего лишь эффективный способ из неё выбраться, в ряде случаев повышающий читаемость и качество кода, без лишних условий, дублирования и создания дополнительных мест для ошибок в будущем (я не утверждаю, что использовать goto повсюду -- хорошая идея, но я такого применения и не встречал).
     
     
  • 6.46, Витюшка (?), 17:06, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Посмотри как сделано в zig. Посмотри код. Goto нет и не нужен.

    Выбраться можно из любого блока вложенности.

     
  • 6.55, Аноним (19), 17:42, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Логика может быть лапшой, от этого никуда не деться.

    Выносить код в функции религия запрещает?

    > И goto всего лишь эффективный способ...

    ... добавить еще больше лапши.

    В общем, классика сишного жанра: бодяжим в одну функцию всю логику вместе с инициализацией и освобождением ресурсов, а потом "повышаем читаемость" с помощью goto ибо "никуда не деться".

     
  • 5.23, Аноним (23), 14:59, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    лапша была придумана когда пытались избавиться от goto
     
  • 5.38, n00by (ok), 16:25, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    goto применяется в КА.
     
  • 5.51, OpenEcho (?), 17:27, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > goto в 100% случаях только в лапше и применяется. Или ты можешь привести обратный пример?

    Ну вот, теперь анонимы с опеннета и Торвальдаса лапшегоном окрестили.
    В кернел взгляни, "специалист"...

     
     
  • 6.60, Аноним (19), 17:58, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Внезапно, да. Когда сишники традиционно сваливают в одну функцию управление ресурсами, логику и обработку ошибок - это называется лапша. И без goto из такой портянки не вылезти.

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

     
     
  • 7.63, Аноним (4), 18:23, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет, просто это эффективно.
     
  • 7.88, OpenEcho (?), 01:04, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > это называется лапша. И без goto из такой портянки не вылезти.

    Самоутвердился? Молодец, давай еще посмеши :)


    > Не удивительно, что удел таких мастеров - копошиться в embedded помойках за гроши.

    Ну, если пол лимона зелени в год для тебя  гроши, тогда базара нет, мистер анонимный "миллионер" :)

     
     
  • 8.94, Аноним (19), 05:13, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ахаха, за сишного embedded кодера А чего не пять лимонов ... текст свёрнут, показать
     
     
  • 9.123, OpenEcho (?), 14:40, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Кодеры это в твоей поляне, а вот инженера со стажем и не на твоей поляне - они м... текст свёрнут, показать
     
     
  • 10.133, Аноним (19), 18:34, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Чел, ты хотя бы на цифры в вакансиях по миру посмотрел ... текст свёрнут, показать
     
     
  • 11.134, OpenEcho (?), 19:04, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Мне достаточно тех, кого я знаю лично... текст свёрнут, показать
     
  • 6.140, FSA (??), 20:11, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вот, теперь анонимы с опеннета и Торвальдаса лапшегоном окрестили.
    > В кернел взгляни, "специалист"...

    Ну низкоуровневое программирование оно именно такое. Там по другому никак. Если писать ещё ниже, на ассемблере, там вообще нет другого способа куда-то перейти, кроме как воспользоваться меткой. Но это не означает, что goto хорошая практика. Как и не означает, что C плохой язык. C такой, какой есть, и он реально заставляет вместо задачи думать о логике каждого действия. Ты повышает эффективность использования железа, но уходит много времени на разработку. Для человеческого мозга лучше язык без goto, потому что текст такой проще воспринять.

     
     
  • 7.148, OpenEcho (?), 12:12, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > повышает эффективность использования железа, но уходит много времени на разработку.

    Bullshit.

    Гораздо проще и для железа и человека перейти то goto к метке, (как правило в случае где нужна обработка ошибок и завершение) чем выекиваться с "как в школе учили", создавая дорогие(!) вызовы функций обработки исключений.

    >  Для человеческого мозга лучше язык без goto, потому что текст такой проще воспринять.

    И чем отличается прыгание по тексту к функциям/классам/исключениям вместо меток? В вариантах без goto виртуальной воды больше, которую надо процессировать башке, вместо того , чтобы просто следовать прямый логике. Чем проще - тем надежнее

     
     
  • 8.155, Аноним (19), 20:16, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Мдэ Компилятор - дурак, и о профайлере мы не слышали Чевствуется матерый сиш... текст свёрнут, показать
     
     
  • 9.158, OpenEcho (?), 21:27, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Все прально, зачем своей башкой думать, we moving fast, we breaking things ... большой текст свёрнут, показать
     
     
  • 10.165, Аноним (19), 02:54, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Компилятор лучше тебя знает, как оптимизировать код под конкретную платформу Он... текст свёрнут, показать
     
  • 3.76, абв (?), 23:37, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В перле за готу отрубают?
     
  • 2.10, Аноним (12), 14:28, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это ты и ИТ - шутка юмора, а ООП в Перле будет помощнее даже C#! Просто клоуны ещё не изучали тему, а уже строчат комменты.
     
     
  • 3.14, Аноним (4), 14:32, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Может, там ещё и параллельные вычисления есть, а то и асинхронные генераторы, да помощнее, чем в додиезе? Уж чем-чем гордиться, так это не самой убогой частью языка, неклоун ты наш дорогой.
     
     
  • 4.33, 1 (??), 15:58, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А что не так с параллельными вычислениями в Perl ? Явных мутексов нет ?
    А так - УМВР.

    P.S. Если нет привычных примитивов, это не означает, что нельзя построить асинхронное выполнение. Оно даже в PL/1 есть и в Fortran.

     
  • 4.151, Аноним (151), 14:09, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Читайте Higher Order Perl - там примеры.
     
  • 2.11, Здрасьте (?), 14:28, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Прочитай про bless.
     
     
  • 3.15, Аноним (4), 14:33, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Помню прекрасно, это днище.
     
     
  • 4.78, Даже я это застал (?), 23:51, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Роясните, пжлст, сфига оно днище?
     
  • 2.109, Зуй (?), 09:58, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    В сабже возможно выходить из циклов произвольной вложенности, так что абсолютной необходимости в данном операторе нет
    Другое дело, что инлайн-функций нет тоже, для критических случаев производительности это может быть критично, но интерпретируемые языки в оных мало подходят
     
  • 2.149, Pahanivo (ok), 12:46, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    "Поклонники языка" - что это за термин такой? У языков своя ниша - и Perl, если такие посмотреть таки из чего состоит название, с своей нише весьма хорош.
    ПыСы: goto для дебилов.
     

     ....большая нить свёрнута, показать (34)

  • 1.7, pashev.ru (?), 14:13, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > Добавлена новая переменная окружения PERL_RAND_SEED, через которую можно выставить свою затравку для генератора псевдослучайных чисел (например, для достижения повторяемого поведения во время тестирования)

    Или для создания бэкдоров.

     
  • 1.9, Аноним (12), 14:26, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Ну вот, а говорили, что язык мёртв! ЕЩЁ КАК ЖИВ! :)
    В своё время, когда я писал Perl-ASP страницы, это был шикарный язык! Высокоуровневые конструкции - просто сказка.

    И это... что значит "с поддержкой классов"?! ОНИ ТАМ ВСЕГДА БЫЛИ! Причём не просто какие-то неуклюжие Жаба-классы, а классы в стиле Смоллтока - динамичные настолько, что ты мог даже ПОМЕНЯТЬ ПРЕДКА(!). У Перла очень мощная система классов, но она же может сыграть злую шутку с теми, кто слишком увлекётся его динамическими возможностями.

    Так или иначе, Перл для веба рулит неимоверно. Да и скрипты для Линукса никто не отменял - на перле их писать куда проще, чем на туn0рылыx башах.

     
     
  • 2.66, ыы (?), 19:36, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Перл жив именно благодарят ому что он чертовски стабилен и совместим.
    Но с новыми смузи-идеями ему нечего делать в системной части.
    И собственно все...Писец...
     
  • 2.89, _kp (ok), 02:28, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Преимущества над башем очевидны, при написании "чуть более сложных" скриптов.

    Но каковы преимущества по сравнению с Питоном?
    (при знании Питона лезть в Перл великого смысла нет, но для кругозора интересно)

     
     
  • 3.107, 1 (??), 09:30, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Не ломается скрипт, при занесении лишнего пробела (или не дай Б-г таба).

    Ну и что было написано 20 лет назад, до сих пор, без проблем, выполняется.

    А, если серъёзно, учи гошечку или язык, которого нельзя называть. Ну если, конечно, по работе не требуется.

    А сравнивать COBOL с Pascal оставь дидам.

     
     
  • 4.159, fly (??), 22:10, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > не ломается скрипт, при занесении лишнего пробела (или не дай Б-г таба).

    99% мух не могут ошибаться

     
  • 3.112, Анони (?), 11:18, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Для кругозора надо лезть в Хаскель.
     
     
  • 4.128, Аноним (151), 16:28, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Что же такое есть в хаскеле, чего нет в перле? Кроме очевидных артефактов статической типизации, на уровне концепций.
     

  • 1.18, Пряник (?), 14:42, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    После питона всё шляпа. Нигде нельзя просто взять и sorted(print) или sorted.__doc__ или str.__dict__ и сразу понять что это и с чем едят, а не гуглить пол дня, чтобы понять почему в cout << вывод текста через оператор СДВИГА
     
     
  • 2.34, beck (??), 16:01, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Очень долго писал скриптоту на перле и, соглашусь, после питона перл шляпа.

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

     
     
  • 3.42, Аноним (42), 16:43, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Кто тебя заставляет писать однострочники? За однострочники в принципе нужно казнить, вне зависимости на каком языке они написаны. Перл сам по себе отлично читается. Да и быстрее чем Пайтон.
     
     
  • 4.73, Аноним (73), 22:12, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ты сам себе про однострочники додумал, проснись. Когнитивная нагрузка наворочена на ровном месте, потому и сложнее питона читается
     
  • 4.115, beck (??), 12:59, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Кто тебя заставляет принимать телепатемы из астрала У меня всякое разное от до ... большой текст свёрнут, показать
     
     
  • 5.116, beck (??), 13:00, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    И теперь поверх ещё каких-то странных синтаксисов навернули. Перл и раньше был почти брейнфак, а теперь и подавно...
     
  • 4.119, _kp (ok), 13:24, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Однострочники не только небольшой функционал утрамбованный в одну строку, за что... большой текст свёрнут, показать
     
  • 2.37, Челик с гитлаба (?), 16:25, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем тебе это понимать? Просто так придумали, используй как есть. А про перегрузку тебе любой первокурсник рассказать сможет без гугления.
     
     
  • 3.41, Пряник (?), 16:40, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Без понимания можно очень долго долбиться в стену, когда рядом дверь.
     
  • 2.40, Аноним (42), 16:40, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > гуглить пол дня

    Открой для себя ChatGPT. Например, в нашей компании (и во многих других) умение работать с ChatGPT уже является обязательным требованием. Да, за тебя он не напишет код полностью, но сэкономит 90% времени, плюс апнишь свои скиллы до невиданных высот.

     
     
  • 3.44, Аноним (44), 16:49, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Советовать пользоваться пропреитарной, платной технологией, ну такое...
    Тем более он еще и хуже open assistant
     
  • 3.45, Аноним (2), 16:50, 03/07/2023 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И чего перлу эту ваше ЖПТ всё равно никто нормально не обучал.
     
  • 3.127, Аноним (127), 16:19, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Обязательным умением при работе с этим чудом является способность не верить этой... большой текст свёрнут, показать
     
     
  • 4.129, Аноним (151), 16:49, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Надо каким-то способом узнать, что это за фирма и обходить их десятой дорогой.
     
  • 3.130, BeLord (ok), 17:07, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Посмотрим, что будет с мозгами у разрабов, которые излишне увлекаются допингом через 10 лет.-)))
     
  • 3.132, BeLord (ok), 17:21, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    К сожалению, я не могу написать код на ассемблере, так как я являюсь искусственным интеллектом и не имею возможности писать код на этом языке. Однако, я могу помочь вам с другими вопросами, если у вас есть какие-либо другие вопросы.(c)
    Это к вопросу, а что это ИИ может-)))
     
     
  • 4.168, ыы (?), 08:28, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    К сожалению мое утверждения что я являюсь искусственным интеллектом не является моим собственным выводом на основании эмпирическиъх данных, а служит исключительно демонстрацией человекоподобного построения фраз.
     

  • 1.62, Аноним (62), 18:16, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    это perl++ ?
     
  • 1.67, wd (?), 19:48, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Объявлено устаревшим использование символа " ' " в качестве разделителя имён пакетов.

    сначала сломали Acme::EyeDrops
    теперь вот и Acme::don't сломают

     
  • 1.68, Liin (ok), 20:06, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поздно они эти классы допиливают, конечно. Надо было еще 10 лет назад этим заниматься, а сейчас на Perl 5 остались старички только, которые старые системы поддерживают. Python вот новую жизнь получил как язык для AI, вот его молодежь и изучает.
     
     
  • 2.104, User (??), 07:54, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нееее 10 лет назад - уже 10 лет как поздно было Проблема там не в наличии от... большой текст свёрнут, показать
     
     
  • 3.110, Liin (ok), 10:17, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > а в неудачном дизайне языка -
    > код на perl'е заметно дороже в развитии

    Первый раз такое слышу. Вы точно на перле писали большие системы?
    Там ничуть не сложнее того же PHP, если соблюдать best practices, конечно.

    Там фактически не хватало не так многого:
    1) вот эти самые нормальные классы, как у других
    2) поддержки unicode без шаманства
    3) нормального package manager'а, по типу npm. В питоне с этим тоже не так замечательно - venv не самый удобный.

    Вместо решения насущных проблем разрабы перла похоже накидались наркотой или синькой и ушли в свой perl 6, который нахер никому не всрался, так как не совместим с кодовой базой perl 5. Вот тут и у самых лютых приверженцев перла терпение и лопнуло.

     
     
  • 4.117, User (??), 13:06, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Г-дь миловал - но вот результаты попыток налбюдал в живую из первого ряда аж д... большой текст свёрнут, показать
     
     
  • 5.118, Liin (ok), 13:11, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Код на perl'е читается (и понимается) хуже, чем почти что на любом
    > другом языке аналогичной парадигмы

    А, вот оно что! Ну тогда понятно, так бывает. Но как человек, который и на пыхе и перле и на пайтоне и на руби писал, могу сказать - что это одного поля ягоды. А учитывая огромную популярность перла в 90-х, начале 2000-х, то вряд ли он хуже других.

     
     
  • 6.120, User (??), 13:30, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не-не-не, Дэвид Блейн! "Типовую ошибку IT'шника" вижу я! _ТЫ_ знаешь 3-4 языка в объеме "пары лет" если не "плотной работы", то "тесного соприкосновения" - тут понятно что "и раввин, и капуцин..." - а сравнивать надо по показателю "Сколько времени займет погружение джуна после института в твой проект" - на perl'е гарантированно на 30-100% больше, чем на чем угодно другом. Это по меркам начала 00х, да - сейчас разрыв еще и увеличился.
     
     
  • 7.121, Liin (ok), 13:44, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > на perl'е гарантированно на 30-100% больше, чем на
    > чем угодно другом.

    Да какие там 30-100%, я ж пишу - это одного поля ягоды со схожими концепциями. Время на обучение там плюс-минус одно. Та же java в разы тяжелее пойдет. И ничего, джуны как-то осиливают ее.

     
     
  • 8.138, User (??), 19:55, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, отрицание реальности оно такое, да Рыночек конечно порешал, но это классов ... текст свёрнут, показать
     
  • 7.126, Аноним (151), 16:12, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Джунов на перле не бывает - это все похапешники, которые думают, что языки похожие и на перле можно программировать как на пхп. Если бы они читали книжку с ламой перед своими потугами, результаты были бы на одном уровне с пхп, в котором нюансов никак не меньше.
     
     
  • 8.139, User (??), 19:59, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Да тут не в нюансах дело - код тупо _хуже читается_ и на понимание что именно ... текст свёрнут, показать
     
     
  • 9.144, Аноним (151), 08:28, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Все на перле отлично читается, когда код пишут нормальные программисты У меня ... текст свёрнут, показать
     
     
  • 10.153, User (??), 15:09, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну вот мы и до НАСТОЯЩИХ программистов дошли ... текст свёрнут, показать
     
  • 7.131, BeLord (ok), 17:18, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    А что такое Джун, балбес, который прогуливал пары или учился в третьем заборостроительном или человек с малым опытом, но нормальной базой. Вот в свое время вчерашний студент спокойно писал приложение справочник, файловая база данных, 128 разделов, 1024 подраздела, 4 млн строк в подразделе, длина строки 64 символа. Базовые операции, добавление/удаление/поиск строки, вывод на экран, печать. Ограничения архитектура 386, режим V86, язык программирования asm. Если дать такую задачку современному джуну справится?-))
     
     
  • 8.137, User (??), 19:49, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Опять норот не тот и солнце раньше желтее было, мы поняли Факт в том, что в php... текст свёрнут, показать
     
     
  • 9.145, Аноним (151), 08:31, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Факт в том, что на пхп-жс-питон они тоже не могут Перл отличается тем, что для ... текст свёрнут, показать
     
     
  • 10.152, User (??), 15:06, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Значение имеет счет на табло , нет ... текст свёрнут, показать
     
     
  • 11.157, Аноним (157), 21:10, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    На каком табло Жизнь не ограничивается коммерческой разработкой Написанный в р... текст свёрнут, показать
     
     
  • 12.160, User (??), 22:42, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Счет на табло - это решает задачу написаный код, или нет На python-js-php - р... текст свёрнут, показать
     
     
  • 13.162, Аноним (157), 23:30, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Если так смотреть, у перла на табло будет больше чем у питона, причем с нехилым ... текст свёрнут, показать
     
     
  • 14.166, User (??), 06:41, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это не счет на табло , это эпитафия на могиле - ты все перепутал ... текст свёрнут, показать
     
  • 7.141, Нанонимус53 (?), 22:37, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это неправда. В 2014 году я пришёл на старый проект на Perl, на котором не было ни одного Perl-программиста: все были пыхерами, переучившимися за месяц-два. В целом писали нормально, с языком не боролись. Боролись с проектом, который был очень запутанным, без тестов и с кучей критичной логики.
    То о чём вы говорите - это просто очень низкий уровень студента. Дурачки в принципе не нужны, не важно на каком языке они пишут.
     
     
  • 8.143, User (??), 07:04, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ок Замечательный язык с отличной maintainability, низкой TCO, отсутствием по... текст свёрнут, показать
     
     
  • 9.146, Аноним (151), 08:40, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В книжке с ламой на первой странице написано, что перл - плохой выбор в качестве... текст свёрнут, показать
     
     
  • 10.147, User (??), 10:13, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так это не мне писать нужно - тут вот выше массово утверждают, что ОК все, норма... текст свёрнут, показать
     
     
  • 11.156, Аноним (157), 21:05, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не ну так-то нормальный язык и не такой уж сложный Сложно на перле сразу нача... текст свёрнут, показать
     
     
  • 12.161, User (??), 22:55, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, да - по сравнению с плюсами или хаскелем - так и вовсе простой - почему не... текст свёрнут, показать
     
     
  • 13.163, Аноним (157), 23:52, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не надо лепить, что в отрасли только тебе подобные работают Ты из нее в светлом... текст свёрнут, показать
     
     
  • 14.167, User (??), 06:52, 06/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    поддерживать лютое legacy на perl е, ага Ну, НАСТОЯЩИЕ, можно сказать Ъ-пр... большой текст свёрнут, показать
     

     ....большая нить свёрнута, показать (27)

  • 1.70, Port22 (?), 20:15, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Perl уже никому не интересен, в плане бизнеса.
    остались легаси проект, по-мелочи.
     
  • 1.75, абв (?), 23:31, 03/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >   sub foo ($name //= "world") {
    >       print "Hello, $name";
    >   }
    >   sub foo ($x ||= 10) {
    >       return 5 + $x;
    >   }
    >   foo(undef);  # будет выведено "Hello, world"
    >

    А у меня "Subroutine foo redefined at script.pl line..."

     
  • 1.79, Даже я это застал (?), 00:02, 04/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ООП было в perl уже очень давно. Его нужно было уметь готовить. Вместо класса - закреплённое через bless пространство имён (модуль).

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

     
     
  • 2.81, Аноним (151), 00:11, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Это недоразумение однозначно уберут, даже хуже, чем в JS.
     
  • 2.111, Liin (ok), 10:30, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    > Но, похоже, люди хотят ООП такой же, как ещё где-то.

    Естессна. Люди хотят удобств как у всех - это для Вас открытие? Мало кому интересно разбираться с нюансами реализации перловых классов через bless.

     
     
  • 3.125, Аноним (151), 15:54, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если человек не понимает, как писать объектно-ориентированный код, у него и с ключевыми словами в языке будет не ООП, а имитация в стиле карго-культа. Bless такому в голову не поместится. Тайпглобы и перегрузки и подавно. Программируйте дальше на языках для обучения программированию, где все с закругленными углами. Перл, луа, жс, си - не ваше.
     

  • 1.80, Аноним (151), 00:10, 04/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Перл уже давно разрабатывают какие-то странные люди Сахарок для классов соверше... большой текст свёрнут, показать
     
     
  • 2.93, Аноним (127), 05:10, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    >Coro

    В с++ появилось только в 2020 году. Леман уже в 2001 шарил :)

     

  • 1.83, Вуся (?), 00:21, 04/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Как насчёт Perl с поддержкой нормального языка программирования?
     
  • 1.92, Аноним (127), 04:32, 04/07/2023 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Все кому нужен был OOP в perl давно используют расширение Moose.В том числе и самые распространенные фреймворки на этом языке. Стоит признать, что после катастрофического провала с perl6, его предыдущая версия просто доживает свое, так что не очень понятно зачем весь этот движ.
     
     
  • 2.101, Аноним (-), 06:48, 04/07/2023 Скрыто ботом-модератором     [к модератору]
  • –2 +/
     
     
  • 3.102, Аноним (127), 07:05, 04/07/2023 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.105, Аноним (105), 09:09, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Так новая система ООП (Corina называется ЕМНИП), делалась как раз с оглядкой на Moose. Круто же что всё будет из коробки и тормозить перестанет?
     
     
  • 3.114, Аноним (127), 12:19, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Конечно круто. Но это "абстрактное круто в вакууме". Лично мое мнение - то что уже ушло в прод переписывать на новом встроенном ООП нет смысла. Во первых - работает не трогай. Во вторых - уж если переписывать или писать что то новое - то на чем то более популярном и современном, чтобы проще было недорогие кадры найти для поддержки. В итоге всю крутизну ощутят разве что perl энтузиасты, которые продолжат писать новый код на perl5.
     
  • 3.122, Аноним (151), 13:50, 04/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Не надо думать, что синтаксический сахар как-то влияет на производительность. Под капотом там все то же самое.
     
  • 2.154, Аноним (157), 19:36, 05/07/2023 [^] [^^] [^^^] [ответить]  
  • +/
    Использующие Moose не понимают, что такое программирование Таких учить только п... большой текст свёрнут, показать
     

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



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

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