LINUX.ORG.RU

Perl-Conf.Ru/25

 ,


3

4

Perl-Conf.Ru/25 — это ежегодная встреча Perl-разработчиков в России. В 2025 г. конференция пройдёт в субботу 27 сентября. Happy birthday to Larry!

Миссия Perl-Conf.Ru — поддерживать российское Perl-сообщество, способствовать обмену опытом и лучшими практиками, быть площадкой для общения коллег, аккумулировать экспертизу по Perl.

Конференция проходит в гибридном формате: оффлайн в Москве и онлайн трансляция для тех, кто не сможет присутствовать лично.

Программа
17:30 Сбор участников
18:00 Открытие конференции
18:10 Test2: жизнь после Test::More
18:40 Turbo Perl batteries debugger included
19:10 Перерыв
19:40 Описание typemap для передачи структур в XS
20:10 Perl & Postgres: трудный путь, потому что это проще
20:40 Закрытие конференции
21:00 Неофициальная часть в баре (место уточняется)

Стоимость участия
Мероприятие полностью подготовлено за собственные средства. Участие в событии бесплатно. При желании, можете поддержать организатора финансово. Разумная величина вашей поддержки: 0 — 2000 ₽.

>>> Подробности на perl-conf.ru

★★★★★

Проверено: Zhbert ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от Chiffchaff

Байты не сыреют и не гниют - вредная аналогия человеческого мозга.

Чтобы понять этих жадин, достаточно хоть раз побывать на той стороне: заплатить своими кровными за проект. Мигом в голове просыпается желание резать косты.

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

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

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

Зачем?? Людям не «зудит» получить «что-то современное», им надо, чтобы работало, как им надо. А «Работает? — не трогай!»...

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

Да человек просто живет в каком-то своём вакууме, пишет на своём питоне и ничего больше и не видит :))

Ну, живёт человек, вам же жить не мешает — вот и пусть себе живёт, как ему хочется!..

Не надо в него палкой тыкать... :))

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

А вы умеете программировать только на одном функциональном языке? Тоесть для освоения любого другого языка вам нужно годы? Тогда мне вас жаль. Хотя чё жаль… именно из-за таких программистов у меня всегда будет работа :)

А что в вашем понимании отмер? Это когда молодеж в универе и школе не учит этот язык? Я лично знаю нескольких студентов которые начали изучать perl и вполне успешно на нём пишут небольшие проекты. Вообще, конечно, умение выбирать инструмент очень полезное.

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

Для того, чтобы начать писать на другом языке мне не надо практически ничего. В своё время, я внёс несколько правок в сервис на Go, не зная о языке ничего. А затем и на работе стал править сервисы на Go довольно успешно, и лишь спустя какое-то время сподобился прочитать про основы Go.

Почти то же самое с Rust: надо было добавить функциональность к одной программе, сел, да написал (там не было сложных структур данных, к счастью, иначе так легко не отделался бы).

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

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

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

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

Chiffchaff
()
Ответ на: комментарий от Somebody

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

Потерял за счёт текучки кадров (мало кому понравится работать на рабочем месте с UX CP/M в 1990-2000-х), за счёт ограничений инструмента (наверное в такую БД можно запихнуть ассортимент очень небольшого магазина, но не более).

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

Chiffchaff
()
Ответ на: комментарий от Gin

mod_perl это попытка использовать перл по-взрослому. Но перл оказался слишком наколенной поделкой для такого применения.

bread
()
Ответ на: комментарий от Somebody

Людям не «зудит» получить «что-то современное», им надо, чтобы работало, как им надо.

А потом шаман, который это тащил 30 лет, взял и умер. И ушлый бизнесмен такой сидит обтекает, а потом разоряется и сам тоже лезет в петельку.

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

там вроде говнофреймворки типа каталиста в mod_perl не умели… ну а пхп… он сам себе шаблонизатор и все из коробки работает… да и там же в перл пакеты ставить нужно системно, а в пхп «либа» - это набор файлов, распаковал их где удобно и подключил через include/require… да и к разработке разный подход, но установщикам антивируса бабушкина виднее

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

По-моему, эти ужастики скорее про то, что тут лихорадочно то и дело переписывают, то на Rust, но ещё на чём-нибудь... Люди с судорожными порывами «попереписывать» на том, что им вчера «зашло», а завтра так же судорожно «зайдёт» нечто совсем другое —такие люди нестабильны и ненадёжны...

Они есть ваши «шаманы»...

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

Затем, что уверен

А, ну да!.. Против этого и не поспоришь... «Верую, ибо абсурдно!», ага....

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

По-моему, эти ужастики скорее про то, что тут лихорадочно то и дело переписывают, то на Rust, но ещё на чём-нибудь… Люди с судорожными порывами «попереписывать» на том, что им вчера «зашло», а завтра так же судорожно «зайдёт» нечто совсем другое —такие люди нестабильны и ненадёжны…

Бывают и объективные причины. Например, большой легаси монолит.

Технологии устаревшие, людей не найти - они просто не хотят идти.

Я с таким сталкивался, как наниматель (и речь отнюдь не про Perl, а про гораздо более новые технологии): говоришь кандидату с какими технологиями придётся работать, а он разворачивается и уходит с порога. Рынок ведь не абсолютно эластичный. Мне, позиция кандидата понятна: ему хочется найти работу, где и интересно, и где он будет развивать те навыки, которые позволят ему найти более высокооплачиваемую работу в будущем, и быстрее. Ему неохота застревать в прошлом.

Большой легаси монолит сложно поддерживать. Код из-за неоптимальных решений становится запутаным, трогаешь в одном месте, ломается 10. Из-за этого сдулись Ruby on Rails и Ruby вместе с ними. RoR порождает неподдерживаемые архитектуры (со слов тех людей, кто ими занимался).

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

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

Короче, считать, что можно один раз написать софт, и никогда не трогать, не переписывать и даже не рефакторить - это ошибка.

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

Большой легаси монолит сложно поддерживать. Код из-за неоптимальных решений становится запутаным, трогаешь в одном месте, ломается 10. Из-за этого сдулись Ruby on Rails и Ruby вместе с ними. RoR порождает неподдерживаемые архитектуры (со слов тех людей, кто ими занимался).

Они сдулись ещё потому, что люди вынуждены были постоянно переписывать свои проекты под новые рельсы. Rails 3 был фактически новым фреймворком, и дальше очень многое там менялось. Тащить старые версии не вариант, они же не поддерживаются бесконечно. На каком-то этапе люди задумываются, а раз переписывать все равно, почему бы не выбрать технологию поэффективнее и помоднее. Так-то можно и на перле переписать старьё нормально, только зачем бы это делать.

bread
()
Ответ на: комментарий от Chiffchaff

Короче, считать, что можно один раз написать софт, и никогда не трогать, не переписывать и даже не рефакторить - это ошибка.

Ну да, написали прогу на gtk1 и живите теперь с этим. Софт не в вакууме же болтается, всё вокруг меняется постоянно. Даже перл совсем не такой, как в 1987.

bread
()
Ответ на: комментарий от Chiffchaff

Тогда вам для смены работы не понадобится досконально изучать язык годами. Более того для большинства проектов нет необходимости изучать язык ПОЛНОСТЬЮ, да и невозможно это чаще всего, тк языки развиваются, даже перл, вопреки мнению некоторых тут «программистов».

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

А Perl - точно отжил.

Вы повторяете это как мантру. Зачем?

Это своего рода аутотренинг. Попытка убедить себя.

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

Страшно боюсь Perl, да. Как приснится ночью, что все вдруг прозрели, и завтра побегут доставать пыльные Camel Book из забытых книжных шкафов, да как ринутся снова писать на Perl… Просыпаюсь в холодном поту, и долго занимаюсь аутотренингом, чтобы успокоиться.

Ну смешно же, нет?

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

такое ощущение, будто бы я в параллельный мир заглянул, из мира, где Perl действительно мёртв уже лет 20

Каждый в своём пузыре живёт. С моей точки зрения Ruby и Python мертвы чуть более, чем совсем, а perl пригождается регулярно, так как многое на нём сделать быстрее и проще. А проект пишется на Go.

У друга ощущение, что Ruby живее всех живых, а Python и Go мертвы.

У другого друга ощущение, что скоро не будет никаких Ruby, Go, Perl, а будет один сплошной Python.

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

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

Несколько раз писал, что где-то полгода подписан на все вакансии, да и просто поглядываю периодически на статьи со статистикой.

Так-то понятно, что если чисто работать на одном месте, всё устраивает, никаких туч впереди не предвидится, то наверное перестаёшь глядеть: а что там у других.

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

С точки зрения вакансий, ситуация выглядит совсем другой. Если прямо сейчас искать работу, то самое востребованное, это Python, Go, Java, C#, C++, Typescript/Javascript. Все остальные языки - на уровне статистической погрешности. Perl вакансию - вообще не уверен, что видел хотя бы одну за полгода.

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

Perl вакансии точно проскакивают периодически, я на них подписан из праздного любопытства что там предлагают :) из запомнившихся была вакансия в Газпромбанке :)

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

Короче, считать, что можно один раз написать софт, и никогда не трогать, не переписывать и даже не рефакторить - это ошибка.

Ну так и не ошибайтесь, не считайте... ) Но!.. «Обратное верно» © ;)

И почему вы считаете, что кто-то именно так и считает?? ;) Проекции?.. ;))

У меня «склалось» такое впечатление, что вы в этой своей пространной «речи» подгоняли «условия задачи» под уже имеющийся у вас, придуманный вами «ответ»... ;)

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

и помоднее

Вот именно!

Знакомый «порыв душевный», особенно у «молодых, да ранних», только-только «пришедших в этот мир», которые, как сороки, бросаются на всё «блестящее», что хочется «изучить-попробовать»... :))

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

И начиная с какого-то момента, поддерживать, например, бэкенд на устаревшем стеке, становится ощутимо дороже.

В этом плане хорош Python. Его очень быстро становится дорого поддерживать.

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

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

Пф-ф-ф! В IT взрослых и зрелых почти нет. Одни великовозрастные дети.

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

Ну смешно же, нет?

Никогда не любил клоунаду. Предпочитал более тонкий юмор.

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

С точки зрения вакансий, ситуация выглядит совсем другой. Если прямо сейчас искать работу, то самое востребованное, это Python, Go, Java, C#, C++, Typescript/Javascript. Все остальные языки - на уровне статистической погрешности.

Всегда нужны мартышки, чтобы поддерживать мартышкины проекты. Сам так работаю.

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

У другого друга ощущение, что скоро не будет никаких Ruby, Go, Perl, а будет один сплошной Python.

У меня ощущение, что C всех переживет. Что уж точно не нужно, так это пыхоплеяда. Например, давно сделали статически типизированный и компилируемый в натив аналог руби с минимальными потерями выразительности. То же самое с питоном. Ну и зачем упарываться скриптами? Это продолжают делать только из-за накопленного багажа готовых библиотек и инерции индустрии. Ну ещё масоны всех задалбывают своим питоном в вузах, это проблема. Хоть бы они уже все сторчались на раст переехали побыстрее.

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

Всегда нужны мартышки, чтобы поддерживать мартышкины проекты. Сам так работаю.

А Perl прям вершина человеческого духа? Нет, конечно.

Обычный императивный язык, в котором не было никаких особо новых идей, которые бы не существовали к моменту его создания. Кроме зубодробительного синтаксиса, из-за которого его справедливо назвали write only language.

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

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

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

Мне вот как раз кажется, что многие тут явно обиделись на мои комментарии (хотя будут отрицать, конечно), потому что именно застряли в далёком прошлом, и пытаются отрицать реальность, что мир давно ушёл вперёд, и даже не вспоминает про Perl, за несколькими исключениями. Ну так исключения - на то и исключения. Где-то читал, что вся банковская система Новой Зеландии до сих пор работает на КОБОЛ. Это не значит, что КОБОЛ - хороший язык, раз столько лет используется, и до сих пор не выкинули.

Chiffchaff
()
Ответ на: комментарий от bread

C всех переживёт, потому что в каких-то нишах у него нет альтернативы. В отличие, от всех остальных языков.

А у скриптовых языков есть и свои преимущества. В частности, REPL. Очень удобная штука, и в обучении тоже.

Chiffchaff
()
Ответ на: комментарий от bread

У меня ощущение, что C всех переживет.

У меня тоже.

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

А Perl прям вершина человеческого духа? Нет, конечно.

А между этими двумя состояниями у нас ничего нет? Это не так.

Дальше поскипал. О недостатках Perl я вполне себе знаю, но про «весь мир ушёл вперёд» тоже не сильно согласен. Весь мир топчется в лучшем случае в 80-х. Принципиально новых концепций, считай, так и нет. По крайней мере в популярных языках.

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

Какая-то ошибка в рассчётах - так ведь ни для одного другого языка не случалось за всю историю рейтинга?

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

Сами удивляемся. С 27го места на 10е по рейтингу TIOBE. И с чегой-то вдруг?

Что вас удивляет? Ренессанс CLI возобновил интерес к Perl.

15 лет активного использования NodeJS, многие Web мастера обжились в CLI, набрали достаточно опыта и знаний чтоб оценить Perl по достоинству:

  • постоянство (обратная совместимость)
  • предустановленность
  • качественная справка (и в консоле тоже)
  • синтаксис под быстрый скриптинг
  • первосортная книга Programming Perl
  • перманентное развитие языка (Perl 5.42 >= Perl 5.12)
  • автономность и бережливость (продуман под коносль)
  • распространенность

Усложнился Web => По полной задействован CLI (NodeJS, RoR, Laravel) => массово набрана квалификация для работы с Perl.

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

С 27го места на 10е по рейтингу TIOBE. И с чегой-то вдруг?

Это ЛОР-эффект. Последнее время много трындели о перле, лоровцы полезли гуглить, что это за зверь такой. Вот и результат. Потом снова упадет в анналы.

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

Сами удивляемся. С 27го места на 10е по рейтингу TIOBE. И с чегой-то вдруг?

Сговор тех самых «skilled engineers world-wide, courses and third party vendors», не?;))

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

Не, походу всяким учителям лингвистических моделей срочно понадобилось попарсить овердофига регексов :) Ихний пистон не справляется :)

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

Эт за что ж ты так людей-то не любишь? Это ж закат солнца вручную! :)

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

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

итог - доля перля в без учёта питона выстреливает

забавно как пример обычной задачи 10-11 класса для обратные величины и прочие ага-задачи

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

Да, Perl - уникален.

Код переводит

zero:odin:dva:tri:chetire:pyat

в

zero dva odin pyat

#!/usr/bin/env perl

while (<>) {
  chomp;
  print join("\t", (split /:/)[0, 2, 1, 5] ), "\n";
}

Хотя, по большому счёту, «все» языки сейчас уже «переопылились» между собой. Особой разницы между Python, Ruby, JS, Perl нет. Так - нюансы есть.

#!/usr/bin/env ruby

ARGF.each_line do |l|
  puts l.strip.split(?:).values_at(0,2,1,5).join("\t") + "\n"
end
#!/usr/bin/env python3

import sys

for line in sys.stdin:
    parts = line.strip().split(":")
    print("\t".join([parts[i] for i in (0, 2, 1, 5)]))
#!/usr/bin/env node

require("fs").readFileSync(0,"utf8")
  .trim().split("\n")
  .forEach(l => console.log([0,2,1,5].map(i => l.split(":")[i]).join("\t")));

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 3)
Ответ на: комментарий от lbvf50txt

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

Сейчас чтение идет строка за строкой, каждая строка разделяется, группируется и печатается в новом формате.

#!/usr/bin/env node

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
  terminal: false
});

rl.on('line', (line) => {
  const parts = line.trim().split(':');
  console.log([0, 2, 1, 5].map(i => parts[i]).join('\t'));
});

Чуть длинней получилось, но не критично.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 3)
Ответ на: комментарий от lbvf50txt

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

Особо радует пример на Джаваскрипте.

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

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

bread
()
Ответ на: комментарий от lbvf50txt

Цикло по while не нужен - есть опция -n при запуске perl:

#!/usr/bin/env perl -n
#
# Usage:
# $> echo "zero:odin:dva:tri:chetire:pyat" | ./randNums.pl

use v5.34;

chomp; 
say join("\t", (split/:/)[0, 2, 1, 5] );


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

Спасибо большое! Супер!

До сего момента я не предполагал, что можно использовать ключи в shebang.

Но:

#!/usr/bin/env perl -n - не работает, ругается. Говорит мол «Hет у нас такого файла, давайте уж тогда с ключем -S».

Работает:

  • #!/usr/bin/env -S perl -n
  • #!/usr/bin/perl -n

Либо env с ключём -S, либо Perl на прямую.

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

да могут быть различия в работе - я в macOS тестил: zsh 5.9 (x86_64-apple-darwin24.0)

This is perl 5, version 42, subversion 0 (v5.42.0) built for darwin-2level

К сожалению при работе с командной строкой часто напарываешься на различия с Linux.

necromant ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.