Перл - мертв и лишь потеет перед окончательной смертью. Что касается Питона, то это не социализм, а это очередная попытка, которая уже была не раз на моих глазах, создать универсальный язык, который можно было бы применять везде и не надо учить несколько языков. Сколько раз надо наступать на одни и те же грабли, чтобы понять, что этого никогда не будет. Сразу вспомнилась Вавилонская Башня и причина по которой Бог дал людям разные языки.
Да хез, на питоне, по-моему, как раз не так уж и нужны. Особенно если IDE хороший. Ну то есть иногда помогает, но так чтобы прямо везде нужны были - так нет.
регэкспы :) необходимость считать пробелы необходимость форсировать конверсию из числа в строку и обратно невозможность передать ссылку на переменную, как параметр (и соотв. ссылку на ссылку) библиотека getopts хуже.
Это в сравнении с перлом, и на базе тех 500 строк, которые мне за последние 2-3 недели пришлось наваять.
Я все понимаю. Перл - не для слабых духом, и наваять совершенно полную хуйню на нем конечно проще, чем на питоне. Не очень для новичков. Я уже цитировал одного моего знакомого: "программировать на перле - все равно, что чистить зубы динамитной шашкой". Поэтому сравнение с социализмом и анархокапитализмом. В перле программист должен сам за собой следить, что и где, а в питоне интерпретатор, чуть что, по рукам дает. Зато возможности в первом практически безграничные.
Считание пробелов лечится установкой IDE. getopts называется argparse и вполне адекватное, пмсм, всё, что мне нужно, делает. Регэкспы - тут, конечно, с перлом никто не сравнится, это его стихия. Насчёт конверсий согласен, раздражает, но опять же с IDE будет легче, можно в крайнем случае типы прописывать, ну а так да, приходится вручную обьяснять, ничего не поделать. А переменные можно передавать в контейтерах - или обьектах. Это всё передаётся по ссылке, с очевидными последствиями. Но учитывая, что там удобные tuples, передавать переменные, которые надо в функции менять - зачастую совершенно лишнее, можно просто вернуть всё, что надо.
Я верю, что в Питоне многое решаемо, и его пилят и перепиливают гораздо больше, чем Перл (что и лучше, и хуже одновременно). Моя мысль не в том, что он убог, а Перл велик :) Ты оба языка хорошо знаешь, в отличие от меня, вот бы и оценил отсылку к социализму и анархо-капитализму. :)
А мне как раз надо было писать парсер лога, где jsonы совершенно разных структур, и строки типа апачевского лога, и жабный стек трейс, и вывод (оба) различных системных команд и библиотек, и даже художественное описание происходящего...
Да в питоне вовсе не такой социализм, как кажется... там просто немного по-другому вещи работают. Но это далеко не Java, скажем, и там много странного можно наделать. Декораторы, метаклассы, магические функции... там много чего. Но вот конкретно регекспы - тут питону крыть нечем, перл всегда был и остаётся чемпионом в этом классе. Т.е. всё можно и на питоне написать, не проблема, сам писал, но всё-таки кайф не тот.
Можно, конечно, translate развернуть в цикл - т.е. ''.join([f(c) for c in my_string])) но незачем. Понятно, что maketrans на самом деле надо сохранить, для экономии энергии.
Он знал что делает!
Date: 2020-02-19 10:28 pm (UTC)no subject
Date: 2020-02-19 10:52 pm (UTC)no subject
Date: 2020-02-19 11:14 pm (UTC)no subject
Date: 2020-02-19 11:48 pm (UTC)no subject
Date: 2020-02-20 03:04 am (UTC)no subject
Date: 2020-02-22 06:54 am (UTC)no subject
Date: 2020-02-20 04:26 am (UTC)no subject
Date: 2020-02-20 04:48 am (UTC)no subject
Date: 2020-02-20 05:38 am (UTC)а в чем, например, кособокость?
no subject
Date: 2020-02-20 06:14 am (UTC)необходимость считать пробелы
необходимость форсировать конверсию из числа в строку и обратно
невозможность передать ссылку на переменную, как параметр (и соотв. ссылку на ссылку)
библиотека getopts хуже.
Это в сравнении с перлом, и на базе тех 500 строк, которые мне за последние 2-3 недели пришлось наваять.
no subject
Date: 2020-02-20 06:36 pm (UTC)ну так то да, но это ж типа дизайн (я про ссылки и конверсию). впрочем я не спорю поскольку перла ни разу не трогал и уже врядли
no subject
Date: 2020-02-20 07:29 pm (UTC)Я все понимаю. Перл - не для слабых духом, и наваять совершенно полную хуйню на нем конечно проще, чем на питоне. Не очень для новичков. Я уже цитировал одного моего знакомого: "программировать на перле - все равно, что чистить зубы динамитной шашкой". Поэтому сравнение с социализмом и анархокапитализмом. В перле программист должен сам за собой следить, что и где, а в питоне интерпретатор, чуть что, по рукам дает. Зато возможности в первом практически безграничные.
no subject
Date: 2020-02-22 06:59 am (UTC)Регэкспы - тут, конечно, с перлом никто не сравнится, это его стихия.
Насчёт конверсий согласен, раздражает, но опять же с IDE будет легче, можно в крайнем случае типы прописывать, ну а так да, приходится вручную обьяснять, ничего не поделать.
А переменные можно передавать в контейтерах - или обьектах. Это всё передаётся по ссылке, с очевидными последствиями. Но учитывая, что там удобные tuples, передавать переменные, которые надо в функции менять - зачастую совершенно лишнее, можно просто вернуть всё, что надо.
no subject
Date: 2020-02-22 04:02 pm (UTC)А мне как раз надо было писать парсер лога, где jsonы совершенно разных структур, и строки типа апачевского лога, и жабный стек трейс, и вывод (оба) различных системных команд и библиотек, и даже художественное описание происходящего...
no subject
Date: 2020-02-23 09:37 am (UTC)no subject
Date: 2020-05-21 09:59 pm (UTC)Возникла необходимость перевести
tr/[a-cd-f0-45-9]/[d-fa-c5-90-4]/ (такой rot13 для UUID)
на питон. Можно как-то в две-три строки?
no subject
Date: 2020-05-21 10:11 pm (UTC)"a-cd-f0-45-9".translate(str.maketrans("abcdef0123456789", "defabc5678901234"))
Можно, конечно, translate развернуть в цикл - т.е.
''.join([f(c) for c in my_string]))
но незачем. Понятно, что maketrans на самом деле надо сохранить, для экономии энергии.
no subject
Date: 2020-05-21 10:39 pm (UTC)no subject
Date: 2020-05-21 11:12 pm (UTC)