Правда ли, что Ruby - особенный язык?

28 лет назад, в 1993 году, Юкихиро Мацумото приступил к созданию Ruby. Cейчас язык программирования популярен у многих специалистов, хотя есть и сторонники мнения, что Ruby постепенно уходит в прошлое. Мы узнали у представителей сферы IT, в чём особенности языка, для каких задач его выбирают, насколько трудно ли его изучать с нуля и с чего вообще стоит начинать. Ещё айтишники рассказали о своём опыте программирования на этом языке и порассуждали, какое будущее ждёт Руби.


  • Антон Шевцов


    Backend Software Engineer
    KUPIBILET.RU

Руби, в первую очередь, это язык для человека, а не человек для языка. Для реализация сложных алгоритмических задач мы тратим меньшее количество ресурсов. Что это дает? В первую очередь - скорость воплощения бизнес идей, а, следовательно, наш продукт максимально быстро реагирует на изменения рынка (если это не нишевый продукт), и возможность стать конкурентно-определяющим, а не конкурентно-зависимым объектом бизнеса.

Также это свобода реализации. Однако за любой свободой стоит своя цена. В случае руби - это широкий спектр стилевых подходов к написанию кода, соответственно, зависимость от уровня разработчика (как пример - стремление к методам, использующим чистые си функции). Но свобода - это не только стиль. Руби многое прощает разработчику - язык не требует от вас педантичности, он старается предоставить вам возможность выбора.

Этот язык не входит число тех, которые выбирают для задач с тяжелыми вычислениями. Множественные аллокации в купе с автоматическим сборщиком мусора сильно требовательны к ресурсам WS. Да, мы можем выбрать другой аллокатор, подтюнить GC, но достигнуть скоростей Rust или Cи не представляется возможным. Но если вы большой приверженец руби и весь мидлвэр видится исключительно на данном языке, то всегда есть выбор - FFI (Foreign Function Interface) либо более тяжелый, модный, современный, молодежный вариант в микросервисы, но не забудьте про шину).

  • Язык стремится к прозрачному восприятию - любая операция над объектом описывается максимально интуитивно понятным DSL. Пожалуй, это язык, который стоит изучать одним из первых. Он достаточно быстро поможет с восприятием концепций ООП и развитием "объектного мышления".
Кто-то может освоить язык с нуля, опираясь исключительно на скринкасты и книги, другому необходим систематический подход на основе онлайн обучающих платформ. Однако у второго варианта есть существенное преимущество - обратная связь с ментором. Можно отлично понимать язык, но писать не общепринятый код.

Я знаком с Руби с 2015-го. С тех пор трудился над проектами как полностью написанными на руби, так и отдельными компонентами. В основном, средние (по объему кодовой базы) проекты полностью написаны на руби, в то время как крупные монолиты уже дробятся на отдельные языки по специфике решаемых задач. В данный момент в нашей команде мы используем руби как драйвер в другие сервисы + часть легаси бизнес-процессов. Остальная логика распределена по микросервисам.

Руби, либо руби с рельсой - это Bloomberg, GitLab (управление репозиториями кода), Netflix, Kickstarter, Twitter, SoundCloud, Inkscape.

Как минимум, появление stable версии 3-0 в декабре 2020-го с новоявленными ракторами говорит о востребованности языка. Мы получаем не просто улучшенный GC или новый аллокатор - в языке появляются новые структуры. Помимо прочего, сейчас появляется все больше проектов не только на нашумевшем ruby on rails фреймворке, также активно внедряются решения на Hanami (та самая свобода).

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


  • Антон Фёдоров

    TechLead SYRUP,
    ведущий разработчик Pharma.Global

Ruby - новый, современный язык, отлично заходит в стартапах, хорошо дружит с фронтенд-фреймворками. Одним словом, он кайфовый.

Ruby содержит синтаксисы нескольких языков, доработано то, что в других языках является недостатком или неудобством. Например, у Python нет закрывающего служебного оператора для if и for, а у Ruby ставится «end». Мелочь, а приятно.

Скорость разработки раза в 2-3 выше быстрее, чем на PHP, и раз в 5 быстрее, чем на Python. Также есть scaffold - за секунды создает готовое приложение.

Среди преимуществ языка высокий порог входа - высокие зарплаты. В России я видел только один проект на Ruby, поэтому у нас он явно не зайдет. Это модный инструмент для стартапов.

Думаю, пока он приспособлен только под веб-технологии и вряд ли будет куда-то дальше развиваться. У него был рост в 2019, но сейчас теряет позиции перед Python, Js, Java.

  • Язык не сложно изучать, если знаешь PHP и ООП в целом. А если знаком с Python, то вообще просто - синтаксис очень похож. Начать стоит с вебинаров на Youtube, + официальная документация. Других вариантов нет. Покупать курс на Ruby cтоит, если цель 100% уйти в эту технологию.
Я писал на Ruby учебные проекты: агентство недвижимости, блог. Ничего особенного. CRUD, RBAC, шаблонизаторы.

Есть хороший рейтинг, где описаны самые популярные разработки на Ruby.

Ruby - язык бэкенда, на котором можно быстро написать сайт. Если вы уверены, что будете работать на европейского и американского клиента, где этот язык популярен, работа будет. В России на биржах фриланса на 5000 заказов PHP приходится 500 заказов Ruby. Демагогия про то, что язык нужно подбирать под цели и задачи по отношению к вебу - это так себе затея, потому что комьюнити всех языков развивается, и уже на любом языке можно даже запустить свой Blockchain.


  • Антон Коломыцев

    Фрилансер

Ruby прост, как JavaScript или Python и многогранен, как С++.

Фишка этого языка в том, что всё в нём является объектом. Даже числа, значения переменных и типы данных — это тоже объекты. В Руби есть перегрузка операторов и возможность использовать команды не так, как задумано изначально, что делает его похожим на С++.

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

Благодаря Ruby on Rails нишей языка стала веб-разработка. На Ruby написаны утилита командной строки Homebrew, фреймворк информационной безопасности Metasploit, ПО для виртуализации Vagrant и другие известные приложения. В целом, Ruby — язык программирования общего назначения, но чаще всего применяется в веб-разработке.

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


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

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

Касательно новых фич языка в последнее время много обсуждается: работа над сборщиком мусора, опциональная типизация для увеличения производительности и улучшение модели параллелизаций (async/await и т.п.).


  • Артём Михалёв

    Project Manager

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

Мне удалось увидеть Юкихиро Мацумото лично на конференции Rails Club, когда он первый и единственный раз был в России. Там он как раз и рассказывал, как создал язык и почему решил это сделать.

К сожалению или к счастью, язык обрел популярность в России после появления фреймворка RoR (Ruby on rails), так как данный фреймворк являлся уже готовым, базовым веб-приложением, который и имеет веб-сервер. Для развёртывания такого приложения необходимо ввести несколько команд в командной строке, и вот у вас целая кодовая база с архитектурой работающего продукта, правда, с одной страницей. Дальше оставалось только прикрутить логику и дизайн к вашему приложению.

  • Язык стал популярен, так как без особых затрат и умений можно было развернуть полноценное веб-приложение.
    В свою очередь, произошел бум в сфере создания сайтов, фриланса и т.д. И скорее всего, из-за этого его прозвали языком хипстеров (лично подтверждаю, что на конференциях по руби своя, особенная атмосфера, как будто ты попал на крутую тусовку по духу похожих людей).
В России его использовали в основном для этого, были компании, которые понимали плюсы языка не из-за RoR.

Во-первых на нем хорошо писать скрипты для ОС, поэтому его могут использовать системные администраторы. Язык выбирали ради быстроты развёртывания веб-приложения или осознанно, из-за плюсов и удобства, потому что он реально объектно-ориентированный, в отличие от некоторых.

Порог вхождения несложный, синтаксис лаконичный. Если есть базовые понятие ООП, то вникнуть в суть работы труда не составит. Начать стоит с книжки самого Матца - The Ruby Programming Languag
Среди известных проектов, написанных на Руби - Gitlab, Github, Twitter, сайт NACA. Но большинство из них, скорее всего, переходит на новые технологии, поэтому процент кода на Ruby у этих продуктов уменьшается, а Twitter, наверное, уже полностью переехал с Ruby.
Ruby отличается от других языков в первую очередь по парадигме и своему синтаксису, а потом уже по фреймворкам и библиотекам. Но принципиальной разницы нет - тоже самое можно сделать на любом мейнстрим языке (Java, JavaScript, Python и т.д.).