Ознакомившись с Рельсами (Ruby On Rails) поближе, я могу подытожить: после чёткого Оберона очень трудно переходить к пространным определениям Ruby On Rails.
Уйма подводных рифов из-за неопределённости, опасности перекрытия глобальных имён.
А если учесть и мешанину программного кода в виде helper, partial вкупе с AJAX, то, вообще, становится нехорошо. Напоминает сочетание Visual Basic, Perl, assembler со спагетти в виде операторов GOTO.
С одной стороны, кажется вполне так "ничего". А, присмотревшись поближе, становится страшнее и страшнее по мере увеличения функциональности. Хардкор, не иначе.
Что понравилось:
- Ассоциации между моделями и миграция баз данных
- Наличие генераторов кода JavaScript посредством прототипов
- Автоматическая генерация связей действий с моделями баз данных (scaffolding) с созданием шаблона и стилей
- Проверка (validation) корректности ввода полей
- Интерфейс запросов Active Record для БД
- Заслуживает внимания принцип RESTful. Хотя им можно и злоупотребить в некоторых случаях.
Из-за довольно высокой абстрагированности каркаса с его внутренними связями трудно понять как он работает изнутри (особенно касаемо производительности). Трудно переключаться с процедурных языков. Трудно понять взаимодействие и передачу переменных - оно работает через одно место (конкретно: через малопригодные для этих целей запросы по URI).
На этом этапе отладка для меня является мучением. Система сообщений об ошибках настолько запутанна, что даже опытные разработчики должны вникнуть в суть сообщения размером в одну страницу (backtrace), так как часто указывается ошибка наподобие: "здесь что-то неладно" или "неизвестная ошибка - сообщите разработчикам, немедля".
От одной минорной(!) версии к другой могут появиться особенности, могущие привести к обратной несовместимости!
С Рельсами знаком чуть более двух недель, так что моё мнение может оказаться далеко от реальности. Но эмоциональную часть передаю из своего опыта с другими языками программирования.