// codeart.ru / Обзоры / Erlang и ChicagoBoss Web Framework Форум

Erlang и ChicagoBoss Web Framework rss подписка

Автор: Evgeniy Sergeev

Совсем короткая заметка о моих впечатлениях о фреймворке ChicagoBoss. Для тех, кто не в курсе — небольшое пояснение, ChicagoBoss — это фреймворк для создания веб приложений. Особенностью данного фреймворка является то, что он написан на замечательном функциональном языке программирования Erlang. И на данный момент, на мой взгляд, это самый лучший фреймворк из всех, что я когда-либо использовал. И об этом далее.

Функциональные языки, и в частности Erlang, привлекали меня давно. Еще с института я очень люблю рекурсивные функции. Мне кажется, что ни один цикл не может сравниться с той обвораживающей красотой, которой обладает рекурсия. Но в реальном мире рекурсивные функции — это весьма дорогое удовольствие (реальный мир — это Php, Python, Ruby и т.д.). Поэтому если нужно пробежаться по элементам массива, то приходится использовать обычные циклы, которые значительно менее прожорливы. Совсем другая история с функциональными языкам. Здесь в принципе нет такого понятия как цикл (точнее понятие есть, нет специального оператора), вместо этого повсеместно используется рекурсия. И уже только за один этот факт можно полюбить Erlang.

Конечно, есть и другие плюшки, которые привлекают внимание к данному языку: отказоустойчивость, многопоточность и тому подобные вещи. Но на них я останавливаться не буду, так как в интернете есть сотни статей, посвященных данному языку. Перейду лучше к ChicagoBoss (про него тоже есть много статей, но мне хочется добавить своих пять копеек).

В виду того, что я занимаюсь только вебом, то изучение Erlang-а для меня имеет смысл при условии, что на нем есть хорошие фреймворки, которые можно было бы использовать в повседневной жизни. Признаться, я не очень надеялся найти что-то стоящее. Опыт предыдущих лет показывает, что самые разрекламированные продукты на подобие Django и Rails на поверку имеют множество ограничений и недостатков, которые начисто убивают мечты об идеальном фреймворке. На всякий случай уточню, что ничего против Django и Рельсов я не имею. Просто дикого восторга эти фреймворки у меня не вызвали, хотя, безусловно, они очень даже хороши в своих нишах. А вот ChicagoBoss — это совсем другая песня. Не ожидая ничего особенного, я удивился тому на сколько красивым и продуманным оказался данный фреймворк.

Как-то давно в сети активно гулял урок по Рельсам, который назывался что-то типа «Делаем блог за 15 минут на Ruby on Rails», так вот, на ChicagoBoss можно сделать тоже самое, за те же 15 минут. Правда ни о какой генерации кода речи не идет. Просто код настолько компактный и выразительный, что набрать его не занимает много времени. Особенно хочется отметить выразительность, авторам фреймворка удалось добиться в этом вопросе очень больших успехов. Есть какая-то обворожительная математическая точность в коде на Erlange, которая мне очень нравится. Мне в принципе нравится математика, может поэтому нравится и Erlang.

За основу для языка шаблонов взять Django Template, т.е. фактически все шаблоны созданные в Django могут быть свободно перенесены в ChicagoBoss. И мне это тоже нравится. Точнее мне нравятся Django Template, которые выигрывают и у PHP Pure Templates, и у Рельсовых шаблонов.

Простая и удобная ORM, которая называется BossRecord — это тоже плюс. Сложные запросы, конечно, на ней не сделаешь. Но все что нужно для простых задач есть. :-)

Ну а самое приятное — это то чего нет ни в Django, ни в Рельсах. Я говорю о «Message Queue Service», который называется BossMQ. Благодаря этому функционалу ChicagoBoss позволяет без всяких извратов и напрягов создавать приложения, которые могут в реальном времени обмениваться сообщениями между друг другом. Сейчас многие сайты используют похожий функционал, поэтому приятно когда все что нужно уже сделано за тебя :-).

В общем и целом я хотел сказать одно, ChicagoBoss — это фреймворк, который мне очень понравился. В ближайшее время попробую сделать на нем небольшой сервис для Defaceit. Посмотрим не улетучится ли мое первое хорошее впечатление. :-)

  1. Пустые директории в ChicagoBoss и Mercurial
  2. Запустил defaceit на ChicagoBoss (erlang)
  1. Было бы круто увидеть на этом блоге цикл из статей про разработку на Erlang. Качественной информации по этой теме не много, но интерес есть.

  2. Я с Erlang-ом на уровне чайника пока знаком. Буквально прочитал документацию на официальном сайте и сделал пяток задачек на самопроверку. Но я думаю, что erlang-ом я буду заниматься, поэтому заметки будут.

  3. Я уже было воодушевился, но в примере с чатом вот здесь —

    https://github.com/kristiankristensen/erlchat/blob/master/priv/static/js/chat.js

    откровенно обеспокоило, что к серверу руками делается лонг-поллинг. Интересно, в Чикаго есть какие-то планы на вебсокеты?

  4. Подозреваю, что раз гугл молчит насчет web socket-ов и Chicago Boss, то фреймворк не поддерживает эту возможноть.

    Мне самому интересно с веб сокетами поработать. Надо будет разобраться с этим вопросом.

  5. Ну вот в рассылке есть относительно свежее обсуждение насчет вебсокетов — http://groups.google.com/group/chicagoboss/browse_thread/thread/93a237107796ca9c/b18fdde50fe9a3e2

  6. Serge Tarkovski, хотел спросить, Вы только интересуетесь Erlang-ом? Или уже что-то делали?

  7. Не делал и вряд ли, к сожалению, в ближайшее время найду возможность сделать на Эрланге что-то крупное. На данный момент я пока просто изучаю, что еще существует полезного помимо моего основного стека (Python).

Leave a Reply

« »