URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 137267
[ Назад ]

Исходное сообщение
"Доступен язык программирования Perl 5.42"

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

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=63519


Содержание

Сообщения в этом обсуждении
"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 01:05 
где-то в обломках 20+летней давности:

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 08:17 
WhiteDragon,ты? Нашёл твой qxp.pm недавно. ;)

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


"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 10:00 
миац местный админю
а с кем имею честь?

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 15:08 
Да так, аноним обычный :), просто вспомнил тебя из IRC.

"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 17:40 
ну на #perl я по прежнему болтаюсь

"Доступен язык программирования Perl 5.42"
Отправлено Жироватт , 04-Июл-25 08:56 
Ну таки да. Почему бы и не засунуть на уровень языка действительно полезные макросы? (Да знаю я, что это процедуры, но фактически такие однострочники можно считать другой формой записи макросов, если это не обёртка)

"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 10:05 
если мне склероз не изменяет, я их себе слепил увидев их в perl6, когда он только только
и вроде бы я ниразу ими не воспользовался :)
но то, что это засунут прямо в язык - это хорошо
засунули бы еще бы чтото в духе:

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 12:40 
Шикарный синтаксис!
Прям все просто, понятно и совсем нет лишних закорючек.
И эти люди гонят на другие языки...

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 14:23 
>Шикарный синтаксис!

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

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

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

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


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

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


"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 05-Июл-25 10:10 
>> $_[1]
> Экономия на аргументах в ущерб читаемости

Кагбэ, для перловщика $_ - это один из краеугольных камней, поэтому никаких проблем с читаемостью "$_[1]" в принципе быть не может.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 22:47 
>поэтому никаких проблем с читаемостью "$_[1]" в принципе быть не может.

Что это такое? Сколько всего аргументов? Какого они типа?


"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 06-Июл-25 09:03 
https://perldoc.perl.org/variables
Просвещайся

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 07-Июл-25 09:42 
Короче - никакого. В перл типизации нет.

"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 07-Июл-25 09:59 
> Короче - никакого. В перл типизации нет.

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


"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 04-Июл-25 23:48 
> Шикарный синтаксис!
> Прям все просто, понятно и совсем нет лишних закорючек.
> И эти люди гонят на другие языки...

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


"Доступен язык программирования Perl 5.42"
Отправлено Vivaswat , 07-Июл-25 09:16 
В синтаксисе вся суть верблюда...

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 12:41 
> sub find(&@){no strict 'refs';local(*{(caller).'::a'})=\(my$a=$_[1]);&{$_[0]}||>>($a=$_)for(@_[2..$#_]);$a}
> sub first(&@){$_[0]->()&&return$_ for@_[1..$#_]}

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 12:56 
> У кого более забористый синтаксис: Rust или Perl?

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


"Доступен язык программирования Perl 5.42"
Отправлено АнонимЯ , 04-Июл-25 13:11 
Это лаконичнов. Вам не понять.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 13:32 
А, что тут непонятного?... Лаконичность ценой доп.рисков ошибок и нечитабельности другими, плохой читабельности другими хорошо знающими язык, как и ухудшением своей вычитки. Зато код чуть лаконичней...

"Доступен язык программирования Perl 5.42"
Отправлено АнонимЯ , 04-Июл-25 13:53 
> доп.рисков ошибок и нечитабельности другими, плохой читабельности

Как это доказать в логике или цифрах?


"Доступен язык программирования Perl 5.42"
Отправлено нейм , 05-Июл-25 08:26 
очевидно написать максимально близкую реализацию одной и той же задачи на трех языках, дать фокус группам (знающая перл / не знающая перл, но другие ЯП / не знающая ЯП вообще) и попросить объяснить что делает код. Вторая итерация - тоже самое, но попросить найти логическую ошибку.

но вообще тебе ко всяким статистикам-методологистам с такими вопросами.


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:15 
А смысл? С любым языком, который фокус-группа не знает, очевидно будут ошибки. Будь то хоть С++, Rust или даже (сюрприз!) Python - да, и он тоже до многих неочевидностей для не знающих доковылял.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 15:33 
Вы с другой стороны посмотрите, что бы наделать ошибок надо сперва хорошо по граблям походить. А далее снижение кол-во ошибок до минимума. Если, конечно же, человек не бросил.

"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 17:28 
> Вы с другой стороны посмотрите, что бы наделать ошибок надо сперва хорошо
> по граблям походить. А далее снижение кол-во ошибок до минимума. Если,
> конечно же, человек не бросил.

я? не, я не бросил, для меня перл - основной инструмент


"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 13:15 
у 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.

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 13:57 
Самое забавное, что это как раз логичный и читаемый синтаксис, в отличие от раста.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 14:14 
> Самое забавное, что это как раз логичный и читаемый синтаксис, в отличие от раста.

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 14:28 
$#_ максимально читаемо, кроме шуток. В расте ты бросив один взгляд на код, не сможешь понять, что он делает.

"Доступен язык программирования Perl 5.42"
Отправлено freehck , 04-Июл-25 16:11 
>> Самое забавное, что это как раз логичный и читаемый синтаксис, в отличие от раста.
> Да-да, $#_ очень логично и очень читабельно))

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

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

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


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


"Доступен язык программирования Perl 5.42"
Отправлено Анонусс , 04-Июл-25 16:24 
> всё, что начинается на @ -- это массив
> всё, что начинается на $ -- это скаляр

Допустим логично.

> $#_ -- это скаляр, который содержит индекс последнего элемента массива @_

Как это следует из предыдущих утверждений?))


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 17:11 
>Как это следует из предыдущих утверждений?))

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

Сигил перменных - это $
Сигил массивов - это @
Если у переменной поменять сигил, то интерпретатор будет иначе обрабатывать код. Например,

$size = @array;

Это получить размер массива. Запись

$#имя_переменной

это ещё один способ получить тот же результат. Есть много разных способов сделать это.

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

$#_ - это размер этой самой переменной по умолчанию.

$_[индекс] - это обращение к элементу массива переменной по умолчанию.

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

Ну и куча разных подобных условностей.


"Доступен язык программирования Perl 5.42"
Отправлено Сталин , 04-Июл-25 17:20 
C 5.36 параметрам функций можно давать человеческие имена, а не распаковывать их из @_

"Доступен язык программирования Perl 5.42"
Отправлено freehck , 05-Июл-25 22:19 
> C 5.36 параметрам функций можно давать человеческие имена, а не распаковывать их из @_

Вряд ли перловики прям в диком восторге от этого.

Для понимания. Раньше писали вот так:


sub my_function {
  my ($first, $second, @rest) = @_;
  <...>
}

После 5.36 стало можно делать так:


sub my_function ($first, $second, @rest) {
  <...>
}

Небольшой улучшайзинг, но не киллер-фича.


"Доступен язык программирования Perl 5.42"
Отправлено Прохожий , 08-Июл-25 09:41 
Из подобных улучшайзингов и складывается мнение о языке. Чем их больше, тем лучше мнение. Perl, увы, далёк от этого. Слишком там много было/осталось подобных костылей.

"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:26 
Вообще-то это не костыль, а часть философии - функция может получить произвольное число аргументов любого типа, и вести себя по-разному в зависимости от. Например, по-разному обработать четное или нечетное число аргументов, или скажем проверить тип у последнего аргумента, и в зависимости от него тоже что-то сделать, или считать его опциональным - при том, что перед опциональным тоже может быть переменное число аргументов.

В других языках для такого пришлось бы определять несколько функций с одним и тем же именем, но разными сигнатурами, и то не всякий язык позволил бы засунуть переменное число аргументов *в середину* этих аргументов, т.е. с обязательными или тем более опциональными аргументами в хвосте. А в Перле - можно делать что угодно. Особенно удобно это в построении каких-нибудь RPC, когда нижний уровень не обязательно знает, что там будет в обработчиках повыше.


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:19 
> $size = @array;
> Это получить размер массива. Запись
> $#имя_переменной
> это ещё один способ получить тот же результат.

Ну вообще-то нет. Они на единицу отличаются - нумерация индексов-то с нуля.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 17:48 
В баше что-то похожее, вроде ни разу проблем не возникало. Ты просто знаешь, как это сделать и что оно означает. Вот регулярные выражения, особенно жадные и с группировками, могут быть неочевидными.

"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:17 
Оно и не должно никак следовать. Это еще одно определение просто.

"Доступен язык программирования Perl 5.42"
Отправлено Someone , 04-Июл-25 19:52 
И как мне теперь ЭТО развидеть?

"Доступен язык программирования Perl 5.42"
Отправлено вымя , 04-Июл-25 23:07 
$#_ как раз самое простое. А вот что такое ||>>? Как это вообще гуглить? У хаскелистов это хотя бы функцией было бы, которую можно в Hoogle поискать.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 00:51 
Чатгпт уже придумали, не тормози.

"Доступен язык программирования Perl 5.42"
Отправлено вымя , 05-Июл-25 08:58 
> Чатгпт уже придумали, не тормози.

Спасибо, опять убедился в полной беспомощности нейробалаболов:

> - `||>>` – this is **not a standard Perl operator**.
>   - In standard Perl, you can have `||` (logical OR) or `>>` (bitwise shift), but `||>>` is not valid.
>   - It might be a typo, or it could be a **custom operator** defined elsewhere in the codebase or in a module.
> - `($a=$_)` – assigns the current element to `$a`.
> - `for(@_[2..$#_])` – loops over all arguments after the first two.
>
> But again, the `||>>` is invalid syntax unless it's defined somewhere else (e.g., via a custom operator or through a module like `overload`, `AUTOLOAD`, etc.).

И потом ещё несколько раз то же самое с другим порядком слов. И вот ради этих LLM-ок предали нормально работавшие алгоритмы поиска гугла :(


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 11:15 
У тебя какой-то странный чатгпт:

Yes – it really is valid Perl (though, I admit, it’s a bit of a head-scratch‐inducing one-liner).  What you’re seeing as “`||>>`” is not a mysterious new operator called `||>>`, it’s actually two separate operators back to back:

  1. `||`   (logical or)  
  2. `>>`   (bit-wise right shift)  

Because the shift operator (`>>`) has higher precedence than `||`, the parser sees

     &{ $_[0] }        # call your test/callback sub
  || >>( $a = $_ )   # if the callback returned false, do “>>($a=$_)”

Now you might ask, “Okay, but how does `>>( $a = $_ )` make any sense as a shift?”  Here’s the tiny Perl quirk that makes it do what the author wants:

- When you write a binary operator like `X >> Y` but omit the left operand, Perl defaults that “left operand” to `$_`.
- So   `>>( $a = $_ )`  becomes   `$_ >> ( $a = $_ )`.

What side-effect are they after?  By writing it this way they both

  • update the variable `$a` to the current `$_`, and  
  • return that same value (so the whole `||` chain yields that element).

Put in more conventional form, the `for` loop is doing roughly

```perl
for my $x ( @_[2..$#_] ) {
   if ( $_[0]->() ) {         # call the block
     return          ;       # short-circuit if it was true
   }
   else {
     $a = $x;                # otherwise remember this $x
     return $a;              # and return it
   }
}
```

… and at the end of the sub, you get back whatever was last stored in `$a`.

So in summary:

  * `||>>` is **not** a magic operator.  
  * It is parsed as `( ... ) || ( >>(...) )`.  
  * `>>( $a = $_ )` uses the rule “missing left‐operand in a shift defaults to `$_`,” so you end up doing `$_ >> ($a = $_)`.  
  * The real goal is the side‐effect in `($a = $_)` and then returning that value when the test block fails.


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:29 
Автор этого фрагмента - известный в перловых кругах велосипедист, так что в норме такого перлового кода вообще-то быть не должно.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 15:48 
> У кого более забористый синтаксис: Rust или Perl?

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 13:37 
Пойду-ка полежу полчасика с закрытыми глазами...

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 16:01 
>sub find(&@){no strict 'refs';local(*{(caller).'::a'})=\(my$a=$_[1]);&{$_[0]}||>($a=$_)for(@_[2..$#_]);$a}
>sub first(&@){$_[0]->()&&return$_ for@_[1..$#_]}

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


"Доступен язык программирования Perl 5.42"
Отправлено Анонусс , 04-Июл-25 16:22 
> На самом деле, по-читаемости, синтаксис Перла намного лучше чем у Раста.

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


"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 17:37 
>>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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 16:42 
Мне на собеседовании подсунули похожую мутатень, типа, где ошибка?
С просил:
- Это у вас так пишут?
- Да. Это наш код. (С гордостью)
- Прощайте.

"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 17:40 
> Мне на собеседовании подсунули похожую мутатень, типа, где ошибка?
> С просил:
> - Это у вас так пишут?
> - Да. Это наш код. (С гордостью)
> - Прощайте.

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 20:35 
> но как тест на скиловость, почему бы и да

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

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

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


"Доступен язык программирования Perl 5.42"
Отправлено wd , 05-Июл-25 01:04 
ну не знаю, меня такой код не пугает
я могу писать как обслуживаемый код, так и не обслуживаемый
в частности я могу лютую дичь писать просто для себя, как художник
на полном серьезе у меня есть проэкты в которых всеравно никого никогда не будет и я просто отвожу душу: я пишу так, как писать ненадо

"Доступен язык программирования Perl 5.42"
Отправлено Прохожий , 08-Июл-25 09:47 
Это потому, что вы - вменяемый, поэтому для прода писать необслуживаемый код не будете. Но то вы. А где гарантия, что другой перловик такой же? Вот поэтому к  Perl и такое отношение - write only.

"Доступен язык программирования Perl 5.42"
Отправлено wd , 08-Июл-25 10:18 
ну это уже переход на личности
в былые времена на #perl спокойно развлекались и в перлгольф и писали нормальный, читабельный код
собственно я не знаю ниодного перлушника, который бы вот только так и писал
любой, у которого хватит мозгов рисовать такую дичь, да еще и понимать, что это, зачем и почему - в прод это совать не будет
перл это не только про программирование, но еще и про творчество

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 15:45 
Какой же всё-таки выразительный, и при этом отвратный язык. Я очень рад что прошел в юности (в нулевых) через коммерческую разработку на нём, это много дало в понимании того как не надо делать. Единственная моя ошибка с этим связанная после - я потом (в десятых, уже в нормальной компании) вызвался переписывать легаси с перла (потому что был один из немногих в компании кто этот перл ещё помнил). Вот это конечно был ад, израиль и выгорание. Надо было сказать что никакого перла я уже не помню, и ищите любых оставшихся в конторе причастных к тому что это было допущено в прод, и пусть они сами переписывают как хотят.

"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 04-Июл-25 23:50 
> Вот это конечно был ад, израиль и выгорание.

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 01:17 
Год 2025й от рождества христова, кодеры всё ещё не определились с кодировками файлов. Когда определятся, там уже и о строках подумать можно будет.

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


"Доступен язык программирования Perl 5.42"
Отправлено Соль земли2 , 04-Июл-25 10:11 
Может я хочу файл с кодом сразу в нескольких кодировках CP1251/KOI8-R/UTF-8. Технически это возможно. Но нужно научить интерпретатор определять их на ходу.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 12:14 
> Технически это возможно.

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 17:00 
> Может я хочу файл с кодом сразу в нескольких кодировках

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


"Доступен язык программирования Perl 5.42"
Отправлено wd , 05-Июл-25 01:06 
use Encoding ?
не пробовал на лету менять ничего конечно, я, если за пределы ascii выхожу, то это utf8, соответсвенно у меня только use utf8 и все

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 16:00 
> Впрочем, booking.com наглядно показал, что язык реализации — десятое дело для любого коммерчески успешного проекта.

Ну ничего себе. Как раз наоборот - они сейчас тратят деньги и время чтобы переписать перловое легаси на нормальные ЯП. Подумаешь, код написан на закорючках для которых разработчиков на рынке нет, ерунда какая - главное что проект коммерчески успешен. Потом, количество коммерчески успешных проектов как раз прекрасно показывает годится язык для прода или нет. В одном не взлетевшем коммерческом проекте на перле я сам участвовал (не могу сказать что он загублен прям таки языком, но загублен некомпетентным коммерческим и техническим руководством, а только такое Perl для прода и могло выбрать). И чсх, если посмотреть на 20 лет в прошлое, никто не скажет что тогда его выбор был оправдан. Он был убогим тогда, а нормальных языков был в достатке. Просто надо было хоть чуть-чуть понимать в разработке чтобы его никогда ни для чего не использовать.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 17:13 
Именно так. Главное, что проект коммерчески успешен, благодаря чему у компании есть деньги для любых переписываний на любых языках. В отличие от всего того, что не взлетело, хоть и было написано на самом правильном языке с самой правильной архитектурой. А секрет прост: людям надо решение их проблем, такое, чтобы было дешевле заплатить за него, чем мучаться самому. Как ни крути, язык программирования на успех если и влияет, то весьма опосредованно.

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

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

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

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 20:22 
> Именно так. Главное, что проект коммерчески успешен, благодаря чему у компании есть деньги для любых переписываний на любых языках

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


"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 05-Июл-25 10:52 
> На пустопорожнее переписывание денег никто и никогда не даст

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

В эту фразу носом бы тыкать также ещё фанатов питона и прочих "удобных для быстрой разработки" интерпретируемых языков.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 05:23 
> В эту фразу носом бы тыкать также ещё фанатов питона и прочих "удобных для быстрой разработки" интерпретируемых языков.

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


"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 06-Июл-25 09:08 
Ещё один быстронакидыватель стриггерился.
Не будет денежки никого нанимать, потому что все пять идей будут похоронены тормозами и жором ресурсов в продакшоне.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 20:59 
> все пять идей будут похоронены тормозами и жором ресурсов в продакшоне

Точно. Никому не известный мёртвый проект Facebook был написан на PHP. И не взлетел, был похоронен тормозами и жором ресурсов. Другой проект — Dropbox — пал жертвой Питона. Что внутри GCP творится — это вообще не рассказать словами (потому что NDA подписал), но жестами могу намекнуть на гигантских неядовитых змей. И так — что ни возьми. Если бы не было альтернатив на идеальных языках программирования с идеальной архитектурой — даже не знаю, что бы мы делали…


"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 06-Июл-25 21:43 
А ничо, что ФБ свой пхп запилил, имменно потому что тот, которы был, их не устраивал? Про Dropbox и прочее рассуждать не буду, т.к. вообще не в курсе, что там да как.

"Доступен язык программирования Perl 5.42"
Отправлено анонимус , 07-Июл-25 21:07 
А ничо что ФБ свой пхп запилил именно потому что у него уже были на это деньги? А откуда взялись деньги?

"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 08-Июл-25 07:27 
Инвестиции? Нет, не слышал.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 10-Июл-25 00:30 
Чтобы инвестиции были, надо чтобы было что показать инвестору. И он не будет ждать 20 лет пока Идеал Идеалович закончит продумывать оптимальное расположение файлов проекта на диске. Такие дела. Стулья можно и утром, но деньги вперёд.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 05:20 
Чтобы знать, что решение не тянет миллион пользователей в пикосекунду надо сперва найти столько пользователей. Задним числом все умные, но тебя там, где решения принимались не было. И быть не могло.

"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 06-Июл-25 09:27 
То есть, твои проекты рассчитаны на тебя, любимого и ещё полтора васяна. Ок.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 21:02 
Я вижу, что ты и программы на идеальных языках писать мастер, и архитектор не слабый, да и в бизнесе человек не последний. Ок.

"Доступен язык программирования Perl 5.42"
Отправлено freehck , 06-Июл-25 11:13 
> Потом, количество коммерчески успешных проектов как раз прекрасно показывает годится язык для прода или нет.

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

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

95% проектов погибают именно по этой причине


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:41 
Не будет, и Пол Грэм в свое время отлично это описал - они смотрели, кого нанимают конкурирующие стартапы. Если это были мейнстримные языки типа Java или шарпов - можно было не беспокоиться о конкуренции совершенно.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 10-Июл-25 00:51 
Пол писал про весьма специфическую штуку в весьма специфическом контексте — конкурирующие стартапы. И суть его эссе была именно в том, что Лисп позволяет очень быстро итерировать при высокой производительности результата. Поэтому пока ребята на Яве выстраивают иерархию классов, лиспер успевает наконсить в десять этажей, увидеть что пользователям нужно что-то совершенно иное, выкинуть и наконсить ещё десять. Но при этом удачи найти лиспера, тем более двух. Я с CL работал на одном-единственном проекте шесть лет назад. Мне до сих пор время от времени пишут хедхантеры с предложениями, хотя в моём резюме ни слова ни про Лисп.

"Доступен язык программирования Perl 5.42"
Отправлено freehck , 10-Июл-25 18:06 
> Но при этом удачи найти лиспера, тем более двух.

Найти несколько лисперов -- не проблема.
Проблема -- заставить их играть в команде.


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 11-Июл-25 02:00 
Да нет, писал он штуку, по нашим временам вполне банальную - интернет-магазины. Это в те времена такое было стартапом, т.к. динамический Веб едва родился, а позже, во времена Букингов - уже не таким свежим, уже надо было просто обгонять конкурентов. Просто Перл во времена Грэма был еще достаточно свеж и нестабилен, какой-нибудь Питон - под стол пешком ходил еще (впрочем, он бы хуже годился из-за ограничений Гвидо), а Лисп уже был вполне развит. А так суть подхода кардинально не изменится, что Лисп, что Перл... вот Букинг попозже уже и взял Перл - и перловиков было проще найти, чем лисповиков.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 08-Июл-25 12:10 
> Год 2025й от рождества христова, кодеры всё ещё не определились с кодировками файлов.

W3C определил для всех UTF-8.

> Когда определятся, там уже и о строках подумать можно будет.

А что о них думать? Кодировка текстовых файлов - это и есть кодировка строк, в нём содержащихся.


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:37 
Неа, он наглядно показывает разницу- на чем _новые_ коммерчески успешные проекты *взлетают* и на чем потом неповоротливые корпорации, зараженные менеджерами в -цать слоев иерархии, тормозят и нанимают идиотов, чтобы побольше (потому что у менеджера зарплата от числа людей в подчинении).
Иными словами, на Перле взлетел успешный стартап Букинг, смогший конкурировать с тогдашними неповоротливыми корпорациями именно за счет языка, позволявшего делать быстро. Когда он сам стал неповоротливой корпорацией, зачем ему теперь инструмент для победы стартапов? Тут теперь совсем другие интересы внутри.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 10-Июл-25 00:56 
> потому что у менеджера зарплата от числа людей в подчинении

А ветер дует потому, что деревья качаются, да? Я менеджер, у меня в KPI нет количества людей в подчинении нигде, это бессмысленная метрика. Моя зарплата и карьерный рост зависят от того как движутся мои проекты. А количество людей зависит от количества проектов под моим котролем. Компания — самая обычная корпорация из s&p500.


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 11-Июл-25 02:02 
Людей и в KPI ? Ох лол. Ну вот ты и спалился, что "менеджер" ты в лучшем случае рядовой "по продажам", а то и по клинингу.

"Доступен язык программирования Perl 5.42"
Отправлено Самый Лучший Гусь , 04-Июл-25 01:30 
Интересный язык с сомобытными идеями который к сожалению уже уходит в разряд ретро

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 08:31 
Nim

"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 04-Июл-25 10:04 
Ну да, они новую версию пилят, снова все ломая.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 20:26 
Nim (zig, hare и т.д.) это игрульки отдельных разработчиков, без библиотек, сообщества и цели. Прод на них не будут писать никогда.

"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 04-Июл-25 23:51 
> Прод на них не будут писать никогда

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 08:47 
Обчитался нейросетей?

Держи, бесплатно:

https://github.com/search?q=language%3ANim&type=Reposit...

https://github.com/ringabout/awesome-nim


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 10:17 
Могу ошибаться, то Питон занял место не своё и фронтенд и бекенд. Везде один Питон.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 10:39 
Глистам в ведре тоже кажется, что небо - это просто круглая дыра. Когда кодишь на пестоне, вряд ли можно ожидать, что ты хоть что-то видишь вне пестонодыры.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 10:59 
Ну при этом я столкнулся с софтом которое на питоне, знакомый также в питонисты подался. Вакансий питонистов больше чем плюсовиков, зарплаты выше.

"Доступен язык программирования Perl 5.42"
Отправлено anonymos , 04-Июл-25 14:15 
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)


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:44 
Скопипастил этот код, и...

>>>     def clsx(self):

  File "<stdin>", line 1
    def clsx(self):
    ^
IndentationError: unexpected indent
>>>         Test.x += 1

  File "<stdin>", line 1
    Test.x += 1
    ^
IndentationError: unexpected indent

вот и весь ваш путон


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 14:26 
>который к сожалению уже уходит в разряд ретро

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


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:45 
Очередная секта свидетелей статической типизации, далекая от реального мира.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 16:01 
> Интересный язык с сомобытными идеями который к сожалению уже уходит в разряд ретро

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


"Доступен язык программирования Perl 5.42"
Отправлено Анонусс , 04-Июл-25 16:27 
> сомобытные идеи

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

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

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


"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 05-Июл-25 11:03 
> Сейчас его место занимает python 3

* Представил себе SpamAssassin на python3 *


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 14:40 
Выкини уже этот кусок легаси. Десять лет как rspamd есть, на православной сишечке.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 06:11 
Язык слишком эззотеричный. И для многих неясно, зачем писать скрипты на перле, когда есть баш -для админ.системы, и питон- для всего остального.

"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 05-Июл-25 11:09 
> зачем писать скрипты на перле, когда есть баш -для админ.системы, и питон- для всего остального.

Перловщик может в одну строчку сделать то, на что питонисту потребуется целая простыня.



"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 14:42 
>> зачем писать скрипты на перле, когда есть баш -для админ.системы, и питон- для всего остального.
> Перловщик может в одну строчку сделать то, на что питонисту потребуется целая
> простыня.

Главное чтобы он сам через полгода понял что написал в этом однострочнике.


"Доступен язык программирования Perl 5.42"
Отправлено user90 , 04-Июл-25 07:03 
Господа забывают, что такое Perl. А это Practical Extraction and Report Language, и в этой области он по прежнему лучший!

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 07:19 
А это уже область ИИ-агентов. Попробуй скормить данные Grok'у, тебе понравится.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 08:18 
Гроку 10гб не скормить. Ему не понравится.

"Доступен язык программирования Perl 5.42"
Отправлено _kp , 04-Июл-25 10:02 
Когда то и компы были гигантские, выделенную подстанцию требовали. И с 640кб были.
Будет подобное и локально.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 19:42 
Лоh и в африке лоh. Вместо того чтобы использовать возможность, вечно ищет оправдания для ничего неделания.

"Доступен язык программирования Perl 5.42"
Отправлено Жироватт , 04-Июл-25 08:54 
Который настолько ЭТИЧЕН, что откажется обрабатывать любые, не утверждённые генеральной линии штатовских партий, данные?
Или который, в отличие от тупого скрипта, любит, умеет и практикует галлюцинации?

Не, пасиб.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 17:16 
Ну пользуйся гомоморфным шифрованием, если боишься что тебе за данные Обама в подъезде лампочки снова бить начнёт.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 18:36 
Это не поможет. Нужна модель без цензуры, а не просто канал для передачи данных.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 05:24 
А чего не сделаешь раз нужна?

"Доступен язык программирования Perl 5.42"
Отправлено Dzen Python , 04-Июл-25 19:49 
Что поделать - *правильно* обученный, на *правильном* датасете *правильных* данных ИИ-агент в отличие от мифического "Обама-в-парадной" уже существует и уже *правильно* толкует индусам в этих ваших твиттерах новости

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 08:15 
Поэтому, ненужно его пихать в другие области.

"Доступен язык программирования Perl 5.42"
Отправлено user90 , 04-Июл-25 08:24 
Но "все — текст" ;)

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 12:44 
Регекспы уже давно есть во всех языках.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 14:44 
> Регекспы уже давно есть во всех языках.

Ну для обработки текста регекспами он до сих пор сильно удобнее других вариантов.

Другое дело, что так и остался неудобнее во всём остальном.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 16:02 
Да нет конечно. Нет в нём ничего специфического ни про extraction, ни про report. Регулярки  и принты есть в любом ЯП, и пользоваться ими проще.

"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:46 
Щас бы это делать на любом другом языке, где как минимум регулярки еще эскейпить придется. "Проще", my ass.

"Доступен язык программирования Perl 5.42"
Отправлено YetAnotherOnanym , 05-Июл-25 10:55 
> это Practical Extraction and Report Language

Это Pathologically Eclectic Rubbish Lister.


"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 04-Июл-25 10:05 
class Point {
       field $x :reader :writer :param;
       field $y :reader :writer :param;
   }
   my $p = Point->new( x => 20, y => 40 );

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


"Доступен язык программирования Perl 5.42"
Отправлено 1 , 04-Июл-25 11:33 
> А с каких пор в перле классы были?

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


"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 12:22 
прямо вот class завезли относительно недавно
нафига он нужен - я не понимаю
bless же есть

"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 04-Июл-25 14:30 
> прямо вот class завезли относительно недавно
> нафига он нужен - я не понимаю
> bless же есть

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


"Доступен язык программирования Perl 5.42"
Отправлено wd , 05-Июл-25 01:12 
которым никто не пользуется всеравно :)
откровенно говоря, я досихпор пишу так, что большая часть кода будет работать и на 5.6
хотя use v5.12 или use v5.14 у меня давно в порядке вещей
в первую очередь оно включает стрикт, во вторую - дает say, который я всеравно кроме как в perl -E не пользую, ну и наверное силу земли

"Доступен язык программирования Perl 5.42"
Отправлено wd , 05-Июл-25 05:28 
http://paste.org.ru/?v6edyr
вот, я таки это нашел
вообще это лет 20 назад, мне, с пеной у рта, доказывали, что перл - говно, потому, что в нем нет классов
я породил это

"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 05-Июл-25 10:40 
> http://paste.org.ru/?v6edyr
> вот, я таки это нашел
> вообще это лет 20 назад, мне, с пеной у рта, доказывали, что
> перл - говно, потому, что в нем нет классов
> я породил это

Ужос. Особенно   sub import{no strict 'refs';do{*{caller(0)."::$_"}=${"$_[0]::"}{$_}} for keys%{"$_[0]::"}}



"Доступен язык программирования Perl 5.42"
Отправлено wd , 05-Июл-25 13:31 
да чтож вас всех этот импорт так парит
ну это так и должно быть, ну откройте вы Export.pm и гляньте на его импорт - там ровно тоже самое будет

"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 07-Июл-25 23:35 
> да чтож вас всех этот импорт так парит

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


"Доступен язык программирования Perl 5.42"
Отправлено wd , 08-Июл-25 09:01 
я не порицаю, я же сам тут цитировал perlstyle, где говорится, что не надо писать вот так вот, просто потому, что можешь, писать нужно максимально читабельно
этот пример я сделал просто чтобы показать концепт классов, собственно если все это распихать по файлам, и импорт этот из однострочника превратить в то, что в экспортере - будет не так страшно
просто я тогда далеко ходить не стал, просто всковырнул его из одного из своих перочинных кодов, где у меня просто навалены однострочные функции, которые я могу по быстрому вбросить
это все рисовалось для себя и не подразумевало, что один мутант свалит в японию и начнет это мое безобразие использовать там в продакшне... ну японцы к закорючкам привыкшие, им, видимо, норм

"Доступен язык программирования Perl 5.42"
Отправлено freehck , 06-Июл-25 11:38 
> http://paste.org.ru/?v6edyr

Слушай, а прикольно. То есть на базе экземплярной модели ООП вполне можно породить классовую, причём всего в несколько строчек. Круто. =)


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 20:05 
Всё правильно, есть bless :) Который, к слову, позволяет даже сменить тип у переменной!! Понятно, что это такая маленькая грабля, но иногда удобна.

"Доступен язык программирования Perl 5.42"
Отправлено wd , 07-Июл-25 09:04 
>даже сменить тип

дадада, я развлекался так:

#!/usr/bin/perl -w

use Qt;
use Qtx qw(QApplication QMainWindow QWidget QObject QString QPushButton QPixmap QLabel QBoxLayout QLineEdit QByteArray);

sub yuki(&@){shift->(@_);@_}

$app = QApplication([$0,@ARGV]);
($w)=yuki{
  $_[1]->setCentralWidget(yuki{$_[1]->setLayout(
    yuki{
      $_[1]->addWidget($_) for
        (yuki{$_[1]->setPixmap(QPixmap QString "2.png")}QLabel QString)
        ,yuki{$_[1]->setLayout(
           yuki{
             $_[1]->addWidget($_) for $e=QLineEdit(QString "qwe"),$b=QPushButton QString "ok"
           }QHBoxLayout
         )}QWidget
    }QVBoxLayout
  )}QWidget)
}QMainWindow;
$m=QObject([],['zz()']);
$w->connect($b,SIGNAL("clicked()"),$m,SLOT('zz()'));
bless $m;

$w->show();
$app->exec();

sub zz{print $e->text->toLatin1->data;$app->exit()}


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 09-Июл-25 00:00 
Нет бы взять Tcl/Tk, то есть use Tkx; на перле переделать во что-то такое...

"Доступен язык программирования Perl 5.42"
Отправлено wd , 09-Июл-25 02:12 
> Нет бы взять Tcl/Tk, то есть use Tkx; на перле переделать во
> что-то такое...

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

просто мальчику было скучно, мальчик ковырял в носу


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 11-Июл-25 02:05 
Так не Tk и не Gtk, которые пытались *портированную обвязку* и потому вечно в мамонтах из-за спящих/сдохших майнтейнеров а именно use Tkx - это языковой клей напрямую в Tcl/Tk, соответственно можно использовать свежайшие Tk-либы. Соответственно прослойка там минимальна, для наскриптовать сложный гуй я о своих надстройках деревом по типу как выше задумывался...

"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:47 
Это перловый коре тим так пытается в маркетинг "смотрите, у нас тоже есть!" вместо решения действительно важных проблем. А так действительно не нужно.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 10:23 
Сабж сложен в изучении?
Много вакансий на сабже?
Сколько платят за знание сабжа?

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 10:41 
В Перле сложно примерно ВСЁ. :) Но при этом это по-прежнему язык, кратно лучший похапэхи.

"Доступен язык программирования Perl 5.42"
Отправлено 1 , 04-Июл-25 11:37 
> В Перле сложно примерно ВСЁ.

Ну не так всё плохо.

> Но при этом это по-прежнему язык, кратно лучший похапэхи.

Ну наблюдается понижения уровня программистов (для массовости), отсюда цепочка perl->php->python. Последний уже полное дно, дальше ухудшать уже некуда (была, конечно попытка при переходе 2->3 ...).


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 12:48 
При том, что, как и в Похапехе, в глазах пестрит от этих $.
Вот если бы з/п перлопргера так пестрела этими значками, то тогда можно было бы мириться.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 19:47 
В этом и была задумка! Доллар чётко даёт понять, что именно у тебя в руках и никогда не даст  спутать с функцией, строкой, нэймспэйсом и т.п. Не даром даже есть ВЕНГЕРСКАЯ НОТАЦИЯ, что приходится для большей строгости прибавлять к имени приставки.
И надо заметить, Перл рождался на чёрно-зелёных мониторах, никакой подсветки синтаксиса тогда не было вообще! (или на распечатке) Так что доллар был вполне разумным решением.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 12:13 
Но ныне мониторы у нас не чёрно-зелёные.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 13:55 
Не сложнее, чем делать сайты на ассемблере.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 01:06 
У сайтов на ассемблере, кстати, есть одно преимущество - их пишут под одну архитектуру(целевая у сервера), в отличии от всякого прикладного, где несколько ос, и кроме х86 могут быть армы какие нибудь.
Ну и про производительность не стоит забывать.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 12:15 
>У сайтов на ассемблере, кстати, есть одно преимущество - их пишут под одну архитектуру

Вы считаете это преимуществом?


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 10:43 
Обычно при выборе ЯП я оплату ставил на последнее место.
Например, мне тошнит php и нравится rust

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 10:58 
Ну я вообще мало знаю любителей PHP. Но Rust не фанат, мне всё что содержит в названии C нравится: СИ, С++, С#, 1C.

"Доступен язык программирования Perl 5.42"
Отправлено 1 , 04-Июл-25 11:39 
> не всё что содержит в названии C нравится: СИ, С++, С#, 1C.

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 11:53 
Не, ну если первые два учил во времена учёбы, потом решил, вот недавно начал интересоваться 1С.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 11:55 
Слышал про Соболь, но никогда не интересовался, видимо не очень распространённый.

"Доступен язык программирования Perl 5.42"
Отправлено Илья , 04-Июл-25 19:54 
>С#

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 19:49 
Тс-с-с! Не пали контору :) А то понабежит 3умеров кодить за доширак - хрен потом прорвёшься!

(сишарплю 20 лет и это прекрасно!) Но хотелось бы чего-то уровня Немерле.


"Доступен язык программирования Perl 5.42"
Отправлено wd , 05-Июл-25 06:01 
про 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);


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 19:50 
Забыл С-- - тоже интересная вещь

"Доступен язык программирования Perl 5.42"
Отправлено аролп5 , 04-Июл-25 11:14 
Идём на hh и смотрим. 80+ вакансий и ЗП 200к+. Поэтому пока лучше учить java/kotlin

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 13:02 
А что лучше, Java или 1с?

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 14:06 
1С сильно нишевый. За пределами экосистемы 1C никому не нужен.

"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 13:22 
а вы не задумывались, почему их так много и висят они годами?

"Доступен язык программирования Perl 5.42"
Отправлено 12yoexpert , 04-Июл-25 23:04 
рожай уже свою глубокую мысль

"Доступен язык программирования Perl 5.42"
Отправлено woof , 05-Июл-25 05:53 
"Почему долго висят" - потому что в нашей стране очень мало сильных специалистов
"Почему их так много" - потому что они востребованы

"Доступен язык программирования Perl 5.42"
Отправлено 12yoexpert , 05-Июл-25 08:52 
80+ вакансий это много?
а то, что они висят годами, говорит только о том, что это мёртвый язык, и кончишь ты преподом в российском универе

"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 05-Июл-25 10:39 
> преподом в российском универе

Зато можно работать до глубокой старости.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 14:49 
>> преподом в российском универе
> Зато можно работать до глубокой старости.

Точнее, пока лавочку не прикрыли.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 21:07 
> Зато можно работать до глубокой старости.

Можно. Но еда кончится быстрее.


"Доступен язык программирования Perl 5.42"
Отправлено Кошкажена , 07-Июл-25 12:25 
>> Зато можно работать до глубокой старости.
> Можно. Но еда кончится быстрее.

Зато на помойке истории, на которую выкинут, из-за того, что ты просто "стар" еды точно будет в достатке.


"Доступен язык программирования Perl 5.42"
Отправлено freehck , 06-Июл-25 11:43 
> "Почему долго висят" - потому что в нашей стране очень мало сильных специалистов

Откуда тут приписка "в нашей стране"? В нашей стране много сильных специалистов. Другое дело, что сильных специалистов в целом по миру -- мало, и они все задействованы на постоянной основе.

PS: ну и плюс к тому, 200к -- это мало для сильного специалиста.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 19:54 
Где логическая цепочка между 200К и "поэтому java"?? Я что-то вообще логику не секу.

"Доступен язык программирования Perl 5.42"
Отправлено wd , 04-Июл-25 13:24 
его нельзя изучать, перлом нужно проникнуться, нужно научиться думать на перле, разговаривать на перле

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 14:18 
> перлом нужно проникнуться, нужно научиться думать на перле, разговаривать на перле

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 19:55 
Нет никакого "любого языка". Если ты профи на Перле, ты и кодишь в окружении таких же.

"Доступен язык программирования Perl 5.42"
Отправлено вымя , 04-Июл-25 23:23 
> разговаривать на перле

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 20:01 
Сначала линукс выёживается КОИ8, создавая ДИЧАЙШИЙ баттхёрт у наивных юзеров (т.к. всё равно приходится обмениваться документами с вендузятниками), а потом эти же пингвофилы запиливают IceWM с почти полным копированием Win95 :)))

Kpeтuн трольвадс вместо КОИ должен был выбрать хотя бы win1251 - как раз чтобы для тру линуксофила переход между обоими мирами был максимально простым. Вместо этого потеряли 20 лет, кучу юзеров и всё равно пришли к UTF8. Браво!


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 13:56 
Сначала русские повыёживались, наплодив 100500 кодировок для своего языка. А виноватым почму-то вы назначили Торвальдса. Хотя, ныне гражданину США Л. Торвальдсу вообще фиолетово на русские кодировки, для него ASCII то, что доктор прописал.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 06-Июл-25 14:02 
Может по-вашему, ещё Торвальдс должен был выбрать для перевода строки 0x0D 0x0A вместо 0x0A в текстовых файлах?

"Доступен язык программирования Perl 5.42"
Отправлено wd , 07-Июл-25 10:04 
кои8 был немного раньше чем 1251
линукс - это просто ядро, ему до кодировок вообще фиолетово
gnu просто унаследовало все это от юникса, шиндовса в природе тогда небыло
про то откуда взялся интерфейс винды напоминать надо? там что-то про копировальные аппараты

"Доступен язык программирования Perl 5.42"
Отправлено wd , 07-Июл-25 10:07 
а, и да, еще в 98ом году, гдето там майкрософт орал, что в локальной кодировке можешь писать, а можешь не писать - на выбор, но в юникоде ты писать обязан
но по прежнему все лепят 1251...

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 09-Июл-25 02:12 
> Win95, win1251

В Win95, да и многих других windows:

- Русские тексты кодируются в ср1251.
- Русские имена файлов на файловой системе FAT16/FAT32 кодируются в ср866.
- Если в терминале получить листинг каталога с русскими именами в файл (dir >file.txt), и открыть файл в notepad, получишь кракозябры, так как имена будут в ср866, а notepad будет их пытаться показывать в cp1251. Даже в довольно новых виндах и на NTFS.
- Русские имена файлов в ZIP-ах и прочих архивах кодируются в cp866. GUI-архиваторы либо перекодируют, либо показывают кракозябры.
- Если на компьютере не русская локаль, а, например, немецкая - прочитать файлы с русскими именами на FAT16/FAT32 нельзя. Но увидеть их в каталоге можно.

Т.е. Винда сама с собой по кодировкам не совместима. И на какую из виндовых кодировок, cp866 или cp1251 должен был перейти Линукс с koi8, по твоему мнению?


"Доступен язык программирования Perl 5.42"
Отправлено Джубей , 06-Авг-25 00:48 
Ну ютф-8 был первым на plan9 и странно что ГНУ должен был брать вин1251, если тогда Винды даже не было. Ну Линус никогда никакой ОСи не пилил и тем более кодировок. Он запилил ядро которую прикрутили к ГНУ ось. Судя по твоим знаниям, отпугнул кои8р только тебя, но я думаю тебя и командная строка отпугнет, тк явно в голове у тебя мягкий хлеб. Судя по тому бреду, который ты тут из себя выдавил.

"Доступен язык программирования Perl 5.42"
Отправлено ptr , 04-Июл-25 13:31 
> Сабж сложен в изучении?

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

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

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

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

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

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 13:38 
RPG для меня это role play game, ЯП  с таким названием впервые слышу.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 01:10 
Двачую, хотя под РПГ можно было бы понимать Луа какую нибудь, короче всю скриптоту что в игровой индустрии используют.

"Доступен язык программирования Perl 5.42"
Отправлено ptr , 05-Июл-25 13:05 
https://ru.wikipedia.org/wiki/RPG_(%D1%8F%D0&...)

До сих пор используется. В основном на IBM мэйнфремах и AS/400. Даже в некоторых российских банках.


"Доступен язык программирования Perl 5.42"
Отправлено 12yoexpert , 05-Июл-25 22:23 
> https://ru.wikipedia.org/wiki/RPG_(%D1%8F%D0&...

koi8-r или cp1251?


"Доступен язык программирования Perl 5.42"
Отправлено ptr , 06-Июл-25 10:33 
> koi8-r или cp1251?

UTF-8, но завершающая скобка теряется.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 19:57 
Очень странно, как разные языки могут "стоить" по-разному! По-моему, в вакансии "стоит" именно сам человек - опыт, скилы, возраст. Опытный перлист стоит десятка зумеров со всех их растами, го и пестонами.

"Доступен язык программирования Perl 5.42"
Отправлено Прохожий , 07-Июл-25 11:00 
Rust в большинстве случаев (если не брать во внимание скриптоту) для более-менее сложного ПО будет гораздо лучше Perl, Python, Go. Поэтому вряд ли опытный перлист будет стоить дороже опытного растианина. На всякий случай. Я ни разу не зумер. Мне 50+. Но знаю на хорошем уровне Python, и на начальном уровне Rust и Perl, поэтому, мне кажется, имею право на такое мнение. С Go знаком только по критическим статьям о нём, но мне их хватило, чтобы понять, что этот язык не стоит моего внимания.

"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 09-Июл-25 00:02 
Будет банально по той причине, что опытный он в том числе по возрасту, т.к. откуда бы зумер успел стать опытным на перле - а тот получал опыт еще давно.
Сравнение с растом достаточно странное в контексте Go - что то, что другое суть языки с хайпом.

"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 08-Июл-25 23:55 
Не, не потребуется, достаточно пересборки перла под архитектуры с 64-битным time_t.

"Доступен язык программирования Perl 5.42"
Отправлено ptr , 09-Июл-25 00:49 
> Не, не потребуется, достаточно пересборки перла под архитектуры с 64-битным time_t.

Во-первых, Вы сильно отстали от жизни, так как начиная с Perl 5.12, время в Perl вообще не зависит от time_t, а используется собственная реализация. https://perl5doc.ru/Time::Local
Во-вторых, проблема тут не столько во внутреннем представлении, а как и с проблемой 2000-го года, в интеграции: бинарных файлах, базах данных, вроде Berkeley DB, сообщениях CORBA и т.п.


"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 11-Июл-25 02:17 
> время в Perl вообще не зависит от time_t, а используется собственная реализация. https://perl5doc.ru/Time::Localвремя в Perl вообще не зависит от time_t, а используется собственная реализация. https://perl5doc.ru/Time::Local

Спасибо, поржал. Осознать прочитанное в этом мане пробовали? Речь идёт о том, что он больше не полагается на mktime() и timegm() из libc, делая их сам - но работают они по-прежнему с тем же самым концептом time_t в секундах с 1970 года. И иначе и быть не может: откуда он еще получит реальное время, как не спросив у ОС, а это time_t?..

> в интеграции: бинарных файлах, базах данных, вроде Berkeley DB, сообщениях CORBA и т.п.

Мне сомнительно, что эта проблема массова, в случае Перла, ибо не времена Кобола же были, в самом деле. Например, если это JSON, так там числа нормально будут работать до 2^52, и т.д.


"Доступен язык программирования Perl 5.42"
Отправлено ptr , 11-Июл-25 10:29 
>> время в Perl вообще не зависит от time_t, а используется собственная реализация. https://perl5doc.ru/Time::Localвремя в Perl вообще не зависит от time_t, а используется собственная реализация. https://perl5doc.ru/Time::Local
> Спасибо, поржал. Осознать прочитанное в этом мане пробовали?

Могу рекомендовать это сделать Вам )))

> откуда он еще получит реальное время

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

>> в интеграции: бинарных файлах, базах данных, вроде Berkeley DB, сообщениях CORBA и т.п.
> если это JSON

JSON - это бинарный файл? Или формат сообщений CORBA? )))



"Доступен язык программирования Perl 5.42"
Отправлено freehck , 06-Июл-25 11:39 
> Сабж сложен в изучении?

Да

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

Нет

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

Мало

Perl -- ну это скорее для души, для кругозора.


"Доступен язык программирования Perl 5.42"
Отправлено iPony128052 , 07-Июл-25 07:02 
> Сабж сложен в изучении? Много вакансий на сабже?

Я изредка пишу на Perl, хотя в вакансии об этом не было ни слова.
И по проекту это примерно 0.1% кода.

Не сказал бы, что сложно. Прочитал книгу и в перёд на базовом уровне.


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 04-Июл-25 19:40 
> При подготовке нового выпуска было изменено около 280 тысяч
> строк кода (без документации и автоматически сгенерированного
> кода - 93 тысячи)

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

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


"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 01:12 
Если это делали мясные мешки - уважение, в наш век ии агентов это уже подвиг.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 19:52 
Каждый прогер написал около 1.5К кода. Я такое за день интенсивного кодинга выдаю.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 07-Июл-25 00:46 
На расте пишешь?

"Доступен язык программирования Perl 5.42"
Отправлено Прохожий , 08-Июл-25 09:53 
Вряд ли. Скорее, Питон или Джаваскрипт. Там выдать 1.5 тыс. строк несложно.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 08-Июл-25 11:02 
Он же сказал "интенсивного", не сходится.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 08-Июл-25 11:42 
пыхапыст он, всё сходится.

"Доступен язык программирования Perl 5.42"
Отправлено Аноним , 05-Июл-25 09:23 
Зачем пихать в синтаксис то, что могло бы быть библиотекой функций?

"Доступен язык программирования Perl 5.42"
Отправлено вымя , 05-Июл-25 10:02 
Действительно, конструкции вида sqrt(add(mul(x,x),pow(y,2))) хватит всем!

"Доступен язык программирования Perl 5.42"
Отправлено nuclight , 09-Июл-25 00:04 
Только не так, а:

(sqrt
  (add
    (mul x x)
    (pow y 2)
))

вот тогда хватит всем!