Что такое Ruby и для чего нужен?
Что можно написать на Ruby и зачем нужен? На митапе в Воронеже технический директор Evrone Александр Кириллов объяснил, почему Ruby отлично подходит для решения современных задач.
История Ruby
Ruby был создан 20 лет назад одним программистом — Юкихиро Мацумото (он уже дважды приезжал с докладами на конференцию RubyRussia, которую организует Evrone). А в 2003 году родился популярный фреймворк Rails — его создали в 37Signals, выделив переиспользуемый код из проекта Basecamp.
Ruby остается одним из главных опенсорсных языков программирования (с 2006 по 2008 он официально был самым популярным по данным независимого рейтинга Tiobe). Его используют сервисы Airbnb, GitHub. Язык принес успех Twitter, позволив быстро сделать и развивать первые версии сервиса. Его применяют в тысячах IT-компаний, в том числе в Evrone.
Вопрос выбора языка — это не вопрос моды или популярности. В Evrone выбирают Ruby по технологическим причинам. Расскажем о нескольких из них.
Преимущества и недостатки Ruby
К плюсам технологии относят:
- Быстрая разработка. Один из основных плюсов Ruby, за что его выбирают для создания MVP.
- Фреймворк Rails. За счет легкой интеграции и миграций сделал Ruby популярным языком для веб-разработки и создания сайтов.
- Читаемый код. Читаемый синтаксис и принципы организации кода позволяют легко поддерживать проекты на Ruby в долгой перспективе.
Чаще всего Ruby критикуют за низкую производительность. В первых версиях Ruby серьезно уступал в скорости компилируемым языкам, но производительность современных версий интерпретаторов выросла. Скорость — недостаток языков, использующих виртуальные машины с интерпретаторами байткода.
Поддержка и развитие
Критики Ruby зло шутят о том, что язык «мёртв». Однако объективно все выглядит иначе — обновления Ruby и Rails появляются каждый месяц. По статистике GitHub, в сравнении с другими языками больше разработчиков, помогающих проекту развиваться — именно у Rails. Сейчас разработчики пользуются 7-й версией Rails, среди возможностей которой:
- Поддержка Hotwire для создания интерфейсов без JavaScript-кода.
- Замена контроллера на Web Proxies.
- Улучшенная интеграция с CSS-фреймворками.
- Зашифрованные атрибуты в Active Record для большей безопасности.
Создатели Ruby (включая основателя, Юкихиро Мацумото) постоянно дорабатывают и улучшают язык, следуя запросам разработчиков.
MVC
Rails — это один из первых фреймворков, в котором применили схему разделения компонентов приложения, или Model-View-Controller (MVC).
Ruby on Rails использует «соглашение вместо конфигурации», которое позволяет добиться однообразности структуры и архитектурных принципов кода. В результате разработчики используют типовые подходы к разработке в проектах.
Единообразие подхода помогает новым разработчикам быстро начать работать на проекте. Так компании снижают издержки на подключение новых инженеров в команду.
MVC делает разработку быстрее и позволяет исправлять ошибки на лету. Кроме того, разработчики быстрее внедряют в проект бизнес-требования, а также при необходимости вносят изменения в них.
Базы данных
Ruby помогает разработчику не изучать с нуля каждую новую базу данных. Он может писать одинаковый код под любую поддерживаемую базу.
Ruby-инженеру не нужно генерировать много низкоуровневых SQL-команд — Rails позволяет работать со всеми популярными SQL-базами данных «из коробки». В результате разработчик фокусируется на создании высокоуровневого кода.
Метапрограммирование
Ruby — один из самых выразительных языков программирования. Благодаря поддержке «блоков» и «объектов по умолчанию» программистам легко расширять код специфичными для проектов диалектами, DSL.
Динамическая природа Ruby и популярность DSL позволяет Rails-разработчикам добавлять уровни абстракций, не снижая читаемость и поддерживаемость кода. Метапрограммирование на Ruby не выглядит как магия и разработчики легко могут вносить изменения даже для проектов в сотни тысяч строк кода.
Деплой и тестирование
Ruby помогает разработчику и в развертывании. Деплой можно провести одной командой — все остальное возьмет на себя система автоматизации. Это важно в разработке сложных приложений с разветвленной бизнес-логикой (Evrone специализируется именно на такой разработке).
За качеством кода помогают следить специальные инструменты. Они позволяют покрыть тестами все области: от юнит-тестирования до интеграции. Вот некоторые из них:
- Rspec.
- Minitest.
- Cucumber.
- Capybara.
Ruby для разработчиков
Согласно рейтингу TIOBE на май 2024, Ruby занимает 13 место по популярности. За год стек прибавил пять позиций. Пик популярности языка пришелся на 2008 год, однако проекты, созданные тогда работают до сих пор, поэтому и спрос на Ruby-разработчиков остается стабильным.
Ruby выбирают и опытные, и начинающие программисты. Это вопрос базы и предпочтений. На мой взгляд, именно опытные программисты смогут оценить всю элегантность решений, доступных в Ruby
Переход с Ruby на другие языки тоже возможен. Большинство опытных разработчиков знают несколько языков и это стандарт в индустрии. В качестве альтернативы можно рассмотреть прямого потомка Ruby — Elixir или другие динамические языки.
Мы в Evrone любим разработку на Ruby и считаем язык максимально подходящим для наших задач. Кеширование, денормализация данных и правильная архитектура помогают нам писать на Ruby высоконагруженные сервисы. Кроме того, мы наблюдаем постепенный переход на микросервисную архитектуру — так можно писать каждую часть приложения, используя подходящий стек.
В Evrone исповедуют истину относительно языка разработки: чем больше фанатов, тем живее сфера интересов. Поэтому компания поддерживает опенсорс, проводит ежегодную конференцию и помогает другим разработчикам на Ruby.
Выбрав язык Ruby и фреймворк Ruby on Rails для создания нового проекта, вы получите живое комьюнити, экспертизу, полноценные процессы, и сможете быстро скорректировать работу над приложением.