Написать пост

Ruby on Rails: жив и будет жить

Аватарка пользователя Юрий Гизатуллин

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

Языки программирования и фреймворки, как люди, рождаются и рано или поздно умирают. И, как и в случае с людьми, сведения о смерти некоторых бывают сильно преувеличены.

Яркий пример – Ruby. Вопросы о его смерти возникают настолько часто, что энтузиасты даже создали сайт isrubydead, где можно найти ответ на соответствующий вопрос. 

Мы в Tiqum делаем проекты на Ruby on Rails: мы уверены, что и язык, и фреймворк живы и будут жить. И вот почему.    

Сильные конкуренты

Начнем с простого и попробуем разобраться в ситуации, в которой сегодня приходится выбирать, использовать Ruby on Rails или делать ставку на другой фреймворк. 

У  Ruby безусловно, много конкурентов. Основные это Django на Python и многочисленные фреймворки на Node.js. самыми популярными из которых можно назвать Express.js и Nest.js. Их позиции достаточно сильны как в мире в целом, так и в России. Если говорить честно, они более популярны, чем Ruby on Rails, а это означает, что на них больше заказчиков, больше денег, и как результат, большее число вакансий и большее комьюнити для развития. 

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

В России ситуация для Ruby on Rails еще более сложная. К уже названному комплексу проблем добавим тот факт, что у нас всегда было меньшее комьюнити и количество предложений, чем на Западе. Многие Ruby-разработчики стремились найти работу на Западе или хотя бы на западные компании. А так как в последнее время многие западные компании ушли, то, соответственно, количество заказов еще уменьшилось и появились проблемы с оплатой. 

И все же это не значит, что пора готовить молоток, чтобы в скором времени забить гвозди в крышку гроба Ruby on Rails. 

Плюсы

У Ruby on Rails есть большое количество плюсов, которые сохранят его востребованность. 

  • Вокруг Ruby on Rails сформировано большое комьюнити. И поверьте: оно классное. 
  • Для Ruby on Rails актуален принцип Convention over configuration. Т.е. в основе всего лежит стандартизация по структуре, наименованиям и разработке проекта в целом, принятым на уровне всего сообщества. А следовательно, даже если один Ruby-разработчик покидает проект, другой сможет легко в него погрузиться и продолжить поддерживать его и развивать. Похвастаться этим может далеко не каждый фреймворк.
  • Фреймворк очень удобен для команд, которые работают по Agile, так как позволяет легко контролировать процесс внесения изменений как на уровне кода, так и на уровне базы данных.
  • В отличие от многих других языков для реализации проекта на Ruby on Rails достаточно одного программиста, который закрывает многие задачи, помимо написания кода: деплой приложения, работа с базой данных и прочее. Т.е. на этом поле и один – воин. Это сказывается на затратах, причем, весьма существенно.  
  • Для Ruby on Rails есть множество готовых плагинов и модулей, которые легко интегрировать в свой проект и не тратить время на написание собственного кода. Так что реализация проекта на Ruby on Rails идет быстро. 
  • Есть эффективные и интуитивно понятные инструменты тестирования.
  • При необходимости масштабировать приложение на Ruby on Rails легко. 
  • Важный плюс – безопасность: проблемы с уязвимостями решаются на уровне фреймворка. 
  • Как результат всего вышеперечисленного – возможность вести разработку примерно на 30-40 % быстрее, чем на других языках.

Минусы

В бочке меда, конечно, всегда есть ложка дегтя: у Ruby on Rails, разумеется, есть минусы.  

  • Для приложений с большим количеством вычислений или большой обработкой данных медленный.
  • Невысокий уровень гибкости, что может быть критичным, если необходимо реализовывать специфический функционал, который не укладывается в концепцию и структуру фреймворка.
  • Популярность этого фреймворка в России небольшая в сравнении с другими языками и фреймворками. Причина этого, на мой взгляд, в том, что все считают, что разработчиков на Ruby on Rails очень мало, а значит, лучше избежать проблем уже на старте и сделать выбор в пользу альтернативных вариантов.  
  • Молодые программисты не часто выбирают Ruby on Rails, так как не видят перспектив на рынке труда. К примеру, к концу мая 2023 года на HH.ru вакансий разработчиков Ruby on Rails в России было всего 330, тогда как на node.js – почти в три раза больше. Да и по уровню зарплат node.js выигрывает у Ruby on Rails. Правда, надо учитывать, что хантинг рубистов чаще всего ведется точечно, поэтому и вакансии на работных сайтах размещаются редко. 

Почему выбирают Ruby on Rails?

В каждом конкретном случае нужно просто оценить, что перевешивает – плюсы или минусы. Это актуально и для разработчиков, и для заказчиков. При этом надо понимать, что некоторые минусы, скорее, надуманные, чем реальные. 

Возьмем, к примеру, проблемы с производительностью. Нас они не пугают, так как с большим объемом вычислений в работе приходится сталкиваться достаточно редко: такие задачи очень специфичны и к 80 % проектов не относятся. Да и в оставшихся 20 % проблема, как правило, легко решается написанием нужной логики на другом языке. Как показывает практика, основное время тратится не на вычисления, а на взаимодействие между  сервисами, ожидание ответов от базы данных и тд — это от языка уже не зависит. Т.е. надо в первую очередь реально смотреть на задачу: в большинстве случаев it is not rocket science для Ruby on Rails, да и реальные ракеты мало кто запускает. 

В ряде случаев Ruby on Rails идеально решает поставленные задачи. Например, для онлайн-магазина ювелирных украшений надо было создать ERP-систему, которая охватывала бы все процессы, в том числе взаимодействие с партнерами и покупателями. Запустить решение надо было всего за 2 месяца, обеспечив постоянное взаимодействие между разными сервисами, включая 1С, RetailCRM и т.д. 

Со стороны фронтенда проект работал на React , а бэк вел ,закрывая множество ролей, всего один разработчик. В основе было готовое опенсорсное решение – e-com-платформа Spree Commerce. Эта платформа – яркий пример и живого комьюнити, и готового решения под наши нужды. В числе ее важных особенностей – возможность легко и быстро настраивать систему под существующие нужды и масштабировать. Благодаря возможностям Ruby on Rails удалось зарелизить проект в срок с дальнейшей поддержкой – и это при том, что компания получила инструменты для сплитирования, функционал сборных заказов, автозаказа курьеров, омниканальные кабинеты для покупателей и т.д. Так что выбор оказался оправдан. 

Есть ли будущее у Ruby on Rails?

Сейчас для разработки в целом не самое лучшее время: некоторые эксперты даже говорят о стагнации. А быстрое развитие ИИ может серьезно изменить рынок – пусть и не завтра, а в чуть более отдаленной перспективе. Так что с уверенностью говорить о том, что будет через десятилетие или через два, сложно. Но на более короткой перспективе будущее у Ruby on Rails есть.

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

Ну и в-третьих, стартапы и малый бизнес всегда стараются брать пример с крупных компаний. И если, конечно, этому сегменту позволит развиваться экономическая ситуация, спрос на решения на Ruby on Rails будет расти за счет скорости разработки и гибкости. А будет спрос – будут и вакансии. Так что Ruby on Rails жив и будет жить. По крайней мере еще какое-то время. 

Следите за новыми постами
Следите за новыми постами по любимым темам
1К открытий1К показов