Не смешивайте Ruby и Rails

Опубликовано 14.03.2008

Мне хоть и нравятся рельсы, но все же я не позволяю себе забывать, что мир Ruby-фреймворков не ограничивается только Rails. Поэтому не забываю следить за жизнью и других фреймворков, чего и вам желаю. Вот они:

  • Merb
    Пожалуй, наиболее продвинутый из альтернативных фреймворков в плане функционала. Из особенностей можно отметить фактически полную независимость от ORM - можно использовать на выбор ActiveRecord, DataMapper или Sequel (про последний рекомендую почитать Константина Тумалевича - ссылка раз, ссылка два). Удобен для реализации веб-сервисов или небольших сайтов, требовательных к нагрузке. Полезное чтиво: merb + datamapper + noob: quick start

  • Camping
    Еще более компактный и легковесный, чем Merb, однако по-прежнему динамический. Что меня смущает, так это разметка шаблонов (views) с помощью Markaby. Я понимаю, что программисты в большинстве своем - перфекционисты. Однако простому верстальщику от этого не легче.

  • Mack
    Тоже вполне себе легковесный, вышел . Из преимуществ - использует Rack и Thin, что дает существенный потенциал в плане производительности. Thin мы недавно начали использовать в production и о нем тоже стоит написать отдельную заметку. Напомните мне плиз :)

  • Ramaze
    В принципе похож на предыдущие, но с одним отличием - в качестве шаблонизатора используется собственный движок под названием Ezamar (другие движки тоже поддерживаются), позволяющий создавать собственные теги. Принцип схож с движком Radius, который используется в Radiant CMS.

  • Webby
    Относится скорее к семейству микро-CMS, т.к. фактически генерирует статичные HTML-страницы. Из удобств - одновременная поддержка шаблонов Erb, Textile, Markdown и Haml. Плюс позволяет сделать подсветку синтаксиса с помощью библиотеки CodeRay (ссылку не даю, т.к. сайт лежит), визуализацию диаграмм с помощью Graphviz и запуск демона для автоматической генерации статики при внесении изменений.

  • Sinatra
    Динамический фреймворк, очень легковесный, не завязан на ORM. Фактически, представляет из себя просто обертку для разбора урлов и отдачи сгенерированного контента. Можно использовать ERB и HAML, однако код шаблонов пишется прямо в контроллере, что на мой взгляд есть признак дурного вкуса.

  • StaticMatic
    Библиотека для генерации статичных сайтов, о ней я уже писал. В принципе годится для создания простеньких сайтов с десятком страниц, весьма удобна в использовании. Разметка делается с помощью HAML.

  • Nanoc
    Очень похоже на StaticMatic, но с одним существенным отличием - информация хранится отдельно от представления. Кроме того, в nanoc можно использовать БД для хранения данных, что является весьма интересным преимуществом.

  • Waves
    Появился на сцене совсем недавно, динамический, использует Rack, Sequel и все такое. На мой взгляд, просто переизобретение трехколесного велосипеда на солнечных батарейках. Слишком много кода для реализации слишком простых вещей.

  • Halcyon
    Фреймворк включает в себя сервер и клиент для обмена информацией в формате JSON. Фактически можно использовать для обмена информацией между серверами (можно даже на разных платформах).

  • Nitro
    Пожалуй, это самая темная из всех вышеперечисленных лошадок. По масштабам этот фреймворк сравним, пожалуй, с Merb, однако существующая документация дает весьма размытую картинку происходящего. Ясно следующее: это динамический фреймворк, использующий собственную ORM под названием Og, обработчик шаблонов с возможностью создания собственных тегов, встроенную систему локализации, скаффолдинг и кэширование. Специально для пытливых умов есть серия хитрых tutorial’ов, оставляющих вопросов больше, чем ответов.

Некоторые из них весьма специфичны, как например Halcyon, не все годятся для создания динамических сайтов. Однако каждый из них можно применить в том или ином круге задач, в которых рельсы будут просто-напросто излишни.

Подпишись и читай
Самые продвинутые ruby-программеры уже читают Rail0rz в формате RSS. Присоединяйся!
Комментарии
  1. Myckyc14.03.2008

    Еще бы пару слов про каждый фреймворк и про «тот или иной круг задач, в котором можно его применить», и этому посту цены бы не было. В любом случае, спасибо за подборку! =)

  2. Kavu14.03.2008

    А почему бы не доавбить в этот список еще и Waves? http://rubywaves.com/

  3. Alexander Tretjakov15.03.2008

    Не подскажеш как подключиться к MSSQL и вызвать его процедуры из Руби? Процедура возвращает 3 разных по структуре таблицы. Спасибо за любую помощь. Одну таблицу могу обработать, а больше… Извини что спамлю

  4. DEkart16.03.2008

    Alexander, такие вопросы лучше задавать в ror2ru:

    http://groups.google.com/group/ror2ru