TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE - из кодов компьютера на Apollo 11. В этом блоге Вы узнаете и другие шокирующие подробности о том, что на самом деле твориться внутри ваших компьютеров :-)

вторник, 8 декабря 2009 г.

Что не понравилось в Perl

Несколько вещей, которые не понравились в безумном языке Perl. Чтобы не забыть и при возможности использовать - подтрунивать над адептами этого набора заклинаний. Без особого порядка:
  • В случае, если интерпретатор запущен без -W, то можно спокойно писать в неверный дескриптор файла и ничего не знать об этом. Видимо, более общее - отсутствие нормальных исключений.
  • Негодная поддержка ООП
    • Организация классов классов возможна, но требует написания большого количества кода. Есть какой-то дополнительный модуль, но я до него не добрался.
    • Копирование объектов - я так и не понял как это сделать более-менее правильно. Есть какие-то проблемы с копированием замыканий.
  • Можно сделать файл abc.pm, внутри написать package efg. Работать программа не будет, а сообщений никаких не появится.
  • Ссылки. Совершенно не ясно зачем они вообще нужны. При этом они приводят к конструкциям вида %{$$self{'abc'}}.
Список можно продолжить, и это уже после двух недель знакомства. Хотя, может потом просто зомбируешься привыкаешь.

понедельник, 7 декабря 2009 г.

1С и продолжения или все более-менее похоже

Мне очень нравится 1С. Чтобы не говорили высоколобые почитатели Haskell, эта программа приносит реальную пользу и часто с успехом заменяет более дорогие западные системы (готов привести конкретные примеры). Идея сделать систему настраиваемой за счет встроенного высокоуровневого языка, в котором не нужно работать напрямую с базой - очень даже в духе времени.

Но, конечно же, в 1С есть и существенные недостатки. Один из таких недостатков, который похоже объясняется изначальной ориентацией системы на бухгалтерию - слабая поддержка процессов. Упор делается на учет уже произошедших событий, а иницирование этих событий в нужном порядке отдается на откуп пользователей. Есть встроенный механизм бизнес-процессов, но он продуман не до конца и часто не используется.

Обсуждал недавно варианты создания своего механизма для описания процессов. В процессе этого, чудесным образом понял, что разбор HTTP запросов - это по сути такой же процесс, правда с фиксированным количеством состояний. Также мне показалось, что подход к написанию HTTP серверов, основанный на событиях, который применяется в lighttpd, а также (это неточно, нужно проверить) во всяких Tornado и node.js, может быть и хуже, чем подход на основе продолжений. Собираюсь поразбираться с этим.