Comments 24
Ну хоть что-то в мире IT знает, кто оно такое, и не нуждается в именах вроде Унылая Улитка.
160к строк кода на такой небольшой набор изменений... 2) с for чувствуется влияние пайтона
а есть ли области, где перл жив не в качестве случайного легаси?
у меня диссонанс: я считал его мёртвым языком, но его же кто-то развивает, то есть тратит ресурсы человеческие и денежные. для каких целей?
Это не случайное легаси, а огромное легаси работающее в продакшене и приносящее много денег. С учетом свойств Перла и того как во времена его расцвета было принято писать программы он много чего еще переживет.
На развитие может задонатить тот самый бизнес в котором на нем крутятся бизнес процессы. Это вполне окупается.
А зачем для поддержки старого программного обеспечения развивать язык, на котором оно написано, добавлять в него новые конструкции? Можно было бы ограничиться доработкой существующих реализаций: исправлением ошибок, повышением производительности и т. п.
а этот язык, на самом деле, весьма хорош.
Python вытеснил Perl не потому что лучше (много, много хуже), а потому что поветрие и мода.
сидели на пьянке два менеджера Гугла и трепались:
— знаешь, как только проект становится сложным, то им сложно управлять
— это точно (булькает бутылкой виски из горла)
— как думаешь, почему так?
— всё просто: эти кретины не форматируют свой код!
— да не, вроде форматируют (накатывает ещё сто грамм): у нас же корпоративный полиси на оформление кода: блоки, отступы, открывающие скобочки
— фигня всё это! Нужен язык, который требует форматировать код пробелами и не станет работать на неформатированном (выпивает)
— Думаешь, поможет?
— Уверен! и у меня есть такой на примете — Python!
— Ну что же, будем внедрять!
— Будем! (опрокидывает стакан)
Python не принёс ничего нового в IT мир, мало того, забрал много возможностей: уменьшил читабельность кода, канул в лету KISS-принцип и так далее. Противовесить и остаться эффективным принципу TMTOWTDI не смогли. Асинхронная парадигма, что выбрана мейнстримом, не позволяет реиспользовать старый синхронный код и так далее и тому подобное.
то есть "устаревание" Perl и "восхождение" Python — простая вкусовщина и мода.
У вас тег сарказм отклеился :)
Противовесить и остаться эффективным принципу TMTOWTDI не смогли
Вот как раз к этому принципу и есть много вопросов, потому что он ведёт к тому, что в коде разных библиотек будут встречаться все эти способы и ещё плюс куча их комбинаций. Это без сильной на то необходимости ведёт к повышению когнитивной нагрузки на программиста.
В итоге это как диалекты индийского языка, где индусам проще на английский перейти, чем пытаться друг друга понять.
Представьте что у вас в проде миллионы строк на Перле. Ваш бизнес критически зависит от этих миллионов строк. Ваши специалисты оценили что Перл в проде будет еще минимум 10 лет. Возможно дольше, тут уже уверенности нет.
В новых конструкциях которые сделают разработку немного удобнее сразу появляется смысл. Поддержка и доработки станут чуть-чуть дешевле.
Имеется ввиду write-only код, да ведь? Perl был моим первым языком, как раз когда он ещё актуальным был, писать на нем весело и правда, но я рад, что мне сейчас не нужно читать нм чужой ни свой на перл. Тогда много чего на нем было системно важного в том же Debian apt был вроде на перле, не знаю переписал ли с тех пор 🤷♂️
Одна из любопытных проблем мира IT в частности, наблюдаемых мной, заключается в том, что многие люди отказываются самостоятельно подумать, пребывают в пространстве дуального мышления, довольно сильно подвержены влиянию маркетинга и кричащего общественного мнения. Если о каком-то языке не говорят 24/7, то он мёртв, ведь на нем никто не пишет. Если библиотека "x" не обновлялась несколько месяцев - она умерла и далее по списку.
Реальность разительно отличается от этой картины. Многие программы работают на языках, о которых не говорят громко. Многие люди, работающие программистами, попросту не сидят в социальных сетях, не высказывают свои мнения направо и налево.
На Perl написано много кода, который поддерживается и рефакторится. Более того, на Perl пишут в том числе и новый код. Если подумать далее, то и на многих других языках, о которых не кричат направо и налево каждый день, разрабатывают много всего интересного. И эти языки тоже обновляются по необходимости и прекрасно живут в своей среде.
Я более того скажу, даже Delphi вполне себе жив. Причем зачастую древней 7-й версии, как последней неодотнеченной.
Хотя, конечно, как Вы верно подметили это не тот факт, к которому принятно привлекать внимание на 1-й странице хабра ))
New York Times, Booking...
Плюс обратная совместимость. Если вы на нем написали, то скрипт будет работать В следующей версии а не как в Python при переходе с 2.Х на 3.Х
И посмотрите на CPAN - репозитарий модулей Perl, который появился Задолго до npm и всяких прочих. Причём он открытый и значит не зависит от отдельных компаний.
И модули в нем есть практически для всего.
Надо бы ещё посмотреть на скорость обработки текстовых данных. Может оказаться что он до сих пор уделывает все новомодные языки.
Плюс обратная совместимость. Если вы на нем написали, то скрипт будет работать В следующей версии а не как в Python при переходе с 2.Х на 3.Х
Это было хоть и не популярным, но очень правильным решением. Не нужно тащить своё легаси в новый проект. Все просто приняли, что есть два похожих, но тем не менее разных языка: Python 2 и Pyhton 3.
Особенно хорошо когда вы начали свой проект в момент когда python 3.0 уже вышел и его начали везде пихать, а большинство библиотек ещё не сортировались и они под версию 2.0
Удачи….
У меня поэтому с питоном не срослось в своё время …
В сущности, исходя из оригинального поста, Perl решил идти схожим путём:
прекращена поддержка симуляции версий до 5.11. Использование директивы
"use номер_версии", отключающей дополнительные возможности, добавленные в
интерпретаторе после указанной версии, с номером версии меньше 5.11
(например, "use v5.8") теперь будет приводить к выводу ошибки, а не
предупреждения. Аналогично добавлен вывод предупреждения при
использовании в "use" версии меньше 5.39 (предупреждения будут заменены
на ошибку в выпуске 5.44);
, но в этот раз не революционным (Perl 6), а эволюционным (Perl 7)
С обратной совместимость как раз плохо. Я поддерживаю перловые программы 20 лет, и положение так себе. Многие важные модули поддерживаются одним человеком, например.
Модули для всего у него не лучше. Например для обработки кнопок на микрокомпьютеров (всякие GPIO) в питоне лучше. По сути новые модули для него редкость.
он открытый и значит не зависит от отдельных компаний.
За хостинг всё равно кто-то должен платить.
Код здорового человека:
a, b = 1, 2
a, b = b, a
Код курильщика:
use strict;
my ($a, $b) = (1, 2);
($a, $b) = ($b, $a);
Можно было бы сюда же добавить работу с файлами, допустим, сравнить чтение всего файла с чтением в... да, практически в любом другом ЯП. Да и вообще много чего можно было бы добавить для сравнения.
Кто-то до сих пор сопровождает и Кобол, и Фортран. Так что, конечно, живёт и будет ещё жить. Но для чего-то нового.. Не дай бог.
Вышел Perl 5.40