LINUX.ORG.RU
ФорумTalks

Tempus fugit и убей в себе перловика

 ,


0

1

Тут такая вот статья.

https://nibblestew.blogspot.com/2020/05/you-have-to-kill-your-perlings.html

TL;DR — количество программистов, знающих и хорошо понимающих Perl, неуклонно уменьшается. Новых сколь-нибудь значимых проектов на Perl, создаваемых людьми моложе 35 лет, нет вообще. Поэтому авторам даже очень живых проектов, у которых в обвязке есть скрипты на перле, стоит сильно задуматься, а не переписать ли их к чертям на более популярные/поддерживаемые языки.

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

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

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

Это — перл через 20 лет, когда все, кому он был интересен, помрут либо состарятся настолько, что им будет все равно.

Еще один проект, который приподнял веки в 2020 году и обнаружил себя на задворках — GNU Emacs. Вот замечательнейший тред: https://lwn.net/ml/emacs-devel/8wXYP4GY9hwW-9mYv6_LGMETZ8Vz3Ob1Bec6yh6kPT7yxjTkxA3V6dXY4ELra9tYiJUxJmgXKSIEX4w8HFiPRoeGVSQHDSoBVy1voj1e3Qo=@protonmail.com/

Там много дискача, вот более-менее интересное: https://lwn.net/ml/emacs-devel/CAH=MJ4Yu0_ZLzm-W1-+i4JNh0PLSdNUGOxrzCkPjwtZ55EDEyg@mail.gmail.com/

«[…] нет пользователей Microsoft Word, которые бы говорили, что открывают «буферы». Они открывают «файлы». Они перемещают «окна», а не «рамки». Они вырезают и вставляют, а не kill и yank и т.д.

По сути, [пользуясь Emacs,] вы берете на себя обязательство быть или стать опытным пользователем. Я бы, конечно, не смирился с этим, если бы не думал, что это сэкономит мне много времени как разработчику программного обеспечения (а это так, каждый день). Я сомневаюсь, что кто-нибудь вложит ментальные усилия, чтобы справиться с изучением Emacs в наши дни, если только это не является его целью. Если вы просто хотите заниматься «случайным» редактированием текста Emacs - это очень странный выбор в 2020 году.»

Интересный год, однако, намечается: у емакса уже экзистенциальная дискуссия происходит. Не думал, что доживу до нее. Программисты «старой школы» все более походят на староверов.

★★★★★

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

что вы все такие параноидные и собираетесь двигать кони? пока не двинул и проект жив. всё. точка. с параноидом обращайтесь к врачу.

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

так вот и надо чтобы оно без центральной установки работало. чтобы не было никаких макакоподобных «инсталляций» модулей в системе, не в стандартных местах типа /usr/lib. чтобы не плодилось всякое. и чтобы в софте были все нужные ему библиотеки и нормальные системные зависимости, чтобы не ставить лишние непонятные пакеты где попало.

Iron_Bug ★★★★★
()
Последнее исправление: Iron_Bug (всего исправлений: 2)
Ответ на: комментарий от Virtuos86

Отдельная консоль менее функциональна. Например, в ней нельзя сразу к месту ошибки перейти.

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

Так уже давно всё переписали.

Я уже доказал обратное выше. Твои фантазии не годятся в качестве аргументов.

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

Ну так я и говорю, что пока перл в ходу.

mord0d ★★★★★
()
Ответ на: комментарий от DELIRIUM
/tmp 
❯ git clone --depth 1 https://github.com/llvm/llvm-project.git      
Cloning into 'llvm-project'...
remote: Enumerating objects: 96634, done.
remote: Counting objects: 100% (96634/96634), done.
remote: Compressing objects: 100% (85439/85439), done.
remote: Total 96634 (delta 16545), reused 48275 (delta 7910), pack-reused 0
Receiving objects: 100% (96634/96634), 126.14 MiB | 7.42 MiB/s, done.
Resolving deltas: 100% (16545/16545), done.
Updating files: 100% (92001/92001), done.

/tmp took 40s 
❯ llvm-project 

llvm-project on  master 
❯ git ls-files|grep -e '\.pl$' -e '\.pm$'
clang/test/make_test_dirs.pl
clang/utils/TestUtils/pch-test.pl
clang/utils/analyzer/reducer.pl
clang/utils/analyzer/update_plist_test.pl
debuginfo-tests/llgdb-tests/test_debuginfo.pl
lldb/scripts/disasm-gdb-remote.pl
llvm/utils/GenLibDeps.pl
llvm/utils/UpdateCMakeLists.pl
llvm/utils/findsym.pl
openmp/runtime/tools/check-depends.pl
openmp/runtime/tools/check-execstack.pl
openmp/runtime/tools/check-instruction-set.pl
openmp/runtime/tools/generate-def.pl
openmp/runtime/tools/lib/Build.pm
openmp/runtime/tools/lib/LibOMP.pm
openmp/runtime/tools/lib/Platform.pm
openmp/runtime/tools/lib/Uname.pm
openmp/runtime/tools/lib/tools.pm
openmp/runtime/tools/message-converter.pl
theNamelessOne ★★★★★
()
Ответ на: комментарий от alpha

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

Фишка Emacs не в интерфейсе, ИМХО (тем более интерфейс можно перелопатить прилично), а в вездесущем elisp.

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

Ну я не пишу на лиспе.

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

Ну и тайлинг, само собой.

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

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

Ну такое есть же во многих современных редакторах и IDE.

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

пока не двинул и проект жив. всё.

Это временно. Зададим этот вопрос через 20 лет. Оказывается, они пролетают чертовски быстро.

Мне кажется, время от времени надо задавать себе вопрос: а хочу ли я, чтобы мое детище пережило меня самого и развивалось даже без меня? Если такое детище есть, конечно.

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

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

Весь R&D Лаборатории Касперского и несколько их партнёров.

У нас вся ваша продукция под санкциями, так что увы (на самом деле нет).

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

У нас вся ваша продукция под санкциями

Если бы не NDA, я бы тебе порассказал веселых историй, где используется движок Касперского))

ваша

Я давно уже не там.

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

Охотно верю, равно как и о Siemens.

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

За ковыряние в говне столько предложат только в твоих мечтах :) Ты думаешь что гнилой код на мёртвых языках образуется потому что за него $10k платят?

slovazap ★★★★★
()
Ответ на: комментарий от deep-purple

с чего ты взял что сено легче навоза?

https://naruservice.com/articles/udelnii-ves-navoza https://naruservice.com/articles/udelnyj-ves-sena

Удельный вес сена - до 70 кг/м³, навоза - от 400 до 1000 кг/м³. Или ты хотел остроумно пошутить про разницу в весе килограмма пуха и килограмма гвоздей?

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

опять демагогия. 20 лет не «пролетают» быстро. 20 лет - это просто дохрена, включая полную смену технологий.

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

Перл — простой как тапок. В прод JAPHы не пишут.

Но он недостаточно простой чтобы его надёжно парсить и анализировать, скажем, типы, чтобы обматерить разработчика в CI или коммит-хуке. Есть формальное доказательство что перл невозможно парсить в общем случае.

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

Я уже доказал обратное выше. Твои фантазии не годятся в качестве аргументов.

Ну вот у меня под FreeBSD никакого atool нет, llvm, mesa и xorg есть, никто из них от перла не зависит, перла не стоит вообще. Может не надо выдавать местячковые особенности своего дистрибутива за доказательства?

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

Но он недостаточно простой чтобы его надёжно парсить и анализировать

Проблемы хипстеров олдфага не волнуют. :3

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

местячковые особенности своего дистрибутива

Головой ударился?

 % freebsd-version -u
12.1-RELEASE-p4
 % sysctl -n kern.ostype
FreeBSD
 % sysctl -n kern.osrelease
12.1-RELEASE-p3
mord0d ★★★★★
()
Ответ на: комментарий от slovazap

почему пошутить? так и есть - взялся кидать, цепляй больше, тем более что сено цепляется лучше навоза, так, один зацеп сена тяжелее зацепа навоза.

deep-purple ★★★★★
()
Ответ на: комментарий от mord0d

Не знаю чем ты ударился.

% freebsd-version -ku
12.1-RELEASE-p3
12.1-RELEASE-p4
% pkg info -d xorg-server-1.20.8_1,1 | grep perl
% pkg info | grep perl
% find /usr/ports -name Makefile -exec grep --files-with-match archivers/atool {} \;
/usr/ports/archivers/atool/Makefile
/usr/ports/deskutils/cfiles/Makefile
/usr/ports/misc/nnn/Makefile

cfiles и nnn - какие-то сраные файловые менеджеры, не нужные никакому другому пакету ни в каком виде.

slovazap ★★★★★
()
Ответ на: комментарий от deep-purple

сено цепляется лучше навоза, так, один зацеп сена тяжелее зацепа навоза

С удовольствием почитаю ваше исследование на эту тему с реальными цифрами.

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

ололо. :) мир пони пошатнулся? Хорошо платят только за монады на хаскеле конечно же. Спокойной ночи.

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

с удовольствием подожду пока тебе не подвернется случай убедиться в моей правоте.

deep-purple ★★★★★
()
Ответ на: комментарий от slovazap

Начинаем про перл и емакс, и вот уже подветка дискуссии о том, как ворочать говно. Ляпота!

shimon ★★★★★
() автор топика
Ответ на: комментарий от deep-purple

Кидал, кидал. Копны ставил десятками, скирды метал. Знаю всю науку, не сомневайся :). Только всё это архаика, сейчас так никто не делает, но это другой разговор.

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

xorg-server напрямую от perl не зависит, от перла зависит llvm:

 % pkg info -d llvm80 | grep perl
	perl5-5.30.2

llvm80 требуется mesa-dri:

 % pkg info -r llvm80
llvm80-8.0.1_3:
	mesa-dri-19.0.8
 % pkg info -r mesa-dri
mesa-dri-19.0.8:
	xorg-server-1.20.8_1,1

Поэтому удалив perl5, pkg предложит удалить по цепочке xorg-server.

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