4 главных аналога Ruby on Rails

Альтернативы.
19 июня 2017326451Илья Бубнов281877

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

Мы не будем говорить, почему Rails плох и в чем каждый из представленных фреймворков его превосходит. Объективно — Rails лучший инструмент для разработки на Ruby, что не отменяет его несовершенств, которые могут вызывать отторжение. А раз так, вы неизбежно посмотрите в сторону одного из этих фреймворков.

Sinatra

Краткое описание: Sinatra — не фреймворк, скорее мини-фреймворк. Если вы изначально примете это как истину, у вас будет возможность насладиться работой с ним. Он активно продвигает старую истину: «если хочешь что-то сделать хорошо — сделай это сам». В реальном проявлении это означает отсутствие модели MVC. Sinatra занимается преимущественно обработкой запросов на серверной стороне, а к большим подвигам категорически не склонен.

С точки зрения минимизации и увеличения производительности, Sinatra — прекрасный инструмент. Но для решения комплексных и сложных задач лучше прикрутить его к Rails.

Чем может понравиться: легковесность, быстрота, стабильность, расширяемость, а главное — понимание того, что делаете вы и что — машина.

Оценка функциональности: 1 рельса из 5.

Grape

Краткое описание: еще один фреймворк, заточенный исключительно под разработку API. Поддерживает архитектуру REST, что делает его вполне пригодным для многих веб-продуктов. В частности, для этого используются структуры namespace, group, segment и т. д.

Это уже более высокоуровневый фреймворк, нежели Sinatra, но плюсы в сравнении с Rails аналогичны: выше быстродействие, больший уровень стабильности, не используется куча middleware.

Чем может понравиться: простота и скорость.

Оценка функциональности: 2 рельсы из 5.

Hanami

Краткое описание: довольно рассуждать об узко заточенных фреймворках, самое время перейти к полноценной реализации MVC-модели. Он создавался как полноценный конкурент Rails, разработчики старались сделать его компактнее и легче в обращении.

На Hanami можно быстро создать веб-приложение (производитель обещает, что уложитесь в 5 минут), он потребляет на 60% меньше памяти, чем любой другой fullstack-фреймворк на Ruby, и при этом он обладает рядом интересных полезностей. Некоторые из них, вроде отдельного тестирования логики взаимодействия или работы с действиями контроллера как с отдельными классами, помогают в работе и повышают безопасность конечного продукта.

Чем может понравиться: компактностью и простотой fullstack-разработки.

Оценка функциональности: 4 рельсы из 5.

Padrino

Краткое описание: веб-фреймворк, основанный на Sinatra и серверном интерфейсе Rack, также является инструментом fullstack-разработки. Он несет те же самые ценности, что и его «голливудское» ядро, поэтому сравнивать его уместнее не столько с Rails, сколько с Hanami.

При знакомстве с Padrino вы "захватите" и Sinatra. Другие преимущества: легкость в использовании, скорость разработки и работы приложения, достаточно богатая экосистема. Пожалуй, это наиболее вероятный второй номер в мире фреймворков Ruby.

Чем может понравиться: легкость, компактность, скорость, а также одновременное изучение 3 популярных Ruby-инструментов за один заход.

Оценка функциональности: 4 рельсы из 5.

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

По приведенной подборке можно сделать вывод, что в мире Ruby есть Rails и все остальные. Это действительно так, но это не отменяет того, что попыток посягнуть на престол было и остается много. Вот еще несколько:

Merb — был когда-то такой славный конкурент у Rails, но потом разработчики решили, что не враги они друг другу, а коллеги. В итоге объединились с «рельсами» и создали Ruby 3.

Camping — микро-фреймворк, исходный код которого умещался на одном листе формата А4. Реализует интерфейс CGI, но функциональность при этом невероятно низкая.

NYNY — схожий с Sinatra веб-фреймворк, отвечающий за разработку ядра. Плюсом является возможность взаимодействия с Rails и все тем же Sinatra, использование Rack в качестве интерфейса.

Scorched — еще один невероятно легковесный фреймворк, работающий по принципу DRY. Не слишком популярен из-за практически полного дублирования Sinatra по функционалу.

Cuba — элегантная попытка создать фреймворк для разработки real-time приложений с чистым кодом и минимально возможным количеством задействованных файлов.

Hobbit — в нем создатели планировали расширить возможности Rack до полноценного фреймворка. Хорошая попытка, в итоге разбитая о разочарование и лень разработчиков.