main

Растём дальше

Давно хотел выучить что-нибудь скриптовое помимо php, к тому же, мне перестало хватать bash'а для скриптов. Вывод?

Выбирать пришлось из python'а, perl'а и ruby.

Первый я не люблю за мусор в системе:

  • site-defaults
  • *.pyc1
  • синтаксис 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 и явный экспорт функций)

  1. типа мы хотели сделать C# assembly, но забили ↩

  2. хоть я и придерживаюсь codestyle, но меня бесит именно, сука, 4 пробела и отсутствие фигурных и операторских скобок ↩

  3. ЧСХ, страница первоисточника с расширением .asp, что как бэ намекает ↩