Почему Ruby on Rails по-прежнему останется хорошим выбором для стартапов в 2023 году

16.12.22, Пт, 16:06, Мск,

Каждый год интернет переполняется статьями предрекающими смерть этого фреймворка. И хотя Ruby on Rails (RoR) чуть больше 15 лет, он и близко не уходит из мира программирования. Мы поговорили с Александром Улановым, успешным веб-разработчиком и одним из главных международных экспертов по разработке на языке Ruby, чтобы понять какие перспективы у Ruby on Rails на рынке веб разработки в 2023 году.

Содержание

Что такое Ruby on Rails?

Ruby on Rails — это фреймворк для серверных веб-приложений с открытым исходным кодом и лицензией MIT. В то время как Ruby on Rails написан на Ruby, динамическом языке программирования общего назначения из Японии; RoR на самом деле является фреймворком, а не языком. Когда вышел первый релиз RoR в 2005 году, он представил новый подход к созданию веб-приложений. Rails освободил разработчиков от утомительной части кодирования, чтобы они могли сосредоточиться на бизнес-логике приложения, говорит Александр.

Александр Уланов, RubyRussia’22

Александр является признанным мировым Ruby экспертом и разрабатывает приложения используя Ruby on Rails уже более 10 лет, и за это время успел поработать над несколькими успешными российскими и международными проектами: социальными сетями, мобильными приложениями, системами управления контентом, сервисами стриминга видео. В 2019 году один из стартапов, мобильное приложение Sparkler компании Mindful Inc., над которым Александр работал в качестве консультанта и лидирующего разработчика, "выстрелил" и был выкуплен американским медиа гигантом Paramount Global (ранее ViacomCBS). Приложение помогает родителям следить за тем, как их ребенок справляется с ключевыми вехами в их развитии, предлагая занятия, которые стимулируют раннее обучение. Александр разработал продвинутый алгоритм на языке Ruby, который измеряет развитие ребенка и предоставляет родителям персонализированный контент и коучинг для улучшения результатов ребенка. Именно эта технология и стала решающей в поглощении Sparkler, для интеграции в собственный сервис Viacom - Noggin.

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

Помимо разработки коммерческих проектов Александр делится опытом с сообществом через написание профессиональных статей о новых подходах в веб-разработке, консультирует крупные российский и зарубежные компании, использующие Ruby on Rails в своих проектах, выступал в составе жюри для оценки технических решений других разработчиков на главных хакатонах России ("Цифровой Прорыв", HackUniversity), а также является спикером на профессиональных конференциях посвященных языку программирования Ruby и Ruby on Rails. Его новаторское исследование посвященное технологиям реального времени в Ruby приложениях уже используется многими компаниями как руководство для разработки, позволяя сэкономить сотни часов разработки и технической поддержки частей продуктов реализующих взаимодействие пользователей в режиме реального времени.

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

Идеальных фреймворков не существует, и Ruby on Rails — не исключение

По словам Александра, Ruby on Rails имеет свои недостатки. Среди них:

  • Не самая высокая производительность — RoR намного медленнее по сравнению с Node.js или Golang. Но с хорошо продуманной архитектурой и инфраструктурой (которая необходима во всех крупных проектах, независимо от языка программирования) даже огромные приложения или их части, написанные на Rails, могут работать быстро.
  • Проблемы с масштабированием — Ruby on Rails обвиняли в сложности масштабирования, когда Twitter перешел с Rails на Scala. Этот переход, вероятно, был тем, что впервые вызвало дебаты о проблемах масштабируемости RoR. Тем не менее, речь идет о трафике размером с Twitter, что для большинства приложений труднодостижимо. Проблемы масштабируемости большинства RoR-приложений можно решить оптимизацией кода, микросервисной архитектурой, горизонтальным масштабированием.
  • RoR не в тренде, он старый, следовательно скучный. Всякий раз, когда появляется новый фреймворк, особенно тот, который предлагает что-то инновационное, он "вирусится", и внезапно появляются сотни его пользователей по всему миру. Затем проходит несколько лет, шумиха утихает, и то, что когда-то было передовым, становится гораздо менее захватывающим и интригующим. RoR растет, но его зрелость не обязательно должна быть скучной. Зрелость означает стабильный, усовершенствованный код и поддерживаемые веб-приложения, даже если они больше не написаны в модной среде. При использовании опытными разработчиками, которые хорошо разбираются в создании приложений на Rails, зрелость RoR в сочетании с отличными инструментами, библиотеками и поддержкой сообщества делает решение большинства насущных проблем довольно простой задачей.

Для каких приложений подходит Ruby on Rails

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

  • Ruby часто выбирают из-за экономичной и быстрой разработки минимальных жизнеспособных продуктов. Этот язык также часто используется для создания прототипов, внедрения обновлений и тестирования различных версий продуктов перед созданием полнофункциональных приложений.
  • Интерфейсы прикладного программирования (API). Разработка современных приложений сильно зависит от API. Будь то что-то вроде OAuth для создания надежной и безопасной системы аутентификации или получение данных из других приложений, скорее всего, вам придется регулярно взаимодействовать с API этих приложений. Кроме того, вам может понадобиться свой собственный API, например для мобильного приложения, или если вы разрабатываете SaaS-платформу. Rails идеально подходит для таких продуктов.
  • Он также используется для приложений бронирования — Airbnb и Couchsurfing — потому что он быстро управляется с большим количеством ежедневных транзакций и бронирований недвижимости.

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

Иван Давыдов, 16 декабря 2022г.