Растём дальше
Давно хотел выучить что-нибудь скриптовое помимо php, к тому же, мне перестало хватать bash'а для скриптов. Вывод?
Выбирать пришлось из python'а, perl'а и ruby.
Первый я не люблю за мусор в системе:
- site-defaults
*.pyc
1- синтаксис 2
- травма сборщика (я собирал karesansui, кучу модулей к нему, ковырял pyicqt и код пары ботов на питоне), NO! NOT THIS SHIT AGAIN!
- ЧСВ питонокодеров
- жручесть (salt, на демон - 200Мб вынь да полож, агент - 70Мб) Особенно феерично это смотрится на виртуалке с 256 метрами всего.
Второй - за:
- дешёвый выпендрёж в коде, хоть это не проблема языка как такового
- кастрированное ООП. Интерфейсы? нет, не слышал. Кстати, в питоне их тоже нет.
- юникод (лучше чем php, до конца не доделано, но хотя бы документировано)
- pod + отсутствие
/* */
-> неуклюже - разгромная статья3, хотя большинство претензий - вида "почему perl не Java"
- true -> 1, false -> "" / твою мать!
- доказанная невозможность статического анализа кода
Третий - за:
- вебориентированность
- видел и ковырял работающий puppet
- синтаксис
- принудительное ООП (пнх, не буду я для 2х хелперов класс городить)
- ЧСВ кодеров (даже большее, чем у питонистов, что парадоксально, ведь кроме вышеупомянутого puppet'а и рельс там нихрена больше нет)
- совместимость (поставил и пару раз обновил redmine, после в ужосе снёс нахер с проходом shred'ом после)
- "нам срать на пакетные менеджеры! только rvm, только хардкор!"
- тормоза и жручесть приложений (что редмайн, что паппет, и ещё кой чего), даже кривонаписанное приложение на жабе так не жрёт (приснопамятный ружель)
- fcgi? та ну нах, у нас будет свой протокол, СБИШ!
- cgi + руби => сразу стреляйтесь
Вобщем, выбрать выбрать есть из чего. Но, раз партия сказала "надо" - выбирать таки надо.
Вобщем, выбрал перл, по наименьшему количеству перечисленных недостатков.
P.S. Заметка пролежала почти год в закромах и только сейчас попалась на глаза. Так что делайте поправку на время.
А вот это писано спустя неделю после:
По сравнению с пыхом - понравилось:
- маленький набор встроенных функций, в отличие от пыха их МОЖНО запомнить.
- map { ... } @array;
- my $array = [] вместо $array = array()
- сильно порезанные includ'ы. как ни странно, это достоинство, а не недостаток, я насмотрелся и на копипаст и на раскиданные по десятку файлов классы
- лаконичность, даже если не злоупотреблять спецпеременными: return [] if ($foo !~ m/.../);
- оператор ...
- нет конфига, среда полностью контролируется разработчиком через "use"
Не понравилось:
- elsif
- странный синтаксис switch'а (хотя он эмулируется, в самом языке его нет)
- относительно многословное объявление модулей (package, use, манипуляции с ISA и явный экспорт функций)