[Moscow.pm] Why Perl?

Dmitry Arsentiev dmarsentev на gmail.com
Ср Фев 3 07:35:33 PST 2010


>> Питон проще, порог вхождения как минимум вдвое ниже,
>> для экспериментов идеален.
>
> Было бы здорово услышать аргументацию. Не флейма ради, а чтобы
> понимать и упоминать.

Спросил у коллеги, который пробовал сам выучить Пёрл,
а потом стал программировать на Питоне.

Во-первых, отступы. Не так страшны. как их малюют.
Коллега говорит, что отступы приводили его в ярость
только первую неделю.
Потом привык и "забыл", т.е. стал делать на автомате.
Другими словами, отступы - это такое "ката" питонера. :)

Во-вторых, у Питона правильная для новичка, изучающего язык, идеология:
Есть Только Один Способ Сделать Это Правильно.
В отличие от Перла, с его идеологией TIMTOWTDI.
Для новичка проще выучить один способ,
который НАДЁЖНО работает ВСЕГДА ОДИНАКОВО.
Вообще, хорош тот язык, в котором кирпичиков мало,
а составить из этих кирпичиков можно богато всего.
В Перле наоборот - на много случаев свой кипичик.

По поводу работает ВСЕГДА ОДИНАКОВО - следующий пункт.

В-третьих, в питоне слабая зависимость от контекста.
В Перле, например, одна и та же переменная $_
в разных контекстах ведёт себя по разному
и порой нужно задумываться, в каком контексте мы сейчас находимся.

В-четвёртых, обилие специальных переменных и, шире, идиоматизация языка.
Пёрл - язык с очень направильной,
нелогичной грамматикой и с огромным количеством идиом.
Вот что это за переменные такие?
$| $|- $& $^I $^O и т.д.
Если выучил две-три вещи в пёрл, то не факт, что догадаешься,
как должны выглядеть/называться другие две-три вещи.
В Питоне всё логичнее.
Если выучил десять "кирпичиков", то про остальное можно логически догадаться.
Т.е. питон - это правильная литературная речь.
Да, это речь с длиннотами,
но не переполненная сверх всякой меры жаргонизмами,
идиомами и авторскими неологизмами.
В этой речи есть подлежащее и сказуемое, они видны.

В-пятых. Ссылки, разыменование ссылок.
Я спросил у коллеги, он сказал, что такого разнообразия игр со сслыками,
как в перле, в питоне нету.
Т.е. всякие \() , \&funcfoo, %{ $refhash } и т.д. - нету их.
Правда, в питоне нету автовивификации, насколько я знаю..
И это единственный крупный минус питона перед перлом в моих глазах.

В-шестых. Объекты перла слизаны с объектов питона.
Поэтому здесь питон не хуже перла.

В-седьмых, сопровождать чужой код на питоне
проще, чем сопровождать чужой код на перле.
Последнее иногда просто невозможно.
Т.е. уход крутого разработчика означает сперва "обожествление",
а потом и омертвение  оставленного разработчиком кода.

Вот, здесь выдохся.
Если подумать, можно, наверное, написать ещё.
Хотя надо делать поправку, что на чужом лугу трава кажется зеленей
и чужой кусок пирога слаще, тем не менее, всё-таки питон проще для изучение.
Отношение "отдача на вложение" явно больше.


Подробная информация о списке рассылки Moscow-pm