The OpenNET Project / Index page

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

Релиз языка программирования Perl 5.32.0

21.06.2020 23:28

После 13 месяцев разработки состоялся релиз новой стабильной ветки языка программирования Perl - 5.32. При подготовке нового выпуска было изменено около 220 тыс. строк кода, изменения затронули 1800 файлов, в разработке приняли участие 89 разработчиков. Одновременно объявлено о переводе разработки Perl и отслеживания ошибок на платформу GitHub.

Ветка 5.32 выпущена в соответствии с утверждённым семь лет назад фиксированным графиком разработки, подразумевающим выпуск новых стабильных веток раз в год и корректирующих релизов - раз в три месяца. Примерно через месяц планируется выпустить первый корректирующий релиз Perl 5.32.1, в котором будут исправлены наиболее значительные ошибки, выявленные в процессе внедрения Perl 5.32.0. Одновременно с выходом Perl 5.32 прекращена поддержка ветки 5.28, для которой в будущем могут быть выпущены обновления только в случае выявления критических проблем с безопасностью. Также начался процесс разработки экспериментальной ветки 5.33, на базе которой в июне 2021 года будет сформирован стабильный релиз Perl 5.34.

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

  • Добавлен инфиксный оператор "isa" для проверки того, является ли объект экземпляром указанного класса или классом, производным от него. Например "if( $obj isa Package::Name ) { ... }". Оператор пока помечен как экспериментальный.
  • Предоставлена возможность объединения операторов сравнения в цепочки, позволяющие разом сравнить несколько значений, при условии использования операторов с равным приоритетом. Например цепочка "if ( $x < $y <= $z ) {...}" эквивалентна раздельному указанию "if ( $x < $y && $y <= $z ) {...}".
  • Поддержка спецификации Unicode обновлена до версии 13.0. Добавлены новые свойства Unicode - Identifier_Status и Identifier_Type, которые могут применяться для проверки типа Unicode-символа (нетипичный, устаревший, игнорируемый, исключаемый, специализированный и т.п.) и его статуса в контексте безопасности (разрешённые и ограниченные символы).
  • В регулярных выражениях разрешено использование Unicode-свойства Name (именованные символы) вместо "\N{...}", в том числе в шаблонах, например "qr!\p{name=/(SMILING|GRINNING) FACE/}!".
  • Обеспечена работа функций POSIX::mblen(), mbtowc и wctomb с изменяющими своё состояние локалями и в многопоточных приложениях.
  • Убран признак экспериментальной возможности с символьных синонимов операторов регулярных выражений. Например, вместо "(?<=...)" теперь можно указать "(*plb:...)" или "(*positive_lookbehind:...)", что значительно проще запомнить.
  • В регулярных выражениях убран признак экспериментальной возможности со средств для выявления смешивания различных классов Unicode-символов в строке, например, когда в слове используются символы кириллицы и латиницы. Для ограничения области значений только одним типом символов можно использовать выражения вида "qr/(*script_run: \d+ \b )/x" или "qr/(*sr: \b \w+ \b )/x".
  • В константах запрещено применять изменяемые переменные, например "my $var; $sub = sub () { $var };" теперь вызовет ошибку, для избежания которой нужно писать "my $var; $sub = sub () { return $var };".
  • Строка "0" теперь воспринимается как число при указании в операторах определения диапазонов. Например, раньше конструкция '"0" .. "-1"' приводила к генерации диапазона строк от "0" до "99", а теперь будет приводить к генерации пустого списка, как при указании "0 .. -1". Аналогично '"0" .. "9"' приведёт к генерации списка чисел от 0 до 9 , а не строк.
  • Проведена оптимизация производительности: Заметно увеличена производительность сортировки при использовании конструкций вида "sort {$a <=> $b}" и "sort {$b <=> $a}". Реализация my_strnlen ускорена для систем без собственной реализации strnlen. Ускорена работа функций grok_bin_oct_hex, grok_bin, grok_oct, grok_hex и grok_number_flags.
  • В состав включена утилита streamzip для создания zip-файла из входного потока, поставляемая вместе с новым выпуском модуля IO::Compress::Base.
  • Обновлены версии модулей, входящих в базовую поставку. Из основного состава удалён модуль "Pod::Parser".
  • Устранены три уязвимости (CVE-2020-10543, CVE-2020-10878 и CVE-2020-12723), которые могут привести к переполнению буфера или целочисленному переполнению при обработке специально оформленных регулярных выражений. Уязвимости представляют опасность для программ, в которых при построении регулярных выражений используются непроверенные внешние данные (когда внешние данные формируют регулярные выражения, а не используются при проверке).


  1. Главная ссылка к новости (https://www.nntp.perl.org/grou...)
  2. OpenNews: Выпуск Rakudo Star 2020.01, дистрибутива языка Raku (бывший Perl 6)
  3. OpenNews: Язык Perl 6 переименован в Raku
  4. OpenNews: Релиз языка программирования Perl 5.30.0
  5. OpenNews: Уязвимости в интерпретаторе Perl, связанные с обработкой переменных окружения и regexp
  6. OpenNews: Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/53207-perl
Ключевые слова: perl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (91) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Повидло19 (?), 23:31, 21/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Правильная ссылка на гитхабе - perl5.

    CoC не найден.

     
     
  • 2.3, Аноним (3), 23:43, 21/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Зато emoji 🐪 в заголовке.
     
  • 2.83, nich (ok), 06:18, 24/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не может быть!  И как они там живут без кока?  Варвары.
     

  • 1.2, Аноним (2), 23:34, 21/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –13 +/
    Название языка не эстетичное.
     
     
  • 2.22, Аноним (22), 05:44, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Perl это же жемчужина. Был такой аргентинский сериал с Андреа Дель Бока "Черная жемчужина". "Perla Negra". Хотя, мне больше нравилась "Антонелла". Смотрел подростком-школьником.
    Были же времена. А сейчас по ТВ только русское и американское.
     
     
  • 3.23, Аноним (22), 05:50, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Кстати, он снимался в интерлейсе. И раньше на торрентах был доступен интерлейсный MPEG2 с кабельного, с которого можно было получить плавные 50p. Но все поглотили 25p рипы, конечно. SVP в помощь теперь. Значит, в Аргентине тоже PAL, а не штатовские NTSC.
     
     
  • 4.25, Аноним (25), 06:09, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://vk.com/video22334283_168269502
     
  • 3.38, YetAnotherOnanym (ok), 11:23, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Жемчужина - это pearl. А Perl - это Pathologically eclectic rubbish lister.
     
     
  • 4.54, Аноним (54), 15:00, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Nani?!
     
  • 3.62, mezoni (ok), 17:50, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Perl это же жемчужина.

    А на каком языке? На удмуртском?

     
     
  • 4.75, Аноним (75), 12:00, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Капитан подсказывает, что на испанском. Правда, не Perl, а Perla.
     

  • 1.4, Аноним (-), 23:56, 21/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Всегда хотел попробывать изучить перл. Как оно? Стоит-ли сейчас этим заниматься? Есть ли смысл? Я так подозреваю, что нет перло-специфичных фишек и вещей, которые нельзя было бы продублировать на питоне/го/руби/си и тп. Есть какие-то особые стороны у перла?
     
     
  • 2.6, user90 (?), 00:02, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ща тебе понасоветуют тут)

    > Есть какие-то особые стороны у перла?

    Они есть у КАЖДОГО ЯП пожалуй. Но еще есть мода, есть копро.. ой, корпорации, думаю можно не продолжать.

     
  • 2.7, Аноним (7), 00:24, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Важное лично для меня:
    Perl есть во всех юниксах из коробки.
    Perl столь же прост, как python, только в разы быстрее.
    В жырном энтерпрайзе пишут на java (c/с++/c#) и perl, а не на питоне, расте, го и руби.
     
     
  • 3.13, qq (??), 01:32, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В энтерпрайзе уже почти ничто на Perl не пишут и правильно делают.
     
     
  • 4.36, mos87 (ok), 11:04, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    нет
     
  • 3.17, funny.falcon (?), 03:06, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +12 +/
    > Perl столь же прост, как python, только в разы быстрее.

    Ох и спорное утверждение...

    https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/perl-pytho
    https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=query&l=zi

    Вот чего-то ни где не заметно "в разы быстрее"...

    Я не противник Perl. Просто нужно адекватнее воспринимать даже любимый язык.

     
     
  • 4.40, rvs2016 (ok), 11:37, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > > Perl столь же прост, как python, только в разы быстрее.
    >
    > Ох и спорное утверждение...
    >
    > Вот чего-то ни где не заметно "в разы быстрее"...

    Мне понравилась другая часть этого утверждения:
    > Perl столь же прост, как python

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

    Даже дуропедия пишет про то, что питон испытал плияние именно перла (кроме прочих языков), но всё-равно объясняется перл через питон, а не наоборот. :-)

     
  • 3.18, leap42 (ok), 04:02, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > В жырном энтерпрайзе пишут на java (c/с++/c#) и perl, а не на питоне, расте, го и руби.

    этож ктож такую ерунду вам сказал? какой-нибудь самарский бодишоп из 90-х?

    в энторпрйзе c, с++ и perl суммарно меньше чем python

    руби почти мертв, но его всё равно больше чем perl

    кстати многие перловики как раз на Go и свалили

    (я если что бывший перловщик и ныне энторпрайзник)

     
     
  • 4.59, АнонимГоним (?), 16:40, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >кстати многие перловики как раз на Go и свалили

    кстати многие рубисты как раз на Go и свалили

     
     
  • 5.67, и.о.К.О. (?), 22:56, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    миллионы мух не могут ошибаться.
     
  • 3.24, OpenEcho (?), 06:07, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Гхм... По поводу скорости:

    https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/perl-php.h

     
  • 3.34, Z (??), 10:48, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Нету Перла уже давно из коробки, ни у Ubuntu, ни у RedHat, ни у CentOS, ни у SUSE
    Выпилили  
     
     
  • 4.50, Аноним (50), 13:25, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пруфы?
     
  • 4.56, Повидло19 (?), 15:24, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вызывающе неверная информация.
     
  • 4.78, Tifereth (ok), 18:51, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, т.е. непустой вывод 'which perl' сразу после установки мне мерещится на всём упомянутом?
     
  • 4.80, linuxbuild (ok), 21:10, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Пока еще везде есть. Впрочем как и питон. Хотя это неважно стало после появления технологии AppImage. Тащи с собой перл, если нужно, всего пара мегабайт.
     
  • 3.85, ALex_hha (ok), 11:39, 24/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Perl есть во всех юниксах из коробки

    как и python/c/c++

    > В жырном энтерпрайзе пишут на java (c/с++/c#) и perl

    пример жирного ынтерпрайза на перле в студию

    > Perl столь же прост, как python, только в разы быстрее.

    очень громкое заявление

     
  • 2.8, Cradle (?), 00:28, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ООП у него очень своеобразный, в порядке самообразования обязательно стоит познакомиться. Опять же регекспы в первоисточнике, идею прочуствовать.
     
  • 2.9, Аноним (9), 00:33, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    sed < awk < perl , т.е. это удобный скриптовый язык, который создавался с функционалом превосходящим возможности(удобство) sed/awk
    Ну..., и без perl'а не соберется ядро linux, хотя есть проекты, в которых специально отвязывали одно от другого
     
     
  • 3.91, Аноним (91), 11:24, 30/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    sed < awk < perl < python
     
  • 2.11, Аноним (11), 01:15, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +9 +/
    - Перл отличная альтернатива шелл-скриптингу
    - Божественные регулярки
    - Опасно-выразительные однострочники
    - Очень специфичное ооп
    - поразительное умение не сломать совместимость при выходе новых версий
    - несколько стилей написания кода (очень грязно и очень быстро или как "положено")

    Если вы уже на чем-то умеете то обратите внимание на "Modern Perl Programming" (есть в свободном доступе). Или попробуйте Raku у него еще все только начинаеться :)

     
     
  • 3.15, Anonymou (?), 02:04, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не сломать совместимость?) 5.24 и 5.26 уже нельзя использовать, без модификации кода.
     
     
  • 4.16, абв (?), 03:06, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > 5.24 и 5.26 уже нельзя использовать, без модификации кода.
    >

    А что именно там сломали?

     
     
  • 5.30, Аноним (3), 08:08, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Видимо он про обязательность экранирования "{" в regexp-ах, убирание текущего пути из @INC и прекращение поддержки "my $_" и вложенных определений типа "my ($a, my($b))". Первое не коснулось, так как есть негласное правило всегда экранировать  любые небуквенные символы, второе  - так как модули всегда помещаю в отдельный каталог c явным указанием относительного пути, а третье  - какие-то странные экспериментальные изыски, которые за несколько релизов до удаления появились.

    PS. Пишу на Perl с Perl 3. Проблемы были только при переходе на Perl 5, изменения там были действительно кардинальные, но желаемые и нужные, поэтому не было такого отношения как с Python 3 и Perl 6. Внутри ветки Perl 5 никаких проблем с нарушением совместимости не возникало, продолжают работать даже самые старые скрипты, если писать без  каких-то особых хаков и изысков.

     
     
  • 6.31, Карабьян (?), 09:48, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Почему часто после арифметичских операций к коротким числам с точкой добавляется или убавляется длинное машинное e (т.е. Было x.abcd стало y.abcd0000...01), делая их длинными, и как этого грамотно избежать?
     
     
  • 7.60, erera22 (ok), 17:33, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Используйте sprintf(), bignum() или что-то вроде Math::BigFloat;
     
     
  • 8.69, Карабьян (?), 23:40, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Благодарю ... текст свёрнут, показать
     
  • 6.64, абв (?), 18:19, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Видимо он про обязательность экранирования "{" в regexp-ах, убирание текущего пути из
    > @INC и прекращение поддержки "my $_" и вложенных определений типа "my
    > ($a, my($b))". Первое не коснулось, так как есть негласное правило всегда
    > экранировать  любые небуквенные символы, второе  - так как модули
    > всегда помещаю в отдельный каталог c явным указанием относительного пути, а
    > третье  - какие-то странные экспериментальные изыски, которые за несколько релизов
    > до удаления появились.
    >

    Меня коснулось только переход when/given назад в эксперимент: перл5 в результате начал сыпать предупреждения. Но и с предупреждениями всё оставалось рабочим, поэтому и возник вопрос о поломке.

     
  • 2.20, Аноним (20), 05:18, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • –11 +/
    >Стоит-ли сейчас этим заниматься? Есть ли смысл?

    Нет, не стоит. Нет, нет смысла.

    Это один из так называемых write-only языков: что написал сегодня уже сам через неделю не поймёшь через какую Ж оно работает, а читать чужой код язык вообще не предусматривает.

    Представь себе самую уродливую баш-портянку. А теперь представь что это 10% от перла.

    Например, типичная программа на перле (из Википедии):

    '$=';$_=\%!;($_)=/(.)/;$==++$|;($.,$/,$,,$\,$",$;,$^,$#,$~,$*,$:,@%)=(
    $!=~/(.)(.).(.)(.)(.)(.)..(.)(.)(.)..(.)......(.)/,$"),$=++;$.++;$.++;
    $_++;$_++;($_,$\,$,)=($~.$"."$;$/$%[$?]$_$\$,$:$%[$?]",$"&$~,$#,);$,++
    ;$,++;$^|=$";'$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$='

     
     
  • 3.21, Аноним (21), 05:30, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Так на любом языке можно написать, тролль.
     
  • 3.27, Здрасьте (?), 07:38, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Это совершенно нетипичная программа на Перле. Никто не пишет так, решая какую-то производственную задачу.
     
  • 3.32, Anonymoustus (ok), 09:48, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Пиши согласно

    https://perldoc.perl.org/perlstyle.html

    и будет не write-only.


    ЗЫ

    А если не умеешь, то используй

    https://en.wikipedia.org/wiki/PerlTidy

     
  • 3.51, Аноним (50), 13:28, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Бред
     
  • 3.66, qwerty123 (??), 22:56, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Это один из так называемых write-only языков:

    КАКАЯ ГЛУПОСТЬ!

    Пишут дрянь на всех языках.

    Программа на Perlе очень читабельна, если на плечах голова, а не помойка.

    Более читабельна и быстрее понимаема, возможно, чем том же руби или расте.

      

     
  • 3.77, Аноним84701 (ok), 18:02, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Например, типичная программа на перле (из Википедии):
    > '$=';$_=\%!;($_)=/(.)/;$==++$|;($.,$/,$,,$\,$",$;,$^,$#,$~,$*,$:,@%)=(




    def    _                  (
           _         ,
           __  
           =       type      ((  
                   {( )}      
                     ^
                   {( )}      ))
    )                          :
           __ =    type        (
    """.o00(0)(0)0( *)-<    """
    , (    __        ,         )
                     ,         {
          '_'                  :    
           __        .  
    __dict__   [[   *         (
           _       for        
           _       in sorted   (
           __        .
    __dict__ )    if        
          '_'      not    in  
           _  ) ][             {
    (      __ )  }   >         {
                     *         (
           _  )  }             :        
                               :
                     ~         (
                   not         (  
           _  )  )
                ][ not         (  
           _  ) ]]
    }         ) (              {
    (         )  }             )
           _  ;    yield       [
           _       for
           _       in
           _       if
           _       not    in
           __      and    not
           __       .
           _
    (      _  )  ]

    print(*_([3,1,2,5,1,0,3]))
    print(*_("Python is always readable!"))




     
  • 2.29, Аноним (29), 08:07, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Всегда хотел попробывать изучить перл. Как оно?

    Пробуй. Оно круто!

    > Стоит-ли сейчас этим заниматься? Есть ли смысл?

    А надо ли тебе ваще кодить, дружок? ;)

    > Я так подозреваю, что нет перло-специфичных фишек и вещей, которые нельзя было бы продублировать на питоне/го/руби/си и тп.

    Есть перло-специфичные фишки, которые НЕ НАДО дублировать, т. к. они офигенно реализованы в сабже.

    > Есть какие-то особые стороны у перла?

    Короче, иди книжку почитай)

     
  • 2.55, Аноним (55), 15:19, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Всегда хотел попробывать изучить перл. Как оно? Стоит-ли сейчас этим заниматься? Есть ли смысл?

    Если для себя, то стоит, если ради заработка — уже нет. К сведению, язык не из простых (хоть и не кресты, конечно).

    > Есть какие-то особые стороны у перла?

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

     
  • 2.74, Аноним (74), 08:10, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Практического смысла уже немного. Вы запоздали с этим на пятнадцать лет ^_^
     
  • 2.81, linuxbuild (ok), 21:17, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Суть в расшифровке - Practical Extraction and Reporting Language. Нет языка удобнее для создания парсеров неструктурированных данных.

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

     
  • 2.82, IRASoldier_registered (ok), 01:32, 24/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Всегда хотел попробывать изучить перл

    Попроб_Ы_вать - не надо.

    Попроб_О_вать - можно и полезно.

     
  • 2.89, Аноним (-), 06:50, 29/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кратко Преимущество perl5 - не в скорости работы RPerl сильно быстрее - н... большой текст свёрнут, показать
     
  • 2.90, Аноним (-), 06:51, 29/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Кратко Преимущество perl5 - не в скорости работы RPerl сильно быстрее - н... большой текст свёрнут, показать
     

  • 1.5, user90 (?), 23:58, 21/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Для полного щастья не хватает лишь браузера на GTK-Perl..
     
     
  • 2.10, НяшМяш (ok), 01:07, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вот лучше бы в браузеры перл вместо жабоскрипта завезли.
     
     
  • 3.12, qq (??), 01:31, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Рехнулся, что ли?
     
     
  • 4.14, НяшМяш (ok), 01:52, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Рехнулся, что ли?

    Я ж на опеннете сижу, разве не видно? )

    А вообще что угодно было бы лучше жабоскрипта в браузере. Но теперь его уже ничем не выкорчуешь оттуда, только придумывать новый интернет.

     
     
  • 5.19, Lex (??), 04:30, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Это уродливое перлоподелие в браузеры...
    Как хорошо, что в своё время до них не добрались линуксоиды со своим перлом, встроенным в каждый калькулятор.

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

     
     
  • 6.41, PnD (??), 12:00, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но есть нюанс: когда Ларри начал работать над perl, Линус ещё школу заканчивал.
    И да, на фоне тогдашних awk, m4 и (свят-свят) basic perl таки был настоящим прорывом в реализации интерпретируемых языков. Если кто забыл, с него нынешний web начинался. (И подтолкнул создание php.)

    Что касается башатины, так это вообще киллер-фича. Когда шелла уже́ явно мало, а на что-то "серьёзное" — тупо нет времени (бюджета). https://xkcd.com/224/

     
     
  • 7.46, Аноним (29), 12:38, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > https://xkcd.com/224

    Ну, это вообще бойа.. классика!)

     
  • 6.48, rvs2016 (ok), 13:11, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это уродливое перлоподелие в браузеры

    Проблема не в перле или другом языке.
    Проблема в том, что программисту в браузере не дают программировать на языке, который он считает для себя нужным.
    Вот в юниксе сайт пиши на чём хочешь - хоть на перле, хоть на питоне, хоть даже на голом шелле. Лишь бы в stdout выдавали правильный html-код с предваряющими его правильными отетными заголовками HTTP или только заголовки HTTP без тела там, где это так и задумано по смыслу. :-)

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

     
     
  • 7.53, Lex (??), 13:47, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Проблема не в перле или другом языке.
    > Проблема в том, что программисту в браузере не дают программировать на языке,
    > который он считает для себя нужным.

    В связи с гигантским зоопарком и устройств и версий браузеров и их движков и все это с поправкой на необходимость поддержки функционала для максимально большой аудитории..
    И с учетом необходимости очень серьезных ограничений исходя из безопасности( многие крайне трудноисправимые дыры в JS, кстати, появились после подключения JIT, когда JS из скриптового стал фактически компилируемым, пусть и непосредственно в память )..
    На самом деле, довольно непростая ситуация получается. Далеко не каждый язык имеет хорошую обратную совместимость и далеко не бесчисленное их множество реально имеет смысл поддерживать в актуальном состоянии на множестве браузерных движков при сопоставимом уровне безопасности.

    Сейчас у браузеров, в общем-то, есть поддержка почти какого_хочешь_языка - WebAsm называется.
    Пишешь Си / Расте / итп, это дело компилируется в промежуточный код, хитрым образом обрабатывается - и готов модуль для веба. Единственное, там вроде нельзя было непосредственно с апи браузера и DOM-дерева взаимодействовать - только через JS-прослойку.

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

     
     
  • 8.70, Карабьян (?), 00:09, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    gt оверквотинг удален Интересно, что заставило внедрить jit-компиляцию Да, во... текст свёрнут, показать
     
  • 3.45, rvs2016 (ok), 12:36, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот лучше бы в браузеры перл вместо жабоскрипта завезли.

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

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

     
     
  • 4.71, Карабьян (?), 00:10, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    > Эх, да... браузеры не пошли развиваться по пути, в котором можно установить
    > любой шелл, любой язык программирования и кодить на нём, любимом. Ну
    > как в обнычном юниксе: нравится перл - устанавливай себе перл (в
    > системах, из которых его выпилили), нравится питон - устанавливай его и
    > так далее и кодируй на нужном языке.
    > В браузерах это можно реализовать даже сейчас таким же способом, как сейчас
    > сайты загружают себе нужные им шрифты. Так же можно ж доработать
    > браузеры, чтоб сайты могли загружать себе нужный язык программирования и уже
    > писать скрипты на них. Эх, да..., было бы оно разработчикам нужно,
    > эх...

    Зачем вам это все уже решено за нас: библиотеками, фреймворками, тз, итп

     
  • 4.84, Мордиум (?), 08:53, 24/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Хватит ныть, любой язык в конечном счёте сводится к конечному автомату.

    Вместо JS вы можете писать на Typescript или Dart

     
  • 3.52, vadiml (ok), 13:44, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Вот лучше бы в браузеры перл вместо жабоскрипта завезли.

    Когда-то хотели так сделать - 3я версия IE поддерживала скрипты на обрезаной версии perl-а,
    но потом все ринулись в "более простой" JS.

     
     
  • 4.72, Карабьян (?), 00:12, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Вот лучше бы в браузеры перл вместо жабоскрипта завезли.
    > Когда-то хотели так сделать - 3я версия IE поддерживала скрипты на обрезаной
    > версии perl-а,
    > но потом все ринулись в "более простой" JS.

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

     
  • 4.79, Аноним (79), 19:47, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А 6-ая поддерживала ActiveX, через который успешно устанавливался полноценный perl и интегрировался с IE.
     
  • 3.68, Ag (ok), 23:09, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1) Было, но увы - у Netscape и MS было свое видение.
    2) Было бы это сильно лучше для "ширнармасс" - не факт. Как шутили в годы моей молодости "'настоящий' программист и на Pascal-е напишет как на FORTRAN-е"; Да, если что - не попсовый -77 и выше, а кондовый и посконный -IV. :)
     
  • 2.43, rvs2016 (ok), 12:19, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Для полного щастья не хватает лишь браузера на GTK-Perl

    Кстати. Хорошо напомнил про GTK-Perl:

    https://www.opennet.ru/docs/RUS/gtk_perl/

    Эту штуку кто-нибудь использовал?
    Она годная?
    Или годной была в годы её создания, а сейчас может быть уже не годная?
    Есть ли у кого впечатления от использования этой GTK-Perl?

     
     
  • 3.44, Аноним (29), 12:34, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Она годная?

    Не модная! Теперь вот так: https://github.com/saiftynet/GUIDeFATE

     
     
  • 4.73, Карабьян (?), 00:14, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >> Она годная?
    > Не модная! Теперь вот так: https://github.com/saiftynet/GUIDeFATE

    Ахренеть...

     
  • 3.86, Аноним (-), 05:17, 29/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Я использовал и использую. Лишь по документации нужно "соображать" и плясать вокруг документации по API вокруг самого GTK
     
  • 2.57, dotpot (?), 16:18, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    https://metacpan.org/source/JCARTY/Gtk3-WebKit2-0.011/examples/browser.pl
     

  • 1.26, m (??), 06:57, 22/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    if ( $x < $y <= $z ) {...}
    Результат первого сравнения сравнить с третьим числом, нет ... сделаем как в математике описание формул. Мое мнение не нужно облегчать, если косяки появятся.
     
     
  • 2.28, Здрасьте (?), 07:39, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это просто из Пайтона притащили.
     
     
  • 3.33, Аноним (33), 10:06, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А что, не стоило тащить?
     

  • 1.35, mos87 (ok), 11:04, 22/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Годно, нужно.
     
  • 1.37, rvs2016 (ok), 11:21, 22/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Предоставлена возможность объединения
    > операторов сравнения в цепочки
    > if ( $x < $y <= $z ) {...}

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

     
  • 1.39, YetAnotherOnanym (ok), 11:34, 22/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > конструкция '"0" .. "-1"' приводила к генерации диапазона строк от "0" до "99"

    Эммм... Кто-нибудь в курсе, чем это обосновывалось?

     
     
  • 2.49, rvs2016 (ok), 13:16, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Эммм... Кто-нибудь в курсе, чем это обосновывалось?

    Тоже заметил нелогичность результирующего списка.

    А кто может обосновать создание пустого списка вместо списка (0, -1) при указании "0 .. -1":

    > а теперь будет приводить к генерации пустого списка, как при указании "0 .. -1"

     
     
  • 3.87, Аноним (87), 05:27, 29/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > А кто может обосновать создание пустого списка вместо списка (0, -1) при указании "0 .. -1":

    Range-оператор вычисляется инкрементально от значения слева к правому, выдает "stream" из элементов и вам остается лишь захватить или обработать этот поток. Логично что a..b при a > b инкрементально вычисляется в пустое множество.

     

  • 1.42, Аноним (-), 12:08, 22/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как вызвать фунукцию из foobar.pm файла без установки этого модуля? (foobar.pm лежит рядом с моей program.pl)
     
     
  • 2.47, Аноним (47), 12:44, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    "Установка" модуля для perl заключается в подсовывании *.pm в любую директорию из @INC

    perm -I. -Mfoo -E 'foo::func()'

    или в program.pl:

    use lib '.';

     
     
  • 3.88, Аноним (88), 05:34, 29/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    do './foobar.pm' // die "$@ [errno: $!]";

    или более простое

    require './foobar.pm';

     

  • 1.58, Аноним (58), 16:26, 22/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Желающие пообщаться про язык программирования Perl, добро пожаловать в русскоязычное телеграмм-сообщество: https://t.me/modernperl
     
     
  • 2.63, mezoni (ok), 17:52, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А в чем преимущества этого языка программирования?
     
     
  • 3.76, Вы забыли заполнить поле Name (?), 13:54, 23/06/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Держит пальму первенства в написании запутанного кода.
     
  • 2.65, user90 (?), 18:47, 22/06/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А чо не сразу во вконтактик?))
     

  • 1.61, ПерлухаБратуха (?), 17:48, 22/06/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Отличная новость!
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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