После 11 месяцев разработки состоялся релиз новой стабильной ветки языка программирования Perl - 5.34. При подготовке нового выпуска было изменено около 280 тыс. строк кода, изменения затронули 2100 файлов, в разработке приняли участие 78 разработчиков...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=55188
Вот что значит мертвый язык. Ни одного комментария на опеннете...
А ведь он даже безопаснее раста.Думаю даже попытка приплести раст не добавит комментариев.
Можно попробовать приплести BSD
Потому что он слишком переподвыподвывернут для петушков, которые с трудом смогли осилить только питон.
Просто осилившие перл 20 лет назад не смогли осилить что-то еще.
25 лет назад и ранее.
Плохо ты о людях отзываешься. Ну например я - до знакомства с питоном, вполне себе осиливал перл. После - уже нет, по многим причинам.
Схожая ситуация. Перл пришлось оставить из-за засилья питонятины.
А ты чо, попсовик шлоте? Вас таки в ойти щаз понабилось больше, чем в маршрутку в час пик) Про запашок тамошний даже не буду..
Perl для умных, а не для любителей Хруста и Пихтона.
Наконец-то! Релиз наилучшего языка для общесистемного программирования!
Напиши на нём ядро, которое работает поверх голого железа, тогда поверю.
Этот язык не проектировался для этого. Стыдно этого не знать.
Тогда стыдно приплетать к нему слово "общесистемный".
Юноша, "общесистемный" значит что подходит для разработки системных компонентов общего назначения. Ядро - это узкоспециализированная программа, и к общесистемным компонентам оно не относится.
Ну ядро, не ядро, а еще в 2000 году ради прикола писал модуль ядра на перле.
В чем его лучшесть?
> В чем его лучшесть?лично для меня: nytprof, pdb, perldoc, perlre, perlsyn, metacpan, perlmonks.
Отличный язык! Говно руби-пхп-питон в сторонке
Ну Руби-то не трожь. Этож просто объектно-смузно-клетчатый Перл.
Но реально руби и перл одно и тоже по степени нужности, если их удалить никто ничего не потеряет.
Без одного не работает гитлаб без другого опеннет.
> Без одного не работает гитлаб без другого опеннет.Но зачем их тянуть на рабочие станции? Опеннет пора бы переписать на модно-молодёжное, а то 20 лет одни и те же баги. Гитлаб мне никогда не нравился.
Ради интереса запустите grep в каталогах bin, sbin и libexec в своей системе с поиском сигнатуры запуска perl. Сильно удивитесь.Если вы не поняли, как это сделать, то лучше просто не позорьтесь. Не знать как устроена ваша операционная система не стыдно. Стыдно на основании этого утверждать ненужность.
А что там от перла зависит? Ну autotools, openssl (зачем?), qt/kde, может ещё wine. Какие-то скрипты линукса (не используются при сборке). Вот собственно и всё.>Сильно удивитесь.
10 перлоскриптов далеко не первой необходимости (они лежат только как запасной вариант на всякий случай) зависят от перла, чему тут удивляться?
Кстати наметилась некоторая тенденция все востребованные утилиты переписывать с перла на си. Надо было сразу писать на си и не страдать хернёй, сишка для скриптов самое то.
а теперь посмотри в своем пакетном менеджере скок всего от перла зависит.И кстати сборочные скрипты ядра тоже на нем
Так я посмотрел. Почти ничего не зависит, не больше 1% софта (большая часть из которого перлоскрипты и есть). Что такое сборочные скрипты ядра? GNU make написан на перле?
> Так я посмотрел. Почти ничего не зависит, не больше 1% софта (большая
> часть из которого перлоскрипты и есть). Что такое сборочные скрипты ядра?
> GNU make написан на перле?ядра linux, там если вы не знали, не только GNU make, но и куча самописных скриптов
и софта там не мало, в том числе dpkg и autotools, да и много сборочных скриптов у программ.
Не, у меня такого нету, 1500 пакетов где-то. Только autotools незаменимый. Как хорошо что всего ~15% софта от автотулс зависит и с каждым днём его всё меньше -- в основном это всякое старьё не особо живое уже вроде mc и motif (хотя конечно это "стандарт" и от автотулсов ещё не скоро избавимся). Если не собирать софт автотулсом, то вроде как пользователям и не надо перл. А что они делают, эти скрипты? Они ведь не нужны для сборки ядра, разве нет?
> Не, у меня такого нету, 1500 пакетов где-то. Только autotools незаменимый. Как
> хорошо что всего ~15% софта от автотулс зависит и с каждым
> днём его всё меньше -- в основном это всякое старьё не
> особо живое уже вроде mc и motif (хотя конечно это "стандарт"
> и от автотулсов ещё не скоро избавимся). Если не собирать софт
> автотулсом, то вроде как пользователям и не надо перл. А что
> они делают, эти скрипты? Они ведь не нужны для сборки ядра,
> разве нет?поищи в исхах ядра файлы .pl
найдет несколько десятков, и они - часть kconfig и ядро без них не собрать
автотулс нужен для регенерации конфигура, щас в основном не требуеться, в релизных тарболах есть готовый конфигур, но если вы девелопер/ используете мастер бранч то он нужен.
Еще требуеться для texinfo, intltool и еще не мало пакетов
P.s. Многократно пытался выкинуть перл (использую лфс), но все упираеться в ядро и автотулсы
Тогда уж и php это Perl for Home Pages.
В точку, а вместо слона - бегемот
пора бы уже повзрослеть
> было изменено около 280 тыс. строк кода, изменения затронули 2100 файлов, в разработке приняли участие 78 разработчиков.Выглядит пугающе...
Там всё тестами покрыто вдоль и поперёк
Новость о релизе ядра посмотри, вообще истерика будет.
Жалко что похерили Perl. На python не нравится скрипты писать.
А что именно похерили?
Не вовремя запустили развитие, когда захотели Perl6 делать. Perl5 долго стагнировал, тем самым распугав поклонников и возможных новых адептов.
> Perl6Даа, помню это.. И чего слышно? Сделали?)
Сделали. Даже переименовать успели.
> Не вовремя запустили развитиечто значит "Не вовремя запустили развитие"? это по вашему какой-то простой механический процесс, чтобы его запускать? раз запустил - и всё само пошло? как бы не так. суть такова, что перл язык некрасивый, страшный, громоздкий, с отвратительным замусоренным синтаксимом.
очевидно, что при таких вводных - гибкий, элегантный, прозрачный питон выдавил перл отовсюду.
всё закономерно.
> Perl5
> Perl6что одно, что другое... что дизайны, что редизайны. что ренеэймы - всё это без толку. если язык никому не нужен - фиолетово как его не называй. есть у перла какая-то куча адептов. ну и бог с ними. пусть сидят пишут на перле, если им нравится.
>раз запустил - и всё само пошло?у этого глагола несколько значений, одно из них: оставив без ухода, наблюдения, надзора, довести до состояния упадка, разрушения
>с отвратительным замусоренным синтаксимом.
как будто это кому-то сейчас может помешать
> гибкий, элегантный, прозрачный питонКто-то на этом месте поперхнулся табом, поди... кстати, Вы про второй или третий?
Что именно не нравится? У питона хотя бы есть ООП, вполне удобоваримый в этом плане.
он у него не есть - питон и есть ооп
любая переменная - уже объект. доведено до абсурда.чем плох ооп перла то? Ну кроме того, что
оставляет понимание "как это работает" что вообщем
я понимаю оч сложно для разрабов на питоне, осеовная
масса работы которых это качание либ и копипаст их вызовов
Вообще-то, не совсем. Вот в Ruby уже ближе к этому. Ценой предсказуемого падения производительности, к сожалению.
Зачем тебе ООП в скриптах на сотню строк, анон? Выучи уже процедурную декомпозицию и наслаждайся жизнью. Перл для этого идеален.https://studopedia.su/12_116675_ponyatie-protsedurnoy-i-stru...
> Зачем тебе ООП в скриптах на сотню строк, анон? Выучи уже процедурную
> декомпозицию и наслаждайся жизнью. Перл для этого идеален.У меня хелловорды на питоне в 10000 строк (не считая зависимости, банально накидать решить задачу за вечер). Без реюза это всё легко разрастётся на 1000000 строк и без ООП с таким количеством переменных и структур совершенно не ясно кто на ком стоял и кто где должен видеть что. Если процессов несколько, то всё может быть ещё интереснее.
>> Зачем тебе ООП в скриптах на сотню строк, анон? Выучи уже процедурную
>> декомпозицию и наслаждайся жизнью. Перл для этого идеален.
> У меня хелловорды на питоне в 10000 строк (не считая зависимости, банально
> накидать решить задачу за вечер). Без реюза это всё легко разрастётся
> на 1000000 строк и без ООП с таким количеством переменных и
> структур совершенно не ясно кто на ком стоял и кто где
> должен видеть что. Если процессов несколько, то всё может быть ещё
> интереснее.Ничего себе!
Ну и потом, это удобно когда я могу изменить поведение какого-нибудь requests или pyyaml. Как это сделать без ООП, форкать весь код себе? Потом его сопровождать?
Эталонный ооп программист. Думал ты существуешь только в анекдотах ))
Любой кодер с задачами чуть сложнее самого простого сразу сталкивается с недостаточными возможностями готовых батареек. Когда у тебя скоп это инстанс, можно удобно скрыть всё лишнее за пределами этого инстанса. Рядом у тебя может висеть другая копия того же кода (а значит, изменения/исправления в нём, влияют на всех пользователей) с другими параметрами или переопределениями для не удовлетворяющих частей.
Вот как у нас на расте: заводишь отдельный трейт и уже его имплементишь для внешней структуры. И сразу видно, что откуда растёт.
Так удали 990 пустых строк и комментариев с войной и миром!
Смешно(нет), но нет, остаётся ещё 9010 строк. Комментарии почти не занимают отдельных строк, код на питоне самодокументирован.
Это вам первые полгода кажется что у вас код самодокументирован, а потом документация волшебным образом выветривается.
На Пихтоне (в отличие, скажем, от Сишечки) можно легко писать так, что будет понятно и без комментариев. Для этого всего-то надо не лениться и давать всему осмысленные имена, в количестве знаков никто вас не ограничивает.
> На Пихтоне (в отличие, скажем, от Сишечки) можно легко писать так, что
> будет понятно и без комментариев. Для этого всего-то надо не лениться
> и давать всему осмысленные имена, в количестве знаков никто вас не
> ограничивает.На сишечке вы не можете давать осмысленные имена, я правильно понял?
Как ведите сишечку так сразу отшибает часть мозга, она занята вычислением границ массивов )))
>> На Пихтоне (в отличие, скажем, от Сишечки) можно легко писать так, что
>> будет понятно и без комментариев. Для этого всего-то надо не лениться
>> и давать всему осмысленные имена, в количестве знаков никто вас не
>> ограничивает.
> На сишечке вы не можете давать осмысленные имена, я правильно понял?Как можно такое понять из моего комментария?
> Как ведите сишечку так сразу отшибает часть мозга, она занята вычислением границ
> массивов )))Разве что жертвам акушерской халатности, вроде поцтеринга.
На Сишечке бест практисез рекомендуют (а иногда и требуют) стремиться к максимальной компактности и переносимости, а значит — к стандарту 89/90 или даже к K&R. Имена в жизни могут быть ограничены:
> At least the first 31 characters of an internal name are significant. For function names and external variables, the number may be less than 31, because external names may be used by assemblers and loaders over which the language has no control. For external names, the standard guarantees uniqueness only for 6 characters and a single case. Keywords like if, else, int, float, etc., are reserved: you can't use them as variable names. They must be in lower case.Хотя поцтеринги пишут свой быдлокод столь отвратительным вряд ли по причине этого напутствия.
А вот инлайна в этих стандартах нет, сплошь и рядом применяющегося в системном программировании, так же как и gcc-специфических атрибутов по этой же теме
> А вот инлайна в этих стандартах нет, сплошь и рядом применяющегося в
> системном программировании, так же как и gcc-специфических атрибутов по этой же
> темеА должен быть? А почему?
Давайте вспомним, что Си был создан как «высокоуровневый ассемблер» для PDP. Этим обусловлено всё специфически сишное в его устройстве. На других архитектурах, естественно, Си не отражает их адекватно. И даже не должен быть использован для них. Есть другие языке, которые лишены изначальной привязки к одной конкретной аппаратуре: Ada, C++ и так далее. То, что Си всё-таки можно использовать (и фактически используют) везде, по сути является отходом от его первичного назначения.
>[оверквотинг удален]
>> системном программировании, так же как и gcc-специфических атрибутов по этой же
>> теме
> А должен быть? А почему?
> Давайте вспомним, что Си был создан как «высокоуровневый ассемблер» для PDP.
> Этим обусловлено всё специфически сишное в его устройстве. На других архитектурах, естественно,
> Си не отражает их адекватно. И даже не должен быть использован
> для них. Есть другие языке, которые лишены изначальной привязки к одной
> конкретной аппаратуре: Ada, C++ и так далее. То, что Си всё-таки
> можно использовать (и фактически используют) везде, по сути является отходом от
> его первичного назначения.А использование колеса в болидах - это отход от его первичного назначения, повозки бронзового века... угу.
> А использование колеса в болидах - это отход от его первичного назначения,
> повозки бронзового века... угу.Многие ошибки в писанине на Сях обусловлены тем, что люди не понимают, как сишная лексика связана с машиной. И понять это в самом деле затруднительно, потому что машина-то уже совсем другая, а слова всё те же. Написано на детали «колесо», а прикручено почему-то к багажнику.
>> А использование колеса в болидах - это отход от его первичного назначения,
>> повозки бронзового века... угу.
> Многие ошибки в писанине на Сях обусловлены тем, что люди не понимают,
> как сишная лексика связана с машиной. И понять это в самом
> деле затруднительно, потому что машина-то уже совсем другая, а слова всё
> те же. Написано на детали «колесо», а прикручено почему-то к багажнику.Ошибки обусловлены тем, что си дает большую свободу программисту чем та же ада, или раст, и ко всему прочему - си гораздо распространеннее.
Люди просто делают ошибки, не ищи в этом какого-то конкретного непонимания чего-то. Даже когда человек все понимает - у него есть лаги. Есть инструменты для выявления ошибок, но в случае си они в большей степени опциональны а не обязательны. А сверхопека вроде ады или раста показывают, во-первых, что на них не программируют без надобности (военка на аде) или фанбойства (раст). А во-вторых, что и там есть эпик фейлы, только программировать на них - боль. Такая же боль, и даже больше и качественней может быть достигнута всякими анализаторами для си, но не удивительно что человек по натуре своей избегает боли.
Зачем так много болтовни? Покажите, где в вашем процессоре x86 _разные_ инкременты и декременты.
> Зачем так много болтовни? Покажите, где в вашем процессоре x86 _разные_ инкременты
> и декременты.В моем процессоре даже for/while нет. Выкидываем?)
// истеричка))
> Зачем так много болтовни? Покажите, где в вашем процессоре x86 _разные_ инкременты
> и декременты.Это о чём вопрос? x86 не используется пару десятков лет, в IA32 и AMD64 даже NOP можно закодировать массой способов.
> А вот инлайна в этих стандартах нет, сплошь и рядом применяющегося в
> системном программировании, так же как и gcc-специфических атрибутов по этой же
> теме6.7.4 Function specifiers
Syntax
1 function-specifier:
inline
_NoreturnЭто из n1570.pdf, а что там в стандарте, пусть специалисты смотрят.
> На Пихтоне (в отличие, скажем, от Сишечки) можно легко писать так, что
> будет понятно и без комментариев. Для этого всего-то надо не лениться
> и давать всему осмысленные имена, в количестве знаков никто вас не
> ограничивает.Дело в том, что комментировать можно не только отдельную строчку. То есть строка может быть и понятна сама по себе, но что и зачем делает некоторая последовательность (необязательно даже функция или блок), может ускользнуть от понимания, так как требует более высокой абстракции, чем предоставляет язык в данном месте. То есть писать комментарии иногда все-таки надо, имхо
> Дело в том, что комментировать можно не только отдельную строчку. То есть
> строка может быть и понятна сама по себе, но что и
> зачем делает некоторая последовательность (необязательно даже функция или блок), может
> ускользнуть от понимания, так как требует более высокой абстракции, чем предоставляет
> язык в данном месте. То есть писать комментарии иногда все-таки надо,
> имхоЯ имею в виду, что Питон позволяет (и склоняет к этому), например, такие вещи:
...
element = random.choice(list)list.remove(element)
...где:
list — некая коллекция значений,
element — некоторое значение в этой коллекции.
Достаточно дать им осмысленные для данного конкретного применения имена, и комментарии для пояснения этого кода уже не нужны, он сам себя объясняет.
В Си, конечно, тоже можно так писать, но большинство предпочитает писать поменьше, иногда сокращая переменные до одного символа.
Согласен, что тенденции есть, но в целом это уже вопрос не языка, а стиля (который изначально мог идти от первого)
> Согласен, что тенденции есть, но в целом это уже вопрос не языка,
> а стиля (который изначально мог идти от первого)И стиля, конечно, но и языка тоже.
Си начинался во времена больших машин и терминалов и, как пишут сами же его создатели, иногда требует экономии выразительных средств по причинам сторонних ограничений. Повторюсь, это никак не оправдывает поцтерингоподобных руконогих.
Перл, для сравнения, всюду подразумевает один конкретный контекст: скалярный либо списочный. И контекст во многом определает удобные или возможные в этом случае подходы к решению задачи.
В Питоне изначально есть выразительность, позволяющая кратко и понятно формулировать проблему и её решение средствами самого языка.
>[оверквотинг удален]
>> а стиля (который изначально мог идти от первого)
> И стиля, конечно, но и языка тоже.
> Си начинался во времена больших машин и терминалов и, как пишут сами
> же его создатели, иногда требует экономии выразительных средств по причинам сторонних
> ограничений. Повторюсь, это никак не оправдывает поцтерингоподобных руконогих.
> Перл, для сравнения, всюду подразумевает один конкретный контекст: скалярный либо списочный.
> И контекст во многом определает удобные или возможные в этом случае
> подходы к решению задачи.
> В Питоне изначально есть выразительность, позволяющая кратко и понятно формулировать проблему
> и её решение средствами самого языка.У питона выразительность чуть повыразительнее бейсика. Бгг.
Выразительность появляется из богатства языковых средств языка, а не ограничений доведенных до абсурда. Timtowdi самим своим значением указывает на выразительность.
Лечи шизу, дружище. Питон у него выразительный, лол.
Понятно, что Вы про инкременты, например, которые в оригинальной машине наверное должны были умещаться в одну команду. Но разве на других высокоуровневых языках не бывает нужным i := i + 1 безотносительно того, сколько операций процессора это требует?
Если так подумать, по философски, можно знать французский язык и не быть в курсе географии Парижа или аж целой Франции, например
> Если так подумать, по философски, можно знать французский язык и не быть
> в курсе географии Парижа или аж целой Франции, напримерИ даже (о Боже!) не жить там никогда. Но и французом тогда не считаться
Возможно, что и на x86 микроархетиктура давно эту операцию делает за один такт, но мы этого не знаем и не должны знать
> Возможно, что и на x86 микроархетиктура давно эту операцию делает за один
> такт, но мы этого не знаем и не должны знатьА «умные» компиляторы просто переделывают написанное (сами заменяют инкременты и декременты на что-то другое). То есть на отличных от PDP машинах это всего лишь синтаксический сахар. И какой же смысл, зная это, упорствовать в утверждении о некой уникальной близости Си к аппаратуре в случае x86?
> У питона хотя бы есть ООПНасколько я знаю, в Perl при добавлении объектов ориентировались на Python.
>> У питона хотя бы есть ООП
> Насколько я знаю, в Perl при добавлении объектов ориентировались на Python.Откуда дрова? Пыхона еще в проекте ж не было))
Никто его не херил. Бурное развитие IT отрасли стало испытывать нехватку кадров. Появились "я стал программистом за 2 недели".
А теперь представь что ты огромная корпорация. Что ты выбираешь для своих желторотиков: язык для инженерного творчества, или тот где даже идиот не сможет испортить `2+2`. Вот и выбрали питон.
а потом на GO поменяли
Трай-кеч - это круто
В гугле на c++ запрещен
В гугле в большинстве своём работают вчерашние студенты и индусы. Они не знают как использовать С++ правильно, и особенно исключения. Поэтому их и запретили. Т.е. запретили от незнания.
> В гугле в большинстве своём работают вчерашние студенты и индусы. Они
> не знают как использовать С++ правильно, и особенно исключения. Поэтому
> их и запретили. Т.е. запретили от незнания.Там был список того, чего нельзя для принимающих участие в их опенсорсных проектах
Я вот раньше пользовался, потом перестал.Хорошо продумать, на каком уровне обрабатывать ошибку, прямо сильно непросто.
(Матлаб)
Плюс вроде хочется checked exceptions, а они ни в джаве, ни в плюсах нормально не сделаны.
True кач 💪
нативный трай-кетч действительно давно пора было завезтиLong Live Perl!
а толку? ну делали вон given/when - многие его пользуют?
я по прежнему пишу так, что будет и на 5.8 работать
вот только когда уже совсем уверен, что только для меня, и больше нигде, то use v5.12 вместо use strict
да и вся эта фигня с try-catch на eval не столь популярна, просто потому, что оно в перле толком не нужно - другой подход
В любом случае эти операторы полегче понимать. Особенно новичкам. Запоздалое решение.
хех, таких новичков нам не надо
> а толку? ну делали вон given/when - многие его пользуют?
> я по прежнему пишу так, что будет и на 5.8 работать
> вот только когда уже совсем уверен, что только для меня, и больше
> нигде, то use v5.12 вместо use strict
> да и вся эта фигня с try-catch на eval не столь популярна,
> просто потому, что оно в перле толком не нужно - другой
> подходgiven/when тоже не использую-не самое красивое на мой взгляд
решение, лучшеб сразу сделали обычный свич, как везде.а конструкция трай-кетч хорошо зайдет новичкам (изучавшие другие яп)
- ненадо ставить/подключать try:tiny и тем более евалить.
в любом случае приятно читать что любимый язык развивается :)
Так оно вроде так и не вышло из экспериментального статуса. Мы уж лучше пока по старинке if ... elsif ... else ...
свич на перле можно весьма разными способами сделать, я обычно это об хэш функций делаю, или об тернарный оператор
но вот для последнего мне очень не хватает простого сравнения $_ с чем угодно
иногда делаю чтото в духе sub is{$_ eq $_[0]} ну и потом:
for($foo){
is 'qwe' ? do { ... }
:is 'asd' ? do { ... }
:()
}
> Разрешено использование пустой нижней границы диапазона
> в блоках "{a,n}", в том числе используемых в регулярных
> выражениях. Например, теперь можно указывать "{,3}".Какая будет нижняя граница по умолчанию? 0 или 1?
может undef ?
Опеннетчики не оценят шутку.
<trollmode>NaN же!</trollmode>
Этой шутки опеннетчики тем более не оценят!
> Этой шутки опеннетчики тем более не оценят!Ну может быть таки оценят undefined, null, nil, 0x00 ну и чё там у нас по сусекам по разным другим языкам по этой теме наскрести можно? :-)
И вот тут я задумался: а Вы-то опеннетчик, не оценили или дано третье. :-)
> а Вы-то опеннетчикСвободным людям не по пути с вашим вахтёрским гулагом. И что примечательно, вахтёры не способны понять, почему.
Я ведь писал уже: сюда захожу исключительно для того, чтобы посмеяться, как пох набрасывает лопатой в широко разинутые клювы перепончатых.
"0E0" ;)
Ну уж если в перл завезли try-catch, то может и в Го, наконец, возьмутся за нормальную обработку ошибок.
В Go есть множественность возвращаемых значений. И best practices "как это использовать".
Там даже понятие "идиоматический код" педалят. Потому что концепция "это можно сделать единственным способом".
Учитывая, что одной из фишек Go является близкая к нативной скорость исполнения (хотя и GC), вряд ли туда потащат монструозный (в реализации) try-catch. В обозримости. Но, время покажет…В Perl концепция противоположная. Куча способов. Было бы желание воспользоваться. Чем-то напоминает макетную плату в радиоэлектронике. Где-то удобно и продуктивно. А где-то — ругаются "что тут за соплей понавертели".
И да, "вменённая" типизация очень гибкости способствует. Хотя помню, как сам когда-то пугался страшных значков.
* Но вот с реализацией многопоточности в Perl не очень.
В Go, при всей его простоте, невозможно узнать, где именно появилась ошибка. Особенно весело, когда ошибка идет откуда-то из глубин чужой библиотеки и используется в 100500 местах. Приходится ставить breakpoint'ы на все места своей функции, где может возвращаться ошибка, затем ставить их на вызов функции и идти вглубь, исследуя код.
Вдобавок нужно вручную управлять всеми ошибками, определяя, вернуть эту ошибку или проигнорировать.
Исключения справляются с обоими проблемами. В них сохраняется stack trace и их можно отлавливать там, где нужно.
Вообще-то в go выводится трассировка стека. Смотришь на те строчки, где твой код и проверяешь, нет ли в нём ошибок. Чужой код, конечно, труднее исправлять, на то он и чужой.
В Перле try/catch был всегда. Теперь только специальную конструкцию для него сделали.
О, тема! Все руки до него не доходят побыдлокодить, вдруг зайдет?
Пробуй, не пожалеешь! Это самый прикольный язык из всех. Ну, может, лиспы и Форт местами прикольней, но я всё же не уверен.
Канонические книжки по нему лучше читать, на мой взгляд, в таком порядке:
1. The Llama Book, or Learning Perl.https://en.wikipedia.org/wiki/Learning_Perl
2. The Alpaca Book, or Intermediate Perl.https://en.wikipedia.org/wiki/Intermediate_Perl
3. Mastering Perl
Сначала эту трилогию, а дальше можно читать другие.
4. The Camel Book, or Programming Perlhttps://en.wikipedia.org/wiki/Programming_Perl
5. The Shiny Ball Book, or Effective Perl Programminghttps://en.wikipedia.org/wiki/Effective_Perl_Programming
и т. д.
Ну вот нужно парсер (конвертер) HTML забацать, может попробую на сабже.
В перле порог вхождения выше
Лучше попробовать сначала в питоне
> В перле порог вхождения выше
> Лучше попробовать сначала в питонеЭто не правда. Питон хоть на Си и больше похож, но там столько ньюансов использования. Сам язык располагает программу к падению.
В перле будет намного проще обработка текста. Даже регэкспы если потребуются там встроены и удобны.
Уронить питон, что? В питоне есть lxml (сишная обёртка над libxml2 которая "стандарт индустрии") и очень эффективная. В питоне есть bleach от мозиллы (уже готовое). И есть beautiful soap. Если серьёзно, то выбор тут может быть только питон.
> Если серьёзно, то выбор тут может быть только питон.Дали анониму гвоздодёр и консервную банку... <третий звонок>
btw, отсутсвие статеек на говнохабре не означает неумение перла подтягивать сишные обертки
перл из коробки умеет дергать so/dll (и я не про xs)
Вопрос в том, насколько это всё применимо, и сколько придётся костылять с разной степенью эффективности самому. Та же lxml, например, заменяет скриптоту во многих батарейках (т.е. она подключается в них, опционально), но имеет ряд ограничений относительно скриптоты (не такая гибкая кое-где как один из примеров). Толку от дёргания сошек никакого, это не самоцель. Если бы в перле аналогичное распространение имели нативные батарейки, можно было бы о чём то говорить и сравнивать.
>> В перле порог вхождения выше
>> Лучше попробовать сначала в питоне
> Это не правда. Питон хоть на Си и больше похож, но там
> столько ньюансов использования. Сам язык располагает программу к падению.
> В перле будет намного проще обработка текста. Даже регэкспы если потребуются там
> встроены и удобны.подскажите это где питон на си больше похож то? ))
язык распологает к тому чтоб на нем писали как хотел автор языка
видимо предпологалось обучить "правильному писанию" однако
если по мне так все наоборот, учитывая что большенство других
яп как раз Си подобные, но никак не питон
> Ну вот нужно парсер (конвертер) HTML забацать, может попробую на сабже.Скорее всего, не придётся изобретать, уже всё написано и лежит на CPAN или даже в дистрибутиве.
Например:
http://www.perlmeme.org/tutorials/html_parser.html
А скомпрометированные глобально первичный CPAN и его зеркала уже восстановили?
Чисто интересно, из-за того, что попадались интересные наработки, аналогов которых на было на С.
А так, в продуктиве в своё время здорово подводил модуль для Оракла, который сам деинсталировался в поизвольный момент от 2 минут до 2 суток, что, хмм, несколько удивляло и напрягало.
>В состав включён модуль ExtUtils::PL2Bat для преобразования perl-скриптов в bat-файлы для запуска в Windows.Хм... а просто perl уже не работает в windows? Или command.com (его еще не выкинули из винды?) в виндовс достиг такого развития что заменяет собой perl.exe?
я тоже заинтересовался и посмотрел что это такое
генерит вот такую запускалку и всего то:@rem = '--*-Perl-*--
@set "ErrorLevel="
....
@if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" @goto endofperl
@if %ErrorLevel% == 9009 @echo You do not have Perl in your PATH.
@goto endofperl
@rem ';
#!/usr/local/bin/perl== код скрипта ==
__END__
:endofperl
@set "ErrorLevel=" & @goto _undefined_label_ 2>NUL || @"%COMSPEC%" /d/c @exit %ErrorLevel%
совершенно непонятно зачем оно нужно
Так там же в консоли нельзя запустить скрипт, просто введя его имя. Этот командник в вырезанных строчках, наверное, запускает интерпретатор и передаёт себя в качестве аргумента?
> Так там же в консоли нельзя запустить скрипт, просто введя его имя.
> Этот командник в вырезанных строчках, наверное, запускает интерпретатор и передаёт себя
> в качестве аргумента?ну вроде того, как я понял - это весь его функционал
пару раз делал для винды бертку вроде
/path/to/perl script.pl $1 $2 $3
или как там (точно уже не вспомню)
так имхо проще чем писать модуль для такой конвертилки
можно. ассоциация файлов по расширению.
> можно. ассоциация файлов по расширению.Которая работает при клике мышкой в окошке "папки"? Какое отношение оно имеет к консоли, когда даже скрипт на штатном Бейсике запускается exe-шником https://docs.microsoft.com/ru-ru/windows-server/administrati...
Я мог бы приложить скриншот, как введенный в командную строку черного окошка cmd имя файла name.pl запускается на исполнение по нажатию клавиши Энтер, но... вы же просто троллите правда?
Нет, я не троллю. Я видел код функции, которая запускает процессы. WinExec(), если правильно помню. Так что я поинтересуюсь версией Windows, с которой это появилось.
в семерке - работает, более ранние- хз
в виндовс ХП работает.
причем активстате перл прописывает ассоциацию автоматически (галочка в форме при инсталляции).Перебирать варианты еще более древние (даже из академического интереса) - нет возможности.
Спасибо, нашёл как это делается https://docs.microsoft.com/en-us/windows-server/administrati...
Вот здесь https://docs.microsoft.com/en-us/windows-server/administrati...
пример как раз с PerlТ.е. предварительно требуется выполнить
assoc .pl=PerlScript
ftype PerlScript=perl.exe %1 %*set PATHEXT=.pl;%PATHEXT%
> причем активстате перл прописывает ассоциацию автоматически (галочка в форме при инсталляции).
Эту галочку помню, в проводнике оно работало, но для удобства приходилось писать командник. Может дело в том, что у XP 3 сервиспака, а может быть в том, что требовалось ещё и политики измерить (которые на Server по умолчанию должны быть иными).
на самом деле эта радость была еще в active perl под 95 винду, я даже, до этой новости, был уверен, что это штатно в перле есть давнону и вообще был какойто reg файлик, который уговаривал скрипты на перле работать в cmd, но это было больше 20 лет назад, я давно выпал из виндового мира
Редхат пропихнул 1000 перловых зависимостей в xdg-utils от которого все зависят. Подонки.
>Редхат ... Подонки.Нет, это Редкостные Гады.
Дак это исторически идет лт первых версий
Как я понимаю, в какой-то момент уже невозможно стало отказаться
> Редхат пропихнул 1000 перловых зависимостей в xdg-utils от которого все зависят. Подонки.Заботятся о конкурентах. У них же gnome? Там File-MimeInfo не нужно, используется gio info. Как не нужно оно в случае kde, cinnamon, lxde, mate, xfce, или когда DE нет. Вот когда какое-то неизвестное DE, тогда вызывается пёрловая mimetipe.
detectDEif [ x"$DE" = x"" ]; then
if [ -x /usr/bin/file ]; then
DE=generic
fi
ficase "$DE" in
kde)
info_kde "$filename"
;;gnome*|cinnamon|lxde|mate|xfce)
info_gnome "$filename"
;;*)
info_generic "$filename"
;;
esac
Почему крайние тут Редхат, а не те, кто это не выпиливает, я не знаю.
5 ветка же всё ещё в 90х, что они там добавляют? Все давно ушли кто куда, самые упорные любители ушли на 6.
По большому счету, плач ярославны
Время перла ушло
Его заменил питон
> По большому счету, плач ярославны
> Время перла ушло
> Его заменил питондолго ли будет еще мода на питон-то? )
Питон не сильно младше перла так-то.
>долго ли будет еще мода на питон-то? )Пока не придумают новый язык для тупых студентов.
Оператор ~~ можно использовать или нет, ув. коллеги?
Не знаю.
smart match давно работает
щас посмотрел - аж с 5.10
Его сразу объявили депрекэйтед, вот человек и спрашивает удалили уже или ещё нет.
Именно. Очень жаль, что его дропнули, реально киллер-фича была.
> Его сразу объявили депрекэйтед, вот человек и спрашивает удалили уже или ещё
> нет.чего незнал того незнал
а чего дропнули то?
Я, правда, его и не использовал никогда, так пару раз -посмотреть
> а чего дропнули то?Насколько я помню, говорили о неоднозначности в результатах выполнения, которую преодолеть так и не смогли.
Лучше не использовать. Deprecated.
Если собираете Perl под проект, то юзайте (https://metacpan.org/pod/perlexperiment)
надо как-нибудь для общего образования прикоснуться к этому языку
Не делай этого, а то поумнеешь и перестанешь в комменты на опеннете заходить.
Не делай этого, верблюдиком станешь.Поправил, не благодари.
а вы кто по гороскопу?
Чую обман: ты либо не знаешь перл, но советуешь, либо не поумнел, т.к. зашел в комменты на опеннете.
Если умеешь в асинхронщину посмотри еще на Coro. Для сравнения с другими языками.
Как бы не был жёсток в общении @mlehmann, но ушлёпок @xsawyerx и компания сломали нахрен нормальную работу проекта на актуальном perl больше чем на 4 года, хотя Марк продолжал периодически стараться поддерживать работу Coro.Да и до настоящего времени пользовать в продакшене хоть сколько-то свежий perl с Coro это, сцуко, нахрен не надо.
Ушлёпки победили. А теперь @xsawyerx трусливо свалил прочь. Обиделся он.
Там же есть история с @rurban
...и POE
Это поделие из глубин мордора.
Поддержку Симбиан убрали? Вот это быстрая скорость реакции.
да еще и совместимость даже с 5.32 нигде не поломали, прикинь! Вообще не язык а фигня какая-то, как на нем вообще можно что-то писать, если он каждый день одинаковый?!
Можно, но зачем? Это ведь один раз написал и дальше тебя уже уволят. Не нужно каждый релиз рефакторить весь проект и переписывать на новом фреймворке
Очень хотелось бы использовать все богатство либ из Perl CPAN in-process в своих DotNet программах.В свое время увлекался однострочниками на перле и даже немного пописывать для WebGUI.org
Смотрите сколько хороших и разных есть шлюзов в другие языки программирования:
https://www.nuget.org/packages/Peachpie.Runtime/
https://github.com/Taritsyn/JavaScriptEngineSwitcher
https://libraries.io/nuget/JCOBridge
https://docs.microsoft.com/en-us/powershell/scripting/develo...
https://libraries.io/nuget/pythonnet_netstandard_py39_linuxА перл обделили хнык, хнык :(
Возможно можно через эти шлюзы, и потом еще через их шлюзы :)
но хотелось бы как-то более напрямую и без фокусов с сишечными сидеклами.
Когда интерпретатор на асамблере перепишут?
Зачем?
Обновление на FreeBSD:0) ee /etc/make.conf
DEFAULT_VERSIONS+=perl5=5.34
1) portmaster -o lang/perl5.34 perl5
2) portmaster p5-
3) portmaster -f `pkg shlib -qR libperl.so.5.34`
https://en.wikipedia.org/wiki/PACT_(compiler)
На перле осилил ток irsii скрипт для парсинга лог канала в IRC.
Что-то им с 6-ми версиями не прёт. пхп обломился и с 5 на 7 прыгнул, перл обломился и тоже с 5 на 7 собирается.
Прикольный без язык если его не читать. Но питон давно занял его нишу, а 2 одинаковых языка не нужно.
ПОДТВЕРЖДАЕТСЯ то, о чём я здесь как-то раньше писал - язык развивать нужно с учётом опыта (А ТАКОЙ ОПЫТ ***УЖЕ*** ПОЯВИЛСЯ) из других успешных (что бы это ни значило) языков (например C++, C#). Неужели разработчики Perl не врубаются в то как фишки развивались в других языках?
Вот они пишут -
"***Ключевые*** изменения: Добавлена ... поддержка ... try/catch" - а где же "finally"???? Без неё такая "поддержка" совсем-совсем не полноценна. И малопригодна. Любой эксерт это подтвердит. Это типа как ввести операцию "+", но "-" не вводить, мол крутитесь как хотите. Даже в try:tiny - finally есть! finally - обязательна для "нормального" кода с исключениями. Если finally нет - то что делать? Вводить "флажки" и проверять их?)))) Так он и без такой "недофичи" это делает.
Талантливый язык талантлив во всём, ты просто не понимаешь гения пенсионеров.
Полагаю минимизировали implementation complexity, что важно для core.>Без неё такая "поддержка" совсем-совсем не полноценна
Вопрос спорный, что считать полноценным. Хочешь фич и оплатить - подключаешь либу, иначе bare metal. Однако я с тобой согласен, ввиду самой сути данной фичи.
Лично мне она не нравится. Она, - как ты справедливо заметил - во первых куцая, а во вторых повторяет семантику eval/$@. А в core лично я ожидаю примитивы, а фичи, даже самые базовые (аля ListUtil) - в либах. И чем чаще фича востребована тем больше шансов попасть в corelib.
Перл скатывается, и это не радует. Хоть обратную совместимость сохраняют, жить можно.
Все равно равных нет.
Равных в чем? Питон же успешно заменил, как тут пишут.
> Равных в чем? Питон же успешно заменил, как тут пишут.Питон не заменит перл, как (c)profile не заменит nytprof, а pypi metacpan и тд.
Другое дело, что не всем питонокодерам вообще нужен хороший дебаггер или профайлер, или регекспы на уровне операторов языка, или metacpan, или something else.
Питон уже устарел, и сейчас мода на го. Выбрасывайте.))
> мода на гоТерра
отступы у него как у взрослых?
У го проблема с использованием нейтив кода, чисто для вебни и годится. Не в курсе за проблемы дебагерров/профайлеров питона, некоторое время некоторые из них опаздывали с поддержкой 3 ветки (лет на 10), но с тех пор вроде все успешно мигрировали. Что такое вообще хороший? Замерить и построить красивые графики? Ну так и это тоже есть, даже лучше чем у хрома.
>Что такое вообще хороший?
Пестон - язык з@дpота с DICKтаторскими замашками. Всё равно, что отрубать людям руки, если они не помыли их после туалета. Такая наглая манера продавливать "отступы" суть идиотизм. Потому адекватные люди в такой язык не полезут.
> try/catch" - а где же "finally"???? Без неё такая "поддержка" совсем-совсем не полноценна.Малолетний звездун! finally как раз самая редкоиспользуемая часть. Если б ты реально программировал, знал бы.
Лол. В перле, может быть. Потому что там его нет ахаха.
В исходном утверждении было "например C++". Там нет finally, потому что RAII.
Вангую что человек отвечающий за резизы перла давно умер, и скрипт который он себе написал для минорных версий продолжает продолжает готовить минорные релизы.
Где перл используется в современных проектах?
"Прекращена поддержка ОС Symbian."
Вовремя это они.