Почему мы выбираем Ruby для наших проектов

В отношении языка Ruby есть ряд предубеждений и мифов. Есть даже устоявшаяся фраза «Ruby мёртв», которую в разговоре об этом языке обязательно скажут те, кто понимает его лишь поверхностно.

Технический директор компании Evrone Александр Кириллов, выступая на Meta/сonf в Воронеже, объяснил, почему Ruby является современным и актуальным языком.

Запись доклада Актуальность Ruby в современных проектах

Мифы о Ruby

Некоторые технические особенности языка во время его становления привели к тому, что сформировалось два мифа:

  1. Ruby медленный.
  2. Проекты на Ruby сложно масштабировать.

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

Масштабируемость и параллельные потоки в  Ruby 
Масштабируемость и параллельные потоки в  Ruby 

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

Юкихиро Мацумото и Давид Хейнемейер Ханссон были бы удивлены, услышав, что Ruby мертв, а они продолжают над ним работать. Удивятся и сотни наших клиентов, техническая часть бизнеса которых построена на Ruby и успешно выполняет свои задачи.

Александр Кириллов, технический директор Evrone

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

Кеширование, денормализация данных и правильная архитектура позволяют писать на Ruby и сильно нагруженные сервисы. Конечно же, все зависит от конкретной задачи, и микросервисы могут разрабатываться на языках, наиболее подходящих для ее решения.

Что делает Ruby on Rails классным

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

Модель MVC

Ruby on Rails одним из первых начал использовать схему разделения компонентов приложения Model-View-Controller (MVC), которая значительно ускоряет цикл разработки и позволяет оперативно исправлять ошибки, быстро реализовывать бизнес-требования в проекте и вносить в них изменения.

Фреймворк пропагандирует «соглашение поверх конфигурации». Это дает однообразность структуры и архитектурных принципов проектов, написанных с его использованием, что обеспечивает сохранение одинаковых подходов к разработке из проекта в проект.

Если в команде случится ротация или придут новые специалисты, единообразие подхода позволит им быстро влиться в проект, а бизнесу — сократить время и снизить стоимость подключения новых разработчиков.

Базы данных

Когда ведется работа с базой данных, например с Postgresql, Active Record (ORM, используемая Ruby on Rails) позволяет абстрагироваться от текущей БД на более высоких уровнях. Это дает возможность писать практически одинаковый код под любую поддерживаемую базу данных.

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

Шаблоны

Ruby on Rails также поддерживает шаблонизаторы для веб-разработки, ускоряющие создание шаблонов для фронтенда. Самостоятельно писать HTML-код без помощи автоматизированных генераторов сложно, долго и дорого, поэтому фреймворк работает со множеством шаблонизаторов:

  • ERB,
  • HAML,
  • SLIM,
  • Liquid.

Деплой и тестирование

Чем больше бизнес-логики в приложении, тем сложнее обновлять его до актуальной версии. В Ruby есть инструменты, дающие возможность провести обновление одной командой, описав на Ruby все стадии развертывания. Система автоматизации сделает все остальное.

Поддержка проектов, написанных на Ruby
Поддержка проектов, написанных на Ruby

Чтобы следить за качеством кода, в экосистеме языка есть инструменты, позволяющие покрыть тестами все области написания кода, начиная от юнит-тестирования и заканчивая интеграционным. С Ruby on Rails можно использовать следующие инструменты:

  • Minitest,
  • Rspec,
  • Capybara,
  • Cucumber.

Развитие Ruby on Rails

Каждый месяц и каждый год для Ruby и фреймворка Rails выходят новые обновления и исправления. Сейчас уже доступна шестая версия Ruby on Rails, в которой представлены:

  • возможность параллельного тестирования;
  • поддержка работы с несколькими базами данных;
  • автоматизация работы с письмами;
  • инструменты для взаимодействия с фронтенд-технологиями;
  • встроенная система организации хранения пользовательских файлов.

Большая часть изменений и улучшений связана с теми требованиями, которые предъявляют к языку разработчики, решая те или иные задачи.

К примеру, для хранения пользовательских данных существует множество инструментов, созданных сообществом. Разработчики Ruby, понимая, что такие инструменты пользуются спросом, реализовали необходимые возможности на уровне языка.

Технология развивается и силами сообщества. По статистике GitHub, Rails имеет больше всего контрибьюторов, принимающих активное участие в улучшении проекта, среди фреймворков других языков.

Сравнение контрибьюторов фреймворков
Сравнение контрибьюторов фреймворков

Чем больше контрибьюторов, тем выше вероятность, что запрос на улучшение или на исправление ошибки будет реализован быстрее и это не придется делать внутри команды, тратя время разработки проекта.

Сравнение контрибьюторов фреймворков для Ruby
Сравнение контрибьюторов фреймворков для Ruby

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

История Ruby

История этого языка началась более 20 лет назад, когда он был представлен независимым программистом Юкихиро Мацумото.

История развития языка Ruby
История развития языка Ruby

В 2003 году компания 37Signals выпустила систему управления проектов Basecamp. Она стала очень популярной в США и Европе, разработчики начали присматриваться, изучать, на каком стеке технологий она создана. При работе над Basecamp родился фреймворк Rails. В 2004 году 37Signals опубликовала этот фреймворк в открытом доступе.

Благодаря возможностям, которые дает фреймворк, язык начал набирать популярность. В 2006 году Ruby занял первое место в рейтинге языков Tiobe и пробыл на лидирующей позиции 2 года.

Язык начал применяться в крупных проектах. На нем были написаны сервисы Airbnb, GitHub, первая версия Twitter. Потом социальная сеть пошла другой дорогой, но часть инфраструктуры так и осталась на Ruby. Кроме Rails, появились другие фреймворки — Hanami и Sinatra.

3131
46 комментариев

Про руби говорят что он мертв в сравнении с другими языками. Вы просто взяли и описали тулкит и инфраструктуру языка, не ответив на вопрос который сами же и задали: нахрена и кому сдался руби? Чем он лучше питона и пхп? Все перечисленные инструменты есть и в других языках, представлены богаче и поддерживаются значительно бОльшим коммьюнити чем в руби.
От того что Мацумото и ДХХ продолжают над руби работу он популярнее не становится.

28

Все, что угодно, лучше пхп.

5

Юкихиро Мацумото и сам знает, что язык мертв и дал свое благословение рассказывать об этой печальной ситуации Нику Сатереру. Вот здесь Ник об этом говорит.

https://habr.com/ru/company/railsclub/blog/336690/

А тут он разности Ruby в пух и прах.

https://youtu.be/x0JlOxdXA_g

1

Знаете мы вот уже 10 лет проводим мероприятие RubyRussia.club (Railsclub), и в этом году планируется под 1000 тысячу участников. Что кстати будет скорее всего рекордом конференции )

8

это скорее заслуга не языка как такового, а то что сейчас пытается программировать чуть ли не каждый первый.

Что мертво, умереть не может

6