Управляющий совет проекта Perl обобщил планы по дальнейшему развитию ветки Perl 5 и созданию ветки Perl 7. В ходе дискуссий управляющий совет согласился, что недопустимо нарушать совместимость с уже написанным для Perl 5 кодом, за исключением...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=57256
> для включения нарушающих совместимость изменений и настроек потребуется явное добавление в код прагмы "use v7".Зачем? Нет, серьёзно, требуется пояснительная команда.
Понятно зачем замораживается мажорная версия и все дальше идет в минорщине - у нас есть база и надстройки, которые при всем опциональны и могут включаться, а могут не включаться.
Понятно зачем нужен срез изменений и запекание их в ломающую совместимость новую мажорную ветку - у нас уже столько много изменений, что включение-выключение фич само по себе есть программирование и нахрен это юзеру-прогеру надо.
Понятно, почему для некоторых фундаментальных вещей существуют различные ветки поддержки и почему код под 2.7 не обязан собираться под 3.0 и поэтому для наследия мы тянем версионные девтулзы и скрипты миграции.
А это - зачем?
Сколько прагм уже надо писать в начале?
use warnings;
use strict;
use utf8;
use v5.10; # bells and whistles of 5.10 or newerДля мелких скриптов автоматизации или однодневок и этих не надо. Ну, может use utf8 для соответствующих случаев. С опциональным use v5.XX (например, если нужен say вместо print .. ,"\n". :)
Ку.
Ещё можно use bigint. Ну или use bigrat. Сие уже зависит от того, что вам требуется унутре перламутровой неонки. :)
Очевидно же, чтобы иметь один перл в системе и запускать им старые скрипты без прагмы в режиме perl5, а новые с фичами новой версии.
Представь себе, можно было и питон не делить на 2 и 3. Но если бы вам запилили прагмы как в перле, вы бы рехнулись от баттхерта.
Никто бы не рехнулся. Сделали бы как сказали и не надо было бы всех этих метаний с питоном делать.
Вместо них в питоне __future__.
> Очевидно же, чтобы иметь один перл в системе и запускать им старые
> скрипты без прагмы в режиме perl5, а новые с фичами новой
> версии.Даже не скрипты, а модули.
Все ответы на вопросы есть в вашем nickname.
> у нас есть база и надстройкиУ _вас_ есть надстройки. Наша реализация отличается.
> у нас уже столько много изменений, что включение-выключение фич само по себе есть программированиеОпять же - у _вас_. Наше "много изменений" было при 4->5 и выводы были сделаны. Зачем ходить по одним и тем же граблям, если известно, что "семь раз отмерь, один раз отрежь"?
> код под 2.7 не обязан собираться под 3.0
> поэтому для наследия мы тянем версионные девтулзы и скрипты миграцииВы - тянете. Мы - нет, мы пользуемся прагмами.
Кстати, откуда эта уверенность, что смена мажорной версии должна вести к поломкам? Синдром утёнка?
Просто он макак, который сбежал из нашего зоопарка.
> Все ответы на вопросы есть в вашем nicknameА между прочим, правильно подмечено.
> Кстати, откуда эта уверенность, что смена мажорной версии должна вести к поломкам?
> Синдром утёнка?Нарушение совместимости - условие для смены мажорной версии.
Потому что при простом добавлении возможностей без поломок должна меняться минорная версия.
Если поле версии для изменения выбирается по желанию пяток, то и разделения здесь не должно быть, т.к. оно только вводит в заблуждение.
Чтоб не пришлось патчить стопицот пакетов, например.
Perl же вообще для, условно говоря, консервативных староверов, зачем ломать их код?
> Perl же вообще для, условно говоря, консервативных староверов, зачем ломать их код?Наконец-то ты объяснил, почему никто из вашей шаражки не смог дописать в инсталлятор 10 строчек, без которых всё остальное не работает.
Как я понимаю, "прощеное воскресенье" это одна из методик по прекращению траты ментальных сил на старые обиды, проблемы и способ помочь людям двигаться дальше, не застревая в обиженном положении. Вам не кажется что вы слегка в нём завезли?
Мало того, что он в нём завяз, он ещё ничего и не понял, уйдя от одного сомнительного дельца к другому такому же.
Расскажите о моём новом дельце, коль в курсе, а то я пока не обнаружил скрытых камер.
А Вам не кажется, что когда президент объявил десятилетие науки и технологий - он сказал о чём и я, но не обидно для негодных в профессии имитаторов бурной деятельности и сочувствующих им халявщиков?
> прощеное воскресеньеЧто за мракобесие я читаю на техническом ресурсе? Серверные стойки благословлять ещё не начали?
Святой водички в питальник сбрызните, фигли...
Можно перевести совет Романа как жить в технический план: закрой глаза на некомпетентных деятелей, тебе с ними и их "продуктом" сталкиваться не придётся... а если ты или твои близкие не смогут в итоге записаться к врачу через Госуслуги, иди, ставь свечку.
> Что за мракобесие я читаю на техническом ресурсе? Серверные стойки благословлять ещё не начали?Бунт - бессмысленный и беспощадный. Но не политический - тут кое-что криповатое.
Я сам - технарь неверующий, и с технической точки зрения за вами распознаётся бесполезная попытка использовать культуру против самой себя."Мракобесие" и "прощёное воскресение" - оба из одной корзины.
Объяснение выше, упоминающее экономию ментальных сил, вполне себе рационально.
Даже само слово "мракобесие" - тоже мракобесие с технической точки зрение: разберите слово на части, если не верите.
Поэтому ваша атака - ничто иное, как антикультура (ещё называют контркультура), что в отличие от культуры не является созидательным. Что, в свою очередь, является бунтом - бессмысленным и беспощадным.Культура - то, что делает человека человеком. Мракобесие - обычно то, что приводит к трагедиям (сожжение людей и т.п.), поэтому ваше нападение необосновано. Наоборот - это вы охотитесь на всех, кто использует такие слова, поэтому мракобес - это вы.
Воспитание - основа культуры (а может и наоборот), поэтому популярное клеймо искуственности - предмет гордости, а не стыда. Это достижение. Отказ от достижений и борьба с ними - не достижение.
________________________________________________
Уточняя про тот пост - он указывает на возможную обиду по отношению к мейнтейнерам какого-то инсталлятора. Хотите быть конструктивным - давайте лучше про инсталятор и его автором. В этом его суть, а не рациональном объяснении термина их другой культуры, которое, в прочем, заслуживает того, чтобы быть здесь (т.к. вполне конструктивно).
> Хотите быть конструктивным - давайте лучше про
> инсталятор и его автором.Имеется ввиду, написать авторАм? Авторов нет - французов выгнали на мороз и давно, купив Mandriva. Тот самый mikhailnov и стал формально "автором", но не умеет кодить, экономит ментальные силы, потому в последующих выпусках выкинул инсталлятор и взял другой. И вот эта профанация называется "Российская ОС". Обидно ли мне, что оно так называется? Нет, мне не обидно - вон, соседи вообще гальюн в геральдические цвета красят, и тамошняя публика одобряла до недавнего времени.
А почему код 2.7 не обязан собираться под 3.0Почему-то программы на С написанные ещё Керниганом больше 50 лет назад, прекрасно компилируются современными компиляторами.
> на С написанные ещё Керниганомой не надо! одно описание функций чего стоит. Или += vs. =+
и я даже не уверен что K&R опции еще есть в последних gcc. Похоже 3.х последний из...
>одно описание функций чего стоитРади прикола рисую функции по k&r, всё пока работает. Могу даже типы пропускать и ставит в int, только кудахчет варнингами.
Если бы K&R сделали нормальные 8-битные стринги, а в новой версии их разделили бы на юникодные и нетекстовые, заменили массивы на итераторы и отключили автоматический перевод стрингов в числа, то тоже прекратило бы компилироваться.Плюс вынесли из baselib много редко нужного хлама в отдельные библиотеки.
> заменили массивы на итераторыИтератор по определению не заменяет массив, это всего-лишь метод доступа к данным. Если чего-то не достаёт, то это некоей type-generic реализации итератора (препроцессорная тоже вариант), не зависящая от базового типа массива.
Пример использующего кода:
type array[ N ];
def_iter( arr_i, array, N );
...
for( iter_start( arr_i ); iter_end( arr_i ); iter_next( arr_i ) )
{
...
}
> Почему-то программы на С написанные ещё Керниганом больше 50 лет назад, прекрасно компилируются современными компиляторами.Распространенный миф. На Си'шке очень часто приходится мучиться даже с компиляцией современных проектов под разные платформы.
Мы не виноваты, что вы делаете (int)&var.
> Мы не виноваты, что вы делаете (int)&var.Нормальный подход хэндлеров для разделения публичного / приватного C API, когда указатель приводится или к более базовому или intptr_t (только не int). Конечно, если не следить за временем жизни объекта, то могут быть проблемы.
> А это - зачем?Затем, что разработчики языка python не думают об обратной совместимости от слова совсем, а разработчики языка perl -- думают.
Прям прынцессы. Разработчики ети. Ну, которые не...Не создают идиотского синтаксиса, неудачных интерфейсов? Сразу в яблочко! Серебренной пулёй.
Ох уж эти сказошники...
Это элементарное уважение к труду тех кто решил использовать их ЯП. А питон считает своих кодеров за кусок... того чем они и являются, собссно. И им регулярно показывают за кого их девтима считает.
> Это элементарное уважениеЭто элементарный признак того, что вы живете в мире грез и фантазий. Ну или как минимум верите в то, что реальность таковым миром является...
Элементарным уважением к пользователям языка будет устранение ошибок его разработчиков, а не бесконечные игры в ту же обратную совместимость, например.
> А питон считает своих кодеров за кусок...
А мужики-то до сих пор об этом не в курсе. Популярность языка скорее растет, чем наоборот. Впрочем, что я... Дальше неприменно будет про миллион мух и вот это вот все.
Спасибо, в общем, что просветили, дарагой эльфийский друк!
Идея хорошая, потому что их "развитие" perl5 часто нарушает обратную совместимость и создает проблемы. Пусть занимаются улучшайзингом в отдельном проекте.
Видимо разрабы перла учли неудачный опыт 3-го питона...
Разрабы року, может, и учли. С питоном в любом случае не прокатило бы, его решили превратить в нормальный язык. А тут уже ничего не поможет.
Вообще Python 3 полностью заместил второй. Сквозь слёзы и хныканье, но заместил. А вот Perl 6 так и помер.
Т.е. ты даже не рассматриваешь что можно сделать это без слёз и хныканья? А когда Перл решил сделать правильно ты даже решил сказать что надо как в старые добрые? Пусть Перловики, которые осталось два человека, тоже пожуют кактус.
> Вообще Python 3 полностью заместил второй. Сквозь слёзы и хныканье, но заместил.Я когда-то думал его освоить, но тогда в ходу был Python 2, а 3 только вышел. В системе был и 2 и 3. Но все гайды в интернете были, в основном, по 2. Решил что овчинка выделки не стоит, спрашивать то, кроме интернета, не у кого. Да и больших преимуществ переход на Python мне бы не дал. Забил я на Python.
> Забил я на Python.A зря. Питон прост в освоении. И знать ОБЕ версии было не проблемой. Проблемой были тонны кода для 2-го, которые никто переписывать не собирался. Так как часть написавших уже отвалила...
при этом нынешний расцвет питона следствие деяний новичков которые просто переписывали код со второго питона на третий и так стали крутыми программистами.
> Питон прост в освоении.
> Питон хорош для невысоких iqFixed.
С подключением. Ещё 15 лет назад говорили, что perl 6 не стоит рассматривать как продолжение perl 5.
> Вообще Python 3 полностью заместил второй. Сквозь слёзы и хныканье,...и кончину 80% гребаных наколеней на гитхабе на оном, хаха :). Автырям было впадлу кодить то же самое по второму разу - они и забили.
Так был же perl6. Набижали рубисты и питонисты в перл и стали делать все "лучше" и несовместимо. Перл сообщество смотрело на это довольно скептически. И вот через N лет само отмерло.
И это хорошо. Зачем нужна переделка под какие-то языки, пусть будет выбор между самобытными языками. Тем более что perl один из лучших.
>Набижали рубисты и питонисты в перлЭто скорее Ларри дорос до ФП-языков и других ранее непонятных для себя концепций и решил немного стянуть себе, а ЦА таких попыток не поняла.
В конце концов, если я захочу макросы, я достану лисп.
Как я и говорил, один из лучших не может "дорасти до чего то". Он вбирает полезные концепции о которых долго просили, в целом я бы даже сказал просто сахар.
А могли пользоваться лиспом и иметь и repl, и свой синтаксис в библиотеках, и компиляцию в асм.
Не могли бы. На лиспе писать не каждый может.
кстати на расте тоже. некоторых от него мутит при одном виде синтаксических наборов. от питона многих мутит из-за того , что не такой как си. видишь сколько проблем у прогеров? а лисп... ну он настолько редко применяемый, что я не уверен, что о нем многие вообще слышали.))) за исключение хардкорщиков эмакс и прочих любителей старого стиля. кстати как там продвигается наследник плюсов D?
После лекций Сассмана все языки программирования выглядят как ухудшенный лисп. Впрочем, я не программист, мне достаточно чтобы задача была выполнена за удовлетворительное время.
>кстати на расте тожеНе каждый согласится из дедушки стать бабушкой.
Я извиняюсь, а что на лиспе такого трудного? Там даже переподвыподверты синтаксиса запоминать не надо, потому что синтаксис ортогонален и легко ложится на модель данных, например, объявление переменных в let - это банальный key-value словарь на скобочках.
(let ((x 1)
(y 2))
(+ x y))
> Я извиняюсь, а что на лиспе такого трудного? Там даже переподвыподверты синтаксиса
> запоминать не надо, потому что синтаксис ортогонален и легко ложится на
> модель данных, например, объявление переменных в let - это банальный key-value
> словарь на скобочках.
> (let ((x 1)
> (y 2))
> (+ x y))Вот эти скобочки не все легко и сходу читают. При этом человек может считать количество символов '0' в хранителе экрана "Матрица", ошибаясь стабильно существенно меньше других, но текст на Лиспе воспринимать как кашу.
> Я извиняюсь, а что на лиспе такого трудного?Дорогой, ну причина-то в общем-то простая: практика показывает, что мыслить о процессе вычисления в виде последовательности изменения состояний многократно легче, нежели мыслить о свёртывании AST.
Нам с тобой это легко, да. А большинство смотрят на AST как баран на новые ворота. Но потребность рынка в IT-специалистах большая, так что для них есть иные инструменты разработки, которые им по зубам. То, что 95% людей недостаточно умны -- не означает, что работать должны только оставшиеся 5%.
If ifs and buts were candy and nuts, oh, what a Christams we'd have! =)
А могли бы пользоваться brainfuck'ом и ехать на улитках быстроходных прямо в наркодиспансер.
> А могли пользоваться лиспом и иметь и repl, и свой синтаксис в библиотеках, и компиляцию в асм.Ну, если уж заговорили о лиспах, то это предложение -- не проблема, можно хоть сейчас сесть и реализовать хоть бы и для того же racket свой #lang perl, и тогда так оно и будет.
https://docs.racket-lang.org/guide/languages.htmlЭто конечно не палец-о-палец, ибо перл язык развесистый, но в целом сделать это возможно.
Стоит учить?
Только если тебе за это платят. Иначе, зачем тратить своё время?
А ты изучаешь новые технологии только когда тебе за это платят?*
А зачем ты их изучаешь когда не платят?
Чтоб было чем платить другим :)
Чем ты им заплатишь своими ненужными знаниями или своей профессорской микрозарплаткой?
А тебе платят, когда ты что-то изучаешь? Обычно те, кто платят, хотят, чтобы ты уже пришёл к ним со всеми знаниями, умениями и навыками, которые им нужны.
Пффф у нас даже грейды есть и надо «эказмен» сдавать чтобы грейд повысить и зп.
Повезло, блин. У нас приходилось отпрашиваться, и ответ бывал всегда один - "а ты все задачи закончил?", а поскольку постоянно поступали новые тикеты, незаконченные задачи всегда были. Политика была - не давать копеечным чернорабочим вырваться из ямы, в которой их держали.
Ненене, речь не о крепостном праве. Речь о том, что некто (работодатель, или государство, или вендор софта или железа) платит человеку за то, чтобы он учился. Не за то, чтобы он себе аркан на шею позволил надеть, а именно за саму учёбу, как таковую.
Если у меня все работники будут учиться и им не будут своевременно понижать самооценку ниже плинтуса, кто же на меня будет работать?
Если что компания где есть грейды начинается на Я, а заканчивается на ндекс. Но там тоже надо смотреть у таксистов например грейдов нет), а у разрабов есть.
Широко практикуется заключение договоров между высшими учебными заведениями и предприятиями- предприятия платят за обучение студентов с условием что потом студенты смогут у них работать.
Так что да.
Стоит сначала выучить shell, с фокусом на sed/awk, а потом уже perl. Первым языком учить не стоит, лучше 3-4-ым. Освоенный перл сделает из тебя более лучшую версию программиста на любом другом языке.
Да, после перла можно приступать к Lua. После него уже любой хаскелл/окамл/раст/итд покажется фигней.
Чтобы на нём писать что-либо -- не стоит. Когда-то он был прорывным языком за счёт встроенных (и кстати весьма производительных) регулярок, системы модулей, централизованного хранилища кода. Но сейчас эти фишки есть в любом языке.Для общего развития -- имеет смысл. Чем больше языков вы знаете, тем лучше вы сможете сравнивать концептуальные подходы разных языков к решению тех или иных задач. И перл вообще говоря сильно такой самобытный язык, который в целом писался хакером для хакеров (я бы даже сказал хакером-католиком, если вы конечно понимаете отсылку), а потому гoвном он не является, а ряд архитектурных решений вас, скажем так, сильно удивит (ибо хакерам закон не псн, делают то, что считают правильным).
> И перл вообще говоря сильно такой самобытный язык,
> который в целом писался хакером для хакеров (я бы даже сказал
> хакером-католиком, если вы конечно понимаете отсылку),
> а потому гoвном он не является
> ...Я не могу пройти мимо этого комментария. Это прям как Dzen Python vs. Dao Perl.
Некие разработчики когда-то меня убеждали, что пользователи вправе называть их дистрибутив словом на букву "г". При этом там инсталлятор на Perl и написан задолго до них, эти новые деятели не могли ничего с ним поделать, в итоге вообще выкинули.
---
-- Жизнь прекрасна! -- изрёк Шри Япутра, идя по рынку.
-- От чего ты так думаешь, учитель? У меня мало денег, некрасивая жена и глупые дети -- возразил мясник.
-- Ты прав, твоя жизнь г-но.
Мясник просветлел и подарил учителю килограмм карбоната запросто так.
> Некие разработчики когда-то меня убеждали, что пользователи вправе называть их дистрибутив
> словом на букву "г".Ну что уж тут поделать. Чего у рунета не отнять, так это того, что толерантности у нас не было никогда. Наше сообщество всегда было токсичным и весёлым. Недаром в нулевых ходила по Сети поговорка "это интернет, тут могут и н***й послать".
> При этом там инсталлятор на Perl и
> написан задолго до них, эти новые деятели не могли ничего с
> ним поделать, в итоге вообще выкинули.Такое бывает. Многие хорошие проекты загинаются по не техническим причинам. Владелец бизнеса потерял интерес к бизнесу -- бизнес свернулся. Технический комитет не смог достигнуть консенсуса в разумные сроки -- в проекте пропал смысл, проект загнулся. Всё уже создано, но не смогли договориться с законниками -- опять смерть.
Ну и тут так же: старые разрабы ушли, новые не умели поддерживать старую технологию и им было проще написать замену -- вот и результат.
Ничего плохого в этом нет. Таков круговорот жизни в IT. Вы ж не станете клясть на чём свет стоит эволюцию, в самом деле.
>> Некие разработчики когда-то меня убеждали, что пользователи вправе называть их дистрибутив
>> словом на букву "г".
> Ну что уж тут поделать. Чего у рунета не отнять, так это
> того, что толерантности у нас не было никогда. Наше сообщество всегда
> было токсичным и весёлым. Недаром в нулевых ходила по Сети поговорка
> "это интернет, тут могут и н***й послать".Могут послать, а потом сами пойти. А заявление, что некий программный продукт "г" - это плохосформулированная претензия технического плана, не имеющая практической ценности. Тем самым она ставит заявителя в неловкое положение. Конкретизируйте проблему и я скажу спасибо. Но когда оно по существу своему "г", то справедливо не давать пояснений, очевидно же. Мне и открыли глаза.
>[оверквотинг удален]
>> написан задолго до них, эти новые деятели не могли ничего с
>> ним поделать, в итоге вообще выкинули.
> Такое бывает. Многие хорошие проекты загинаются по не техническим причинам. Владелец бизнеса
> потерял интерес к бизнесу -- бизнес свернулся. Технический комитет не смог
> достигнуть консенсуса в разумные сроки -- в проекте пропал смысл, проект
> загнулся. Всё уже создано, но не смогли договориться с законниками --
> опять смерть.
> Ну и тут так же: старые разрабы ушли, новые не умели поддерживать
> старую технологию и им было проще написать замену -- вот и
> результат.Так не написали же. Взяли новое, дядя _пока_ за них поддерживает.
> Ничего плохого в этом нет. Таков круговорот жизни в IT. Вы ж
> не станете клясть на чём свет стоит эволюцию, в самом деле.Чувствуется тлетворное влияние толерантного Запада.))
> А заявление, что некий программный продукт "г" - это плохосформулированная претензия технического плана, не имеющая практической ценности.Не могу согласиться. Я вот утверждаю, что Python гoвно как язык общего назначения, потому что я не хочу конкретизировать -- ибо во-первых это займёт время, которого мне жаль, а во-вторых python-фанбои типа того же мыханда опять набегут и примутся с пеной у рта мне доказывать, что я не прав, путём игнорирования всех аргументов и перехода на личности. Я в такой дискуссии не заинтересован.
Мне уже за тридцать, я уже давно написал массу обоснований этой позиции. Если хотите -- вот прямо тут, на опеннете, загуглите мой ник и слово python -- найдёте развёрнутую критику с примерами.
>> А заявление, что некий программный продукт "г" - это плохосформулированная претензия технического плана, не имеющая практической ценности.
> ...
> Если хотите -- вот прямо тут, на опеннете, загуглите мой ник
> и слово python -- найдёте развёрнутую критику с примерами.То есть обоснование для такого утверждения имеются. Претензия была сформулирована ранее. Можно найти, почитать, говорить предметно. Вот если бы всего этого не было, что обсуждать, запах и цвет? ну, извините, о вкусах не спорят.)) Вот что я имел ввиду, когда приводил пример тех "разработчиков".
>Некие разработчики когда-то меня убеждали, что пользователи вправе называть их дистрибутив словом на букву "г".По крайней мере, они были честны.
>>Некие разработчики когда-то меня убеждали, что пользователи вправе называть их дистрибутив словом на букву "г".
> По крайней мере, они были честны.Так я с ними в этом плане и не спорил. Одно мне не понятно. Сейчас я тут пишу о причинах, почему оно таковым является. Почему им же это не нравится?
>централизованного хранилища кода. Но сейчас эти фишки есть в любом языке.Лучше бы не было.
Нет смысла что-то СПЕЦИАЛЬНО учить, если не планируешь сразу начать работать с этим. Иначе знания как придут, так и уйдут. В своё время прочёл толстенную книгу по Java от корки до корки, но когда дочитал до конца, понял, что забыл половину того, что было вначале. И всё потому, что не было практической задачи и конкретных целей.
Прочитал книгу по Scheme и до сих пор помню Scheme, да ещё и с некоторым скрипом и CLHS в руках пишу на Common Lisp, изредка на елиспе вкидывая по функции в .emacs, чяднт?
Подтверждаю. Perl стоит учить, если основательно столкнулся с shell (Bash). Это будет хороший такой апгрейд.
Как ни тянули Python в системное администрирование, как ни писали тулзы на Ruby, Perl так и остался лучшим языком для парсинга и автоматизации работы сисадмина/девопса.
Согласен на 100%. Подтверждаю. Perl в администрировании дает +100500 скилов в работе с *NIX.
Также могу по своему опыта сказать как происходило знакомство с GoLang после многих лет в Perl...
Неделя итерики от смеха и после сразу кодинг :-)
Лучше сначала юникс до понимания, шелл и вот это всё, а потом уже перл. Идти от понимания потребностей к решениям, а не наоборот.
Да, на работе было дело, нужно было микросервис на го чуть-чуть пропатчить, в результате за неделю отрефакторил его. В документацию по языку смотрел уже по ходу программирования. Го после перла и луа вообще изи.
То есть все библиотеки их perl 5 будут доступны без изменений в perl 7. Годно.
Наверняка захотят засовывать модули с прагмой v7 в общий цпан и у пользователей perl5 (которых будет подавляющее большинство - потому что улучшайзерский цирк с конями мало кому нужен из серьезных пользователей языка), начнутся проблемы.
Разумеется, так оно и будет, никто и не обещал работы v5 -> v7. Я вообще не видел таких решений, чтобы более старая версия была совместима с библиотеками / API версии новее. Т.е. только v7 -> v5.Я о том, что библиотеки v5 без изменений будут работать в v7. С питоном так не вышло, совместимость библиотек v2 и v3 поломали, т.е. v3 -> v2 работать перестало, в результате миграция на v3 затянулась на 12 лет, и то ещё кое-где есть артефакты.
Всё правильно делают. Какой же перл охрененный всё-таки.
«охрененный» в сравнении с чем? И в чём?
> недопустимо нарушать совместимость с уже написанным для Perl 5 кодом,
> за исключением случаев, когда нарушение совместимости необходимо для устранения уязвимостейНе нарушать совместимость но нарушать совместимость. Пойди ещё пойми что они под уязвимостями каждый раз понимают и что отвалится где-то в глубинах кода
Так бы прямо и сказали «совместимость не гарантируется. Вообще-то, она постепенно[по мере обнаружения дыр] будет выкидываться и никто не может гарантировать что код, работающий в предыдущем выпуске, будет работать и в следующем»
Я вот не знаю, кто в здравом уме будет изучать Perl с нуля в 2022 году. Я не говорю, что это плохой язык. Сам что-то на нём пытался сделать 20 лет назад. Я просто не понимаю, кто сейчас будет учить этот крышесносный синтаксис.
Смысл языка не в синтаксисе, а в концепте. Если вспомнить, что Perl пришел на замену awk, sed, grep etc., то до сих пор для быстрого анализа логов и другого текстового хлама регулярками - шикарный выбор.
С sed и awk то что не так? Почему сейчас их используют больше чем Перл?
Потому что простых задач больше, чем сложных?
возьмем например awk - недавно делал аудит в системе.99% это одна строка типа : ...| awk '{print $3}' после df или cat /proc/...
и только один полноценный скрипт на нем! Но посмотрев на код - perl был бы лучше и понятней. )))
> perl был бы лучше и понятнейСо стриктом или без стрикта?
На больших файлах Perl очень сильно выигрывает в скорости
1. За счет быстрой работы с файлами
2. За счет бошьшого количества сишных либ прибинденных к перлуПопробуйте файл/лог на 52 млн строк преобразовать и положить в другой файл с помощью Perl и с помощью sed/awk. За счет pipe и редиректов (>, >>) в Bash скорость очень низкая.
В перле можно
open my $fh_target,...
while (<>) {
chomp;
print $fh_target, ...
}
close $fh_target;Будет очень быстро
> Попробуйте файл/лог на 52 млн строк преобразовать и положить в другой файл
> с помощью Perl и с помощью sed/awk. За счет pipe и
> редиректов (>, >>) в Bash скорость очень низкая.
> В перле <...> Будет очень быстроПонял, верю. Спасибо, буду иметь в виду!
PS: правда, предложенный пример с chomp не удачный. Всё-таки sed-ом будет тоже быстро. Но мысль о том, что в перле можно сделать весьма неочевидные преобразования в этом случае, притом с логикой и т.п. вещами -- это аргумент хороший, да.
всерьёз изучать целый яп с модулями и пакетами только для возможности регулярками разбирать логи и проч текстовщину ?
ведь регулярки нынче - это нечто столь уникальное и практически нигде кроме перла не встречающееся
Я бы за одно только это ещё бы и снобол выучил.
На самом деле фишка не в возможности регулярками разбирать, а в возможности делать относительно кратко то, что раньше делал вчерашний сисадминна шелле и слегонца удариться от шеллскриптов в программёрство. А с того, что ты пишешь всё те же шеллскрипты всё короче и короче, тебя потянет и обычный код писать так же кратко.И с каким-то градусом неадеквата тебя потянет на кодгольф.
Perl прекрасно работает в своей нише (системное администрирование, девопс) практически без дополнительных пакетов - как замена Bash/AWK/sed, причём замена более удобная, с единым синтаксисом.
Например если нужно парсить многострочный вывод с достаточно сложными условиями - ничего лучше Perl нет.
perl уже затем учить надо что она ум в порядок приводит :)
он* :)
Чтобы уметь в перл, надо чтобы голова была устроена как-то по-другому:) тоже самое можно сказать про лисп:) неважно насколько эти языки классные в своем роде, но именно поэтому питончик в итоге всех победил:) (сами решайте хорошо это или плохо)
пс: напрмер я сам могу в Си и тот же питончик, но вот перл и особенно лисп для меня это вынос мозга:), и практика показывает, что таких как я большинство:) (опять же сами решайте хорошо это или плохо)
> Чтобы уметь в перл, надо чтобы голова была устроена как-то по-другому:) тоже
> самое можно сказать про лисп:) неважно насколько эти языки классные в
> своем роде, но именно поэтому питончик в итоге всех победил:) (сами
> решайте хорошо это или плохо)Нет, питон победил потому же, почему когда-то был распространён дельфи, и причина эта -- использование в качестве базисного языка при обучении в университетах.
> пс: напрмер я сам могу в Си и тот же питончик, но
> вот перл и особенно лисп для меня это вынос мозга:), и
> практика показывает, что таких как я большинство:)Да, люди думают, что вот-де я выучился в университете, и мне больше ничего учить не надо. И идут работать на том, на чём хоть что-то умеют.
> сами решайте хорошо это или плохо
Это и хорошо, и плохо. Для одних -- это означает, что они всегда найдут работу, ибо на фоне такого большинства они в более выгодных условиях. Для других -- что людей труднее найти, потому что большинство приходится отсеивать долго и упорно, а кандидаты из оного наловчились нагло врать в резюме и все как один требуют овер дохрена за свои на деле скудные знания.
> Нет, питон победил потому же, почему когда-то был распространён дельфи, и причина эта -- использование в качестве базисного языка при обучении в университетах.Неверно. Питон хорош для непрограммистов.
Перл хорош для программистов.
Питон занял свою нишу.
Ниша перла существенно меньше.
Извините, но это маняфантазии. Перл хорош для программистов даже меньше, чем ЖС. С ЖС хотя бы не будет таких страданий от попыток писать объектно-ориентированный или асинхронный код. Вероятно, будут страдания от некоторых особенностей, но к ним хотя бы можно привыкнуть. Ну и всё, что у перла есть -- это приятный зубодробительный синтаксис, больше ничего.
> С ЖС хотя бы не будет таких страданий от попыток писать объектно-ориентированный или асинхронный код.Почему при гуглении callback hell все ссылки ведут на статьи, посвящённые только одному языку?
> у перла есть -- это приятный зубодробительный синтаксис
Какие, однако, хрупкие и вас зубы. Переживаю за остальный организм.
В ветке есть две ссылки на модули со cpan. Выкладывайте на всеобщее обозрение фрагменты, отправляющие вас к стоматологу.
>Почему при гуглении callback hell все ссылки ведут на статьи, посвящённые только одному языку?А ведь могли бы взять и вместо ноды использовать Scheme с call/cc.
> С ЖС хотя бы не будет таких страданий от попыток писать объектно-ориентированный или асинхронный код.Возможно. Вот только в ЖС рычгов, небходимых что бы поменять поведение - меньше. В перле же, хоть свою объектную модель рисуй.
Для программистов важны не удобства, а возможности.
Удобства важны для непрограммистов.
Разве программисту не важна применимость используемого инструмента? Те, кто хотят изобретать свой язык, обычно пишут свой диалект лиспа или что-нибудь в таком роде, вот уж где возможности. Ни о каком серьёзном практическом применении речи конечно не идёт, поскольку разрабатывать всё с нуля -- достаточно нездоровая затея. Сила как раз в штатных и широко применяемых возможностях языка, которые служат для эффективного выражения мысли программиста. И чем качественнее они оптимизированы, тем лучше. На примере популярных языков видно, что должно быть постоянное развитие, иначе придётся каждый раз писать всё с нуля на чём-нибудь вроде си, чтобы не отставать от конкурентов и не терять современных полезных возможностей ОС. Впрочем, и си недостаточно, тот же statx много лет не было в glibc, он был только в ядре.
> Ни о каком серьёзном практическом применении речи конечно не идёт, поскольку разрабатывать всё с нуля -- достаточно нездоровая затея.libffi + swig
>libffi + swigЭто всё хорошо, но на примере того же го полностью лишено смысла по причине крайне высокой цены. Очень зависит от языка.
>Очень зависит от языка.Или от прямоты рук.
> С ЖС хотя бы не будет таких страданий от попыток писать объектно-ориентированный <...> кодПисать объектно-ориентированный код -- уже само по себе страдание. Что ни язык -- новая модель ООП. Десятки различных моделей, каждая со своими особенностями, которые радикально меняют подход к написанию правильного ООП-кода в ней. И конечно же, модель отличная от той, к которой привык комментатор -- всегда неправильная. =)
> причина эта -- использование в качестве базисного языка при обучении в университетахПосле - не значит вследствие. В университеты питон пришел позднее, когда набрал популярность и когда появились нужные университетам плюшки.
Собственно, см. когда вместо SICP стал курс на питоне.
> Да, люди думают, что вот-де я выучился в университете, и мне больше ничего учить не надо.
Нынче все заборостроительные институты переименовали в "университеты". Вот народ глупости и думает.
Для ПТУ - мысль-то здравая, кстати.
>> причина эта -- использование в качестве базисного языка при обучении в университетах
> После - не значит вследствие. В университеты питон пришел позднее, когда
> набрал популярность и когда появились нужные университетам плюшки.Это профанация и ложное изложение действительности.
Гвидо взял за основу Python язык ABC, в разработке которого когда-то участвовал, хорошенько его переписал и модернизировал. Суть языка от этого не изменилась -- как ABC был изначально заточен под "не-программистов" и "для обучения" наравне с Basic и Pascal, так и Python является полноценным преемником этих целей (хотя я вполне допускаю, что сам Гвидо может этого и не осознавать).
Если сделать короткий экскурс в историю, язык был подхвачен университетами в конце девяностых и использовался в научных областях, далёких от разработки, то есть прикладниками (что вылилось в создание того же SciPy в, емнип, 2001м). С учётом того, что они писали в основном одноразовые программы, питон им идеально подходил. Так что в академических кругах питон был очень даже на слуху. Когда в 2007м Сассман решил завершить предопавание SICP, и встал вопрос о замене курса, в академических кругах под рукой оказалась масса народу, которые могли преподавать Python -- его и выбрали.
Однако наследие того, что язык развивался прикладниками, до сих пор бьёт по нему, что вполне видно по тому, как сильно нарушается обратная совместимость между версиями языка, а также по крайне печальному состоянию стандартных библиотек.
> Собственно, см. когда вместо SICP стал курс на питоне.
Замена же курса SICP на курс Python произошла по двум причинам. Первая и самая очевидная, о которой я уже упомянул -- Абельсон и Сассман банально постарели, да и устали уже три десятилетия подряд читать этот курс студентам. Вторая же заключалась в том, что потребность бизнеса в прикладных программистах стала превалирующей: то есть фактически глубокие знания в CS были сочтены избыточными, и в MIT стали массово клепать среднячков в угоду рынку и на радость бюджетам MIT.
>> Да, люди думают, что вот-де я выучился в университете, и мне больше ничего учить не надо.
> Нынче все заборостроительные институты переименовали в "университеты". Вот народ глупости
> и думает.
> Для ПТУ - мысль-то здравая, кстати.Не могу судить. Вполне допускаю, что когда речь заходит о состоянии дел в ПТУ, товарищу мыханду очень даже можно верить.
> ABC был изначально заточен под "не-программистов" и "для обучения"Много чего было заточено "для обучения". Да не все в итоге стали использовать для оного...
> язык был подхвачен университетами в конце девяностых и использовался в научных областях, далёких от разработки, то есть прикладниками
Заметь, не для обучения! Но вообще-то популярность к нему пришла там уже в 0-х, скорее.
> Однако наследие того, что язык развивался прикладниками, до сих пор бьёт по нему, что вполне видно по тому, как сильно нарушается обратная совместимость между версиями языка
Не вижу связи. Дяденька опять хочет рассказать деткам сказочку как "не прикладники" дизайнят чудесные языки влет, не делая ошибок?
Всерьез совместимость была нарушена ровно один раз. Сейчас это уже предания старины глубокой: кроме жадных корпорастов, забивших на развитие своего г-на - никому уже второй питон не нужен. А внутри веток совместимость ломают вполне предсказуемым образом, сперва объявляя нечто устаревшим и т.д. И это правильно: совместимость даже в C ломают (хоть и гораздо реже). Иначе язык (и/или стандартная библиотека) - превратятся в монстра.
Кстати, дядиньке ничто не мешает для каких-то своих поделий использовать конкретную версию интерпретатора. Все будет как в C. Никого ведь не напрягает необходимость указания стандарта при сборке. А то ведь быват, что без этого и не соберется... Ой, быват!
> Вторая же заключалась в том, что потребность бизнеса в прикладных программистах стала превалирующей: то есть фактически глубокие знания в CS были сочтены избыточными, и в MIT стали массово клепать среднячков в угоду рынку и на радость бюджетам MIT.
Да узбагойся: в MIT замечательно учат CS. Просто SICP был одним из вводных курсов.
Вот - https://metacpan.org/dist/HTML-FormHandler/source/lib/HTML/F...Или вот, раз уж за формы взялись, - https://metacpan.org/dist/HTML-Form/source/lib/HTML/Form.pm
Строго говоря, большинство модулей cpan вполне читаемы при наличии понимания общих принципов скриптовых языков.
И если у вас от такого сносит крышу, то у меня для вас плохие новости - в программировании вам скорее всего будет тяжело.
Плохой пример. Это по сути не перл, а имитация другого языка на перле, причем довольно грязная.Я бы что-нибудь такое людям показывал. У этого автора никакой химии (типа Moose), чистый перл.
https://metacpan.org/module/Protocol::WebSocket::Handshake::...
А я говорю хороший. :) Специально, кстати, искал пример с лосём. Смотрите - perl тоже может по-смузихл^W стильно-модно-молодёжно.Ну, вот без лося - https://metacpan.org/dist/libwww-perl/source/lib/LWP/UserAge...
Ну а лось. А что лось (и прочие подобные - коровы, мыши, etc). Object systems, как сами про себя пишут. Ну какой и где это язык? Просто комбайн. Ну, вертикального взлёта и посадки.
Лось вообще странный зверюшка. Рога отпилили - получилась мышь.Или наоборот - лось это мышь с рогами?
> крышесносный синтаксисПомимо однострочников на перле можно делать целые сайты со вполне адекватным и читабельным синтаксисом.
Я учил в 2021, сойдёт? На самом деле, вспоминал, но и кое-что успел почерпнуть.>Я просто не понимаю, кто сейчас будет учить этот крышесносный синтаксис.
Тот, кто захочет проскочить в экологическую нишу, где сытно, относительно тепло и без быстрого выхода, как это есть в JS или условном Python. Идеально для относительно спокойного входа без отказов, я считаю.
Учил в 2014-м. С тех пор нигде не поработал так, чтобы на перле именно программировать. Все наниматели предлагают либо переписывать с перла на пхп и так далее, либо писать на перле с применением тормозных ооп-модулей и техник, полностью чужеродных перлу, получая на выходе что-то вроде пхп по кондовости. Типа энтерпрайз.
Да, чтобы два раза не вставать, фреймворк Mojolicious - лютое дерьмище.Да, если есть где-то нормальная работа для перловика, я открыт к предложениям.
Чем Mojolicious плох? По каким параметрам?
С нуля наверное не надо учить, есть языки попривлекательнее. А если кто уже матёрый перловик, и ему всё нравится, то ему париться не о чем.
Непонятно, а зачем он нужен если уже есть богоподобный Raku aka Perl 6?
Потому что он не совместим с perl5. А perl7 - совместим.
А закрыть развитие Perl5, не делая Perl7, и затем всеми силами накинутся на модный Raku не судьба?!
Чтобы что ?
А то, что Raku моднее.
Raku сделали, он есть. Это полностью новый язык, он сильно отличается. Его делают совсем другие люди, не те, которые развивают perl5/perl7.
Даже удивительно, насколько далекие от перла люди приходят покудахтать в комментариях о нем.
> за исключением случаев, когда нарушение совместимости необходимо для устранения уязвимостейвот потом и думай, сломает ли очередной выпуск и багфикс код столетней давности или нет
вроде под совместимостью обычно немного иное подразумевают
В Новостях все чётко расписано. Что ещё непонятно-то? Ты наверно боишся за свой говнкод.
>Потому что он не совместим с perl5.А перл5 совместим с перл4?
На мой взгляд, без нарушения обратной совместимости 5й версии дальше некуда развиваться, язык уже давно стагнирует. Именно поэтому Ларри и начал разработку 6й версии, и получился отличный язык. Буквально снова сделали из перла жемчужину среди языков программирования.
Сделали жемчужину, да. Но большинству перловиков достаточно perl5, который очень хорош и улучшать его особенно некуда. Зато ломающие улучшения осложняют жизнь тем, кто пишет модули, расширяющие экосистему языка. В качестве примера EV, AnyEvent, Coro. Фактически, без всякого изменения самого языка, в него была добавлена асинхронщина и корутины (да-да, на годы раньше, чем в другие языки, не буду пальцем показывать). В 5.24 команда разработки перла отломала внутреннее сишное апи, на котором все это базировалось. Был скандал, как-то утрясли, но осадок остался. По сути корректная работа этих модулей не гарантируется на версиях старше 5.20. Вот такая цена у всего этого.
Когда там допилят производительность хотя бы до половины perl5 - возвращайся. Но он похоже сдох ещё до рождения.
У меня до сих пор на полке стоит книжка Энциклопедия Perl и когда то (лет 15 назад) я неплохо на нем программировал. Программировать на нем было просто сказочно, ты чувствуешь мощь! ты можешь ВСЁ. ну или почти все. Но потом я совершил УЖАСНУЮ ошибку, я попытался выучить Питон, это удивительно затягивающая гадость. К счастью я излечился от него и спас меня ЛИСП! Спасибо королю ЛИСПа победившего чудовищ программирования. И имея в руках такой инструмент как ЛИСП, даже не хочется глядеть на какой то каменный топор называемый perl.
Ты просто приобщился к илитке. Не больше и не меньше.
Единственный скриптовый язык наравне с баш, который я признаю и одобряю.
> Выпуск Perl 7.0 концептуально не будет отличаться от очередной ветки Perl 5.xx.И для чего переименование?
Другие имена -- другие цели
для use v7 вместо 5.э...в какой там версии появились ВСЕ используемые или могущие быть мной используемыми фичи?Ну и таки синтаксис perl4 они вроде бы обещают все же сломать.
>Ну и таки синтаксис perl4 они вроде бы обещают все же сломать.Это эволюция языка или поступательное развитие.
> Ну и таки синтаксис perl4
> они вроде бы обещают все же сломатьСинтаксис 4 сломать в 7?
Т.е. в 5 есть какой-то синтаксис 4?
А что это за синтаксис такой?И вообще редкие тут упоминания перла 4 напоминают упоминание станции Вавилон-4 в сериале про станцию Вавилон-5. Все знают, что она где-то и когда-то была, а потом кужа-то таинственным образом исчезла. Только примерно в одной серии показали, что на неё наведался командер (как его там, Синклер вроде), угнал станцию на 1000 лет в прошлое, превратился в Валена, который к минбарцам прибыл из ниоткуда (ещё бы!), создал Серый Совет и принёс мир минбарскому народу. :-)
Есть ли на perl живые, не заброшенные библиотеки для нейронных сетей?
Чтобы что?
Чтобы спросить красивое.Потому что metacpan никого не банит, и выдача по neural network не пустая, есть обёртки, есть чистые реализации. И если спрашивавший хочет библиотеку на скриптовом языке, то он подразумевается, что он понимает о возможной необходимости лезть в исходник и обладает достаточной компетенцией.
Но как только появляются слова про незаброшенность - см. первую строку этого сообщения.
Нет.
Есть относительно свежая https://metacpan.org/pod/AI::MXNet
Любопытно, что для этой реализации есть страничка на официальном сайте: https://mxnet.apache.org/versions/1.9.1/api/perl
А кто перл ещё использует?
Мастерхост использует.
Я использую. А что?
Для коких зодач?
Нискажу.
Вот что любопытно: насколько мне помнится, то в перлах была найдена только парочка модулей со зловредами и иже с ними, в сравнении с нодой и питоном, которые чаще в новостях. Это все же культура сказалась или следствие непопулярности.
А для тиклов, так же, хотя вроде все для этого есть, да и база может быть и специфичная, но не такая маленькая.
Есть Testers. Это твой модуль тестят какие-то люди на разных системах и архитектурах. Они могут запускать код в окружении, которое зафиксирует ненормальную активность.
По-моему, странное решение. Проще было бы так: ветка 5.x развивается с сохранением совместимости и пердолингом с прагмами. А версия 7 могла бы быть просто алиасом для 5-й, но со всеми включёнными прагмами. Тогда всё хорошо: и старое работает, и для нового можно не париться и просто запускать через perl7.