Язык программирования Ruby
Ruby — язык программирования, бум популярности которого пришелся на 2006 год и был связан с выпуском фреймворка Ruby on Rails. Он позволяет быстро и с минимальной стоимостью создавать крутые веб-приложения. На Ruby написаны такие известные проекты как GitHub, Airbnb, Twitter, а также сам GeekBrains.
Ранее мы уже рассказывали об этом языке и профессии Ruby-разработчика. А сегодня попросили преподавателя факультета разработки на Ruby и Ruby on Rails Игоря Симдянова подробнее рассказать о технических особенностях Ruby и дополнительных знаниях и навыках, которые помогут стать успешным Ruby-разработчиком.
В чём особенности освоения языка Ruby?
Одной из главных особенностей языка являются соглашения, то есть договоренности Ruby-сообщества о том, как используется язык в разных ситуациях. Например, что в конце выражений можно ставить точку с запятой, но можно её опускать, — и на деле так почти всегда и происходит.
Ещё одна особенность заключается в том, что циклические задачи почти всегда решаются при помощи итераторов, а сами циклы почти не используются. Код, в котором присутствуют точки с запятой или куча while-циклов, выдаёт в вас начинающего Ruby-разработчика.
Таких правил десятки — некоторые даже сложно удержать в голове, поэтому был разработан и даже автоматизирован в виде гема RuboCop Ruby Style Guide. Правила этого гайда предназначены для того, чтобы сделать код легко читаемым и максимально компактным с точки зрения Ruby-сообщества.
На первых порах из-за незнания соглашений сообщества у разработчика могут возникнуть сложности, и поначалу требуется код-ревью, чтобы добиться хорошего стиля.
С каких языков проще всего переучиться на Ruby-разработчика?
Синтаксически Ruby довольно самобытен и мало чем похож на другие языки программирования. Поначалу это немного раздражает, но со временем ты понимаешь, что это сделано неспроста, и, будь всё иначе, в Ruby были бы внутренние противоречия.
Самый близкий по духу язык — это Python, причем версии 3. Далее идут PHP и Perl и вообще все интерпретируемые динамические языки программирования, которые популярны в веб-разработке.
Впрочем, при переходе с другого языка в любом случае придется переосмысливать каждую синтаксическую конструкцию.
Какие hard и soft skills нужны для успешной работы с Ruby и Ruby On Rails?
Для изучения языка программирования Ruby не нужно практически ничего, кроме владения компьютером и арифметикой, однако для разработки веб-сайтов с использованием Ruby on Rails потребуется чуть больше специфических знаний.
Во-первых, потребуется владение системой контроля версии Git. На мой взгляд, технология не самая простая для начинающих, однако без неё начать работать не получится.
Во-вторых, язык Ruby — кросс-платформенный, и его можно изучать на любой операционной системе. Однако Ruby on Rails — точнее, экосистема компонентов (гемов) для него, сильно зависит от операционной системы. Для нормальной скоростной работы на Ruby on Rails и доставки результатов работы на сервер потребуется знание основ операционной системы Linux. И в реальной работе Ruby-специалиста, скорее всего, будет ждать Linux или MacOS.
Кроме того, Ruby on Rails очень завязан на базах данных. Для старта не требуется знать особенности и области применения всех современных баз данных — но опыт работы с одной реляционной базой нужен. Лучше если это будет PostgreSQL, но на самом деле подойдёт абсолютно любая реляционная база данных.
Сейчас веб-разработчики делятся по специализациям. Кто-то хорошо разбирается в backend-части: Ruby on Rails, базах данных, языке Ruby. Кто-то специализируется на frontend-части: визуальном представлении сайта с использованием языка JavaScript, его фреймворков, каскадных таблиц стилей CSS, языка разметки HTML. Если ваша цель — создание сайта в одиночку, то в какой-то мере вам придётся освоить хотя бы азы профессии frontend-разработчика.
Повторю, что всё вышеперечисленное не требуется для изучения языка программирования Ruby — это скорее требования для работы в качестве специалиста на Ruby on Rails.
Что касается soft skills, обычно к разработчикам не предъявляют каких-то особенных требований. Конечно, большим плюсом будет уверенный английский — чем лучше вы его знаете, тем больше источников обучения и рабочих мест будет вам доступно. Также, в связи с тем, что сейчас очень много удалённой работы, ценится умение поддерживать себя в тонусе, иметь заряд энтузиазма и горящие глаза, любопытство к новым технологиям, стремление пробовать и разбираться со всем, что будет встречаться на вашем пути.
Frontend, тестирование, DevOps — зачем это Ruby-разработчику?
Для начала карьеры в качестве junior-разработчика достаточно изучить сами Ruby и Ruby on Rails. Блоки по тестированию, frontend-разработке и доставке Ruby on Rails на сервер — это уже более углублённое обучение.
В Ruby-сообществе существует культ тестирования — то есть код не считается завершенным, если он не покрыт тестами. На собеседовании часто задают вопросы по тестированию, а на работе нужно быть готовым к тому, что к наработкам по проекту попросят написать тесты. В связи с этим в рамках последней четверти курса мы детально изучаем автоматическое тестирование в экосистеме Ruby, дотошно разбирая фреймворк RSpec, тренируемся писать тесты для ранее разработанных приложений и даже пробуем тестировать чужие приложения, примеряя на себя роль QA-специалиста по автоматическому тестированию.
Также у нас есть отдельный блок по frontend-разработке. В целом факультет Ruby on Rails строится с уклоном в backend-специализацию, однако студенты, которые хотят стать fullstack-специалистами, на этом курсе могут получить достаточно информации о работе frontend-специалиста.
Наконец, в курсе, посвященном доставке приложения на Ruby on Rails на сервер, мы будем осваивать основы системного администрирования и DevOps с уклоном в обслуживание приложений. Большая часть курса будет посвящена доставке приложений на Ruby on Rails на сервер и автоматизации этого процесса. Также мы познакомимся с CI/CD, Docker, даже затронем Kubernetes.
Ruby on Rails — это инструмент для быстрого запуска стартапа в составе компактных команд разработки, а в стартапе вы должны уметь всё: программировать, тестировать, администрировать. Грубо говоря, вы должны суметь запустить новый Twitter двумя сотрудниками. Как мне кажется, эти три курса и готовят студентов к этому.
Ruby: полезные ресурсы для изучения
Из-за того, что бум популярности Ruby пришелся только на 2006 год, по нему очень мало литературы — все книги (в том числе и книга самого создателя языка Юкихиро Мацумото) издавались маленькими тиражами или не переводились вообще. Почти все, кто приходят в Ruby, изучают его в основном по англоязычным источникам, поэтому наличие уверенного английского долгое время было дополнительным барьером.
Из изданной в России литературы могу посоветовать следующие книги:
- «Язык программирования Ruby» Юкихиро Мацумото — увы, не переиздавалась, а потому она описывает устаревшую версию языка.
- «Путь Ruby» Фултона Хэла и Арко Андре — это скорее сборник рецептов, а не учебник или энциклопедия, поэтому она подойдет как дополнительный источник, но изучить язык только по ней очень сложно.
- «Head First. Изучаем Ruby» Джея Макгаверена — книга довольно специфическая, но, если вас не будет раздражать необычная манера изложения, для изучения языка она очень хороша. Правда из-за максимальной детализации она охватывает где-то 40% всей необходимой информации.
В целом актуальной литературы по Ruby на русском языке явно не хватает, поэтому, уже имея опыт написания учебной литературы по разработке, в 2020 году я выпустил свой «Самоучитель Ruby». Оценивать его сам я не буду, отмечу только, что он основан на моем опыте преподавания и работы с теми, кто приходит в разработку с нуля и нуждается в крепкой базе.
Новый поток обучения на факультете Ruby on Rails стартует каждый месяц — подробнее о факультете можно узнать из анонса факультета в нашем блоге и на странице факультета.
Почему Ruby считают перспективной «темной лошадкой» среди языков программирования
Продолжая цикл статей о современных языках программирования, мы расскажем об особенностях, преимуществах и недостатках Ruby, истории его появления и развития, а еще для чего нужен этот язык. Также вы узнаете о том, что представляет собой фреймворк Ruby on Rails и почему он так широко известен. Наконец, в завершении статьи вас ждет информация о том, насколько сложен язык Ruby, как его можно изучить и будет ли он востребован в ближайшем будущем.
Ruby – это один из самых быстрых, функциональных и многогранных языков программирования. Он пережил бурную волну популярности в середине нулевых годов, однако остался востребован в своей нише и по сегодняшний день. Язык активно используется в системном администрировании и веб-разработке, на нем созданы такие известные веб-сервисы, как Twitter, Shopify, GitHub, Airbnb, Kickstarter, Basecamp, Redmine и многие другие.
Как появился и развивался язык Ruby?
Ruby – это интерпретируемый высокоуровневый объектно-ориентированный язык программирования общего назначения. По состоянию на январь 2022 года он входит в топ-20 самых популярных ЯП, согласно авторитетному специализированному рейтингу Tiobe.
Создателем языка Ruby считается японский программист Юкихиро Мацумото, он начал работать над ним в 1993 году и представил первую общедоступную версию языка через два года, в 1995-м. На разработку нового языка его вдохновил популярный в те годы язык программирования Perl, из которого Мацумото позаимствовал некоторые особенности синтаксиса и семантики.
В первые годы своего существования Ruby был известен только в Японии, так как документация к нему еще не была переведена на другие языки. В 1997 году появился англоязычный перевод документации, а в 1998 году в интернете появился англоязычный форум «Ruby-Talk». В начале 2000-х годов распространенность языка заметно выросла после в печать нескольких книг о нем на английском языке.
В 2003 году появилась версия Ruby 1.8.0, а в 2005 году был разработан знаменитый фреймворк Ruby on Rails, который сразу приобрел немалую популярность, благодаря своим широким возможностям для создания веб-приложений. Во второй половине нулевых годов процесс обновления языка разделился на две ветви: наряду с поддержкой основной версии 1.8 была выпущена экспериментальная ветвь 1.9. В нее был внесен ряд важных изменений, а также отсутствовала обратная совместимость с предыдущими версиями.
Вторая волна популярности этого языка пришлась на период с 2009 по 2012 год, когда интерес к нему вырос более чем втрое – по данным индекса Tiobe. В 2009 году появилась версия Ruby 1.9.1, а в 2010 году вышла версия фреймворка Rails 3.0, которые получили целый ряд усовершенствований. В частности, в них были устранены некоторые недоработки, а скорость работы интерпретатора выросла в несколько раз.
В 2013 году вышла стабильная версия языка программирования Ruby 2.0, получившая несколько важных обновлений: новый метод, новый литерал, новый API для ленивых вычислений и т.д. Начиная с версии 2.1.0 нумерация версий стала более похожей на семантическую (semantic versioning, SemVer). Версия Ruby 2.2.0 увеличила скорость и производительность языка, обновила его библиотеки и исправила некоторые багги, также в ней была добавлена поддержка спецификации Unicode 7.0.
В декабре 2020 года состоялся релиз версии Ruby 3.0.0, также ее назвали Ruby 3х3. Это означало, что она работала в три раза быстрее, по сравнению со второй версией. Третья версия обзавелась MJIT-компилятором, который значительно ускорил выполнение кода. В нее был внедрен язык RBS, способный описывать типы Ruby-программ для статического анализа кода, вместе с некоторыми обновлениями синтаксиса и дополнениями библиотек. В декабре 2021 года была выпущена версия Ruby 3.1 с YJIT-компилятором (разработанным Shopify для оптимизации работы бизнес-приложений), новым дебаггером кода и рядом других нововведений.
Особенности и возможности Ruby
- Интерпретируемость. Язык программирования Руби является интерпретируемым, написанный на нем код обрабатывается в момент выполнения специальной программой-интерпретатором, которая имеет кроссплатформенную реализацию и распространяется на условиях открытого ПО. Таким образом, изучать данный язык и программировать на нем можно на любой современной операционной системе. Это обеспечивает Ruby определенные преимущества, по сравнению с другими распространенными ЯП: созданные на нем программы имеют меньший размер, быстрее работают и не зависят от особенностей используемой платформы. Язык разрабатывался на Linux, но работает на многих версиях Unix, DOS, Microsoft Windows (в частности, Win32), Mac OS, BeOS, OS/2 и т. д.
- Динамическая типизация. Эта особенность языка помогает определять типы данных и осуществлять их компиляцию – то есть, на этапе выполнения программы превращать написанный разработчиком программный код в набор машинных кодов. Динамическая типизация заметно ускоряет и упрощает процесс разработки программ и приложений.
- Шаблоны. Разработчикам на Руби не нужно писать HTML-код самостоятельно, вместо этого они могут воспользоваться помощью генераторов и шаблонизаторов кода. Такие же вспомогательные инструменты доступны на Ruby on Rails, с их помощью можно заметно ускорить работу с front-end. Среди наиболее известных шаблонизаторов выделяют ERB, HAML, SLIM, Liquid.
- MVC. Одной из важнейших особенностей Ruby считается наличие схемы разделения компонентов приложения (Model-View-Controller, MVC). Она помогает разработчикам использовать типовые подходы к разработке разных проектов, благодаря единообразию их структуры и архитектуры. MVC способствует ускорению разработки и внесению изменений в ПО, позволяет быстрее находить и исправлять ошибки в коде. С его помощью новые участники команды могут быстрее разобраться в чужом коде и подключиться к рабочему процессу.
- Базы данных. Технология ORM, используемая в фреймворке Ruby on Rails, дает возможность писать универсальный код, подходящий для любой поддерживаемой базы данных. Таким образом, «рубисты» могут не изучать с нуля все современные типы БД, достаточно иметь опыт работы с одной реляционной базой, наиболее подходящей считается PostgreSQL.
- Деплой и тестирование. Ruby содержит ряд полезных инструментов не только для написания, но и для развертывания программного кода. Например, в нем имеется встроенная система автоматизации для рефакторинга, позволяющая выполнить эту процедуру при помощи одной команды. Также здесь представлен набор инструментов тестирования для контроля качества кода, в том числе Rspec, Minitest, Cucumber, Capybara.
Что такое Ruby on Rails?
Как известно, Ruby – это язык программирования общего назначения, который подходит для разных типов программ и приложений. Однако он стал наиболее востребован в веб-разработке, благодаря выпущенному в 2005 году фреймворку Ruby on Rails.
Свяжите сервисы между собой без программистов за 5 минут!
Используейте ApiX-Drive для самостоятельной интеграции разных сервисов между собой. Доступно 350+ готовых интеграций.
- Автоматизируйте работу интернет магазина или лендинга
- Расширяйте возможности за счет интеграций
- Не тратьте деньги на программистов и интеграторов
- Экономьте время за счет автоматизации рутинных задач
Бесплатно протестируйте работу сервиса прямо сейчас и начните экономить до 30% времени! Перейти
Большинство из описанных выше возможностей языка относится именно к RaR, включая схему разделения MVC, шаблоны и бесшовную интеграцию с базами данных. Ruby on Rails позволяет значительно упростить и ускорить разработку веб-приложений, а многие из используемых в нем функций впоследствии появились в других популярных фреймворках (Django, Laravel и т.д.).
Среди других возможностей RaR стоит отметить одновременное взаимодействие с разными типами баз данных, автоматизацию обработки рассылок, функционал для хранения пользовательских файлов (доступен в формате «из коробки»), функционал для параллельного тестирования, а также встроенные возможности для взаимодействия с технологиями front-end.
Еще одним важным преимуществом Ruby on Rails (как и языка Руби в целом) является большое количество готовых к использованию библиотек, которые поставляются в экосистеме пакетов RubyGems (так называемые «джемы»). Они заметно облегчают процесс разработки веб-приложений, позволяя внедрить ряд их функций в готовом виде, а не создавать с нуля. Например, популярными библиотеками считают: CanCanCan (авторизация), Devise (аутентификация), Active Admin (панели администрирования), Community Engine (соцсети) и т.д.
Преимущества Ruby и Ruby on Rails
Программирование на языке Ruby имеет целый ряд весомых преимуществ, которые выгодно выделяют его на фоне других современных ЯП. К ним относятся такие факторы:
- Скорость разработки. Важнейшим плюсом Руби можно назвать высокую скорость разработки, которая достигается за счет простого и лаконичного синтаксиса, а также большого выбора готовых решений для разных видов задач. По мнению многих экспертов, решать задачи на RaR можно в полтора раза быстрее, чем при помощи других подобных фреймворков.
- Кэширование данных. Фреймворк RaR оснащен штатными средствами кэширования данных, что позволяет легко и быстро кэшировать блоки кода или целые страницы без необходимости пользоваться сторонними инструментами. Это свойство языка делает его чрезвычайно удобным и полезным при создании масштабных бизнес-проектов.
- Общепринятые стандарты. Отдельным преимуществом является наличие четких и понятных стандартов Руби программирования, которые используются в сообществе уже много лет и оформлены в специальный список правил. Это помогает эффективно структурировать любые проекты, разрабатываемые на этом языке, а также быстро подключать к работе новых разработчиков или целые команды.
- Прозрачность кода. Ruby и Rails позволяют писать понятный и прозрачный программный код, который затем можно без особых сложностей обновлять и дорабатывать. Соблюдение стандартов и соглашений дает возможность сопровождать код не только его разработчиками, но и сторонними программистами.
- Надежность и функциональность кода. Разработка на RaR проводится на основе методологии TDD (test-driven development, разработка через тестирование), что помогает часто проверять работоспособность и корректность кода через автоматические тесты. Это делает создаваемые на этом фреймворке программы более стабильными и сопровождаемыми. Данный фактор является очень значимым преимуществом для бизнес-приложений, от исправной работы которых напрямую зависит объем прибыли компании.
- Масштабируемость. Написанные на Руби программы и приложения легко масштабируются, в том числе в облаках и серверных кластерах. Также на нем часто создают высоконагруженное ПО с высокими требованиями по аптайму и скорости работы.
- Защита данных. В RaR по умолчанию предлагается подборка штатных средств защиты данных, в том числе шифрование паролей и других персональных данных пользователей (например, сведений о банковских картах), защита от XSS атак и SQL-инъекций, а также экранирование входных параметров.
Недостатки Ruby и Ruby on Rails
Что касается недостатков языка программирования Ruby, то среди них можно отметить:
- Требовательность к ресурсам. В первую очередь этот недостаток касается фреймворка Ruby on Rails, сайты на котором требуют гораздо больше памяти, пространства и других вычислительных мощностей, по сравнению с другими популярными ЯП (тем же PHP). Именно поэтому RaR чаще используется для разработки бизнес-сайтов, так как их владельцы могут позволить себе оплату доп. ресурсов.
- Linux-ориентация. Хоть сам по себе Ruby является кроссплатформенным языком и доступен для изучения на любой ОС, однако для эффективной разработки на Ruby on Rails вам обязательно понадобится хорошее знание Linux. Также данный язык может быть довольно сложен для создания Windows-проектов.
- Недостаток вакансий. Ruby и Ruby on Rails популярны на западном (в частности, американском) рынке, особенно в сфере электронной коммерции (тот же Shopify и т.д.). На IT-рынке Украины и стран СНГ более востребованы другие языки (Python, PHP, JavaScript, Go). Также считается, что высоким спросом у нас пользуются только опытные Руби-программисты, в то время как «джуны» мало кому интересны.
- Высокий порог входа. Ruby имеет довольно высокий порог входа, поэтому он больше подходит для разработчиков с опытом, чем для новичков в программировании.
Для чего нужен Ruby? Насколько перспективен этот язык?
Если вы зададитесь вопросом – что пишут на Ruby, то список сфер применения этого языка может превзойти все ваши ожидания. Среди основных из них стоит отметить такие, как:
- Веб-разработка. Фреймворк Ruby on Rails – это очень эффективный инструмент веб-разработки, при помощи которого были созданы многие известные сайты. В частности, Airbnb, Crunchbase, Twitter, Dribbble, Bloomberg, Netflix, Zendesk, Groupon, SoundCloud, Upwork, Hulu, Basecamp, Kickstarter, Change.org и многие другие.
- Разработка мобильных приложений. Для Ruby доступен целый ряд популярных сред разработки, в том числе Titanium Studio, Ruboto (Android), RubyMotion (iOS), MobiRuby (Android/iOS), Rhodes (фреймворк для разработки Enteprise Mobility приложений для смартфонов Motorola).
- Программы для десктоп-устройств. Ruby активно используют в качестве скриптового языка для различных программ, которые написаны на нем полностью или частично. К ним относится GitHub и GitLab, Redmine (система управления проектами), Amarok (аудиоплеер), SketchUp (ПО для моделирования и визуализации), Metasploit (поиск и тестирование уязвимостей), XChat (IRC-клиент) и многие другие.
- Системное администрирование. Руби часто применяется системными администраторами в ходе поддержки и обслуживания ряда распространенных операционных систем, в том числе Linux, BSD, Mac OS X.
На сегодняшний день Ruby считается такой себе «темной лошадкой», так как он пользуется определенным успехом среди аудитории, однако назвать его действительно массовым ЯП пока что нельзя. Впрочем, широкие возможности делают Руби очень востребованным в определенной сфере – разработке веб-сайтов и приложений для бизнеса. Соответственно, так как эта отрасль сейчас продолжает бурное развитие, то вместе с ней будет развиваться и данный язык.
Как выучить язык программирования Ruby?
Изучать Руби с нуля довольно сложно, так как он имеет максимально высокоуровневый синтаксис, который упрощает и ускоряет разработку на нем, но может быть весьма непрост и непонятен для новичков. Поэтому начать освоение Ruby лучше с других, более простых языков программирования – например, Python, который также является высокоуровневым и имеет некоторые сходства, но при этом гораздо легче.
Что касается книг по языку программированию Ruby, то среди них стоит отметить «Путь Ruby» (Хэл Фултон и Андрэ Арко), «Ruby. Объектно-ориентированное проектирование» (Сэнди Метц) и «Ruby on Rails для начинающих» (Майкл Хартл), а также «The Ruby Programming Language», написанную Д. Флэнаганом и Юкихиро Мацумото (создателем языка).
Также в интернете есть немало ресурсов с обучающими материалами, однако большинство из них предназначены для специалистов с определенными знаниями и опытом в данной сфере. Популярным сайтом по теме считается https://www.ruby-lang.org/, где также есть и курсы для начинающих (например, Ruby за 20 минут).
Заключение
Выпущенный в 1995 году язык программирования Ruby по сей день успешно используется и развивается, несмотря на свою довольно умеренную популярность. Его считают очень мощным и функциональным языком для веб-разработки, на нем написаны такие всемирно известные сайты, как Shopify, Netflix, Twitter, Upwork, GitHub и многие другие. Руби обеспечивает высокую скорость разработки ПО, прозрачность, надежность, функциональность и масштабируемость кода, также в нем есть четкие общепринятые стандарты, а еще встроенные средства кэширования и защиты данных. К недостаткам языка относят высокую требовательность к ресурсам, ограниченное количество вакансий (особенно для начинающих специалистов) и значительный порог входа в профессию.
Почти любая работа в интернете связана с множеством рутинных действий. Среди них перенос лидов из рекламных каналов в CRM, отправка почтовых или SMS-рассылок, копирование данных между электронными таблицами и другие однообразные задачи.
Но вы можете автоматизировать эти и другие процессы с помощью нашей платформы ApiX-Drive. Достаточно подключить к ней свои рабочие сервисы и настроить передачу данных — обо всем остальном система позаботиться за вас. Попробуйте ApiX-Drive, это быстро и просто!
Язык программирования Ruby: особенности, перспективы, рынок труда
В этой статье поговорим о языке программирования Ruby: его особенностях, сфере применения, перспективах и ситуации на рынке труда. Поинтересуемся у опытных разработчиков, стоит ли изучать Ruby, сколько времени занимает обучение и как они относятся к фреймворку Ruby on Rails.
- О языке Ruby: история, особенности
- Принцип наименьшего удивления и другие особенности Ruby
- Сфера применения: благодаря Ruby on Rails нишей языка стала веб-разработка
- Валентин Завадский: работа на Ruby делает многих счастливыми
- Павел Калашников: главная мысль — Ruby не должен быть первым языком программирования
- Артём Партос: Ruby — прекрасный язык с лаконичным и выразительным синтаксисом, развитой инфраструктурой и большим и отзывчивым сообществом
- Дмитрий Матвеев: фраза «Ruby мёртв» — это такой прикол, язык не умирает, а развивается
- Александр Вагин: программисты на Ruby получают больше специалистов по другим языкам
- Игорь Александров: самое прекрасное в Ruby – это конечно же community языка
О языке Ruby: история, особенности
Ruby — язык программирования, который был представлен в 1995 году разработчиком Юкихиро Мацумото, также известным под ником Matz. Вот характеристики Ruby:
- высокоуровневый — удобный для разработчиков, с сильной абстракцией и использованием конструкций натурального или человеческого языка;
- динамичный — типы данных определяются на этапе выполнения программы, это увеличивает скорость разработки;
- интерпретируемый — код на Ruby обрабатывается интерпретатором в момент выполнения без предварительной компиляции, это обеспечивает независимость от платформ и уменьшает размер исполняемых программ;
- язык программирования общего назначения — в отличие от предметно-ориентированных, языки программирования общего назначения не создаются для применения в специфичных областях.
Иногда в письменной речи используется транскрипция названия. Например, можно встретить такой вариант написания: «язык программирования „Руби“». Это не ошибка, но мы предпочитаем не транскрибировать названия языков, технологий и компаний.
Юкихиро Матцумото начал работать над Ruby в начале 90-х годов. Matz знал Perl и Python, но решил создать новый объектно-ориентированный язык программирования. Perl не нравился Матцумото, так как по его мнению он был игрушечным и даже эзотерическим языком. А Python, по словам Матцумото, был недостаточно объектно-ориентированным. Matz — фанат объектно-ориентированного подхода, поэтому он начал работу над по-настоящему объектно-ориентированным и простым языком.
Matz представил язык в 1995 году. Ruby стал популярен среди японских разработчиков, в том числе благодаря рассылке ruby-list на японском языке. Уже в первых версиях в Ruby присутствовали отличительные черты, которые сохранились в языке до сегодняшнего дня. Это объектно-ориентированный дизайн, использование классов и наследования, миксинов, итераторов, замыканий, сборщик мусора, обработка исключений.
В конце 90-х появилась документация Ruby на английском языке и англоязычный форум ruby-talk. Благодаря этому язык стал популярным за пределами Японии.
Matz говорит, что создал Ruby, чтобы сделать разработчиков счастливыми. Чтобы понять, о чём идёт речь, нужно познакомиться с особенностями этого языка.
Принцип наименьшего удивления и другие особенности Ruby
По словам Юкихиро Матцумото, он хотел сделать язык программирования, с которым ему самому было бы приятно работать. Также Matz хотел, чтобы язык помогал программистам быть продуктивными и позволял делать больше с меньшими усилиями. Наконец, язык должен был минимизировать неожиданности. Это трансформировалось в принцип наименьшего удивления, согласно которому программа должна вести себя так, как ожидает программист.
Как отмечалось выше, Ruby относится к объектно-ориентированным языкам программирования. Фразой «всё есть объект» можно передать то, как в этом языке рассматриваются сущности, включая примитивные. Все вычисления выполняются с помощью методов, которые вызываются на объектах. Например, чтобы вычислить значение 5 + 4 , вызывается метод + на экземпляре 5 класса Integer с аргументом объекта 4 .
Важная особенность Ruby — поддержка блоков (block). Эта конструкция принимает параметр и возвращает значение. Блоки можно передавать в качестве необязательных аргументов в методы. Блок вызывается с помощью выражения yield(e) , которое передает в блок значение e .
Синтаксис Ruby похож на Perl. Блоки можно определять с помощью скобок или ключевых слов. Классы и методы определяются с помощью ключевых слов. Разницы между инструкциями и выражениями нет. Для обозначения конца инструкции используется точка с запятой или перенос строки. В отличие от Python, отступы в Ruby не учитываются.
Сфера применения: благодаря Ruby on Rails нишей языка стала веб-разработка
Как отмечалось выше, Ruby — язык программирования общего назначения. То есть он может использоваться и используется для решения разных задач в разных отраслях. Тем не менее у Ruby есть ниша, в которой он используется чаще всего. Это веб-разработка.
Ruby стал популярным языком для создания веб-приложений благодаря Ruby on Rails. Этот фреймворк был представлен в 2005 году. Он повлиял на веб-разработку в целом и другие фреймворки в частности, о чём ниже рассказывают эксперты.
В «рельсах» реализованы инновационные возможности, включая бесшовную интеграцию с базой данных, миграции, создание представлений для ускорения разработки. Эти возможности позднее были внедрены в других фреймворках, включая Django, Laravel и Phoenix.
В Ruby on Rails применяется архитектура MVC, а также известные инженерные паттерны, включая DRY, ActiveRecord, convention over configuration (соглашение по конфигурации). Принцип соглашение по конфигурации продолжает принцип наименьшего удивления, который использовал Юкихиро Матцумото при разработке языка Ruby. Convention over configuration значит, что конфигурация необходима только там, где какой-либо аспект выходит за рамки спецификации.
Ruby применяется не только в веб-разработке. На Ruby написаны утилита командной строки Homebrew, ПО для обеспечения информационной безопасности Metasploit, ПО для создания виртуальной среды разработки Vagrant и другие известные приложения.
Промежуточный итог: Ruby — язык программирования общего назначения, но чаще всего применяется в веб-разработке. Он создан, «чтобы сделать программистов счастливыми», поэтому у Ruby лаконичный синтаксис. Фреймворк Ruby on Rails повлиял на другие веб-фреймворки, он остаётся популярным и удобным инструментом для создания веб-приложений.
Популярность и рейтинг Ruby
По состоянию на май 2020 года Ruby занимает пятнадцатое место в индексе TIOBE . Этот индекс рассчитывается на основе поисковых запросов, связанных с программированием. Кроме того, Ruby в сентябре 2021 года используют в качестве серверного языка программирования около 5,2% сайтов, тогда как еще в 2010 году этот показатель составлял 0,5%, а в 2018 году — 1,6% сайтов.
По данным сервиса GitHut, который отслеживает популярность языков программирования на основе активности пользователей GitHub, Ruby входит в топ-10 языков по количеству пулреквестов. Эти данные актуальны на первый квартал 2020 года.
По данным сервиса Hotframeworks , Ruby on Rails входит в число самых популярных веб-фреймворков. В этом рейтинге участвуют как бэкенд-, так и фронтенд-фреймворки.
По информации Stackoverflow Developers Survey , в 2019 году 8 % пользователей Stackoverflow работали с «рельсами».
Промежуточный итог: по разным данным, Ruby входит в десятку или двадцатку самых популярных языков программирования. Ruby on Rails — один из самых популярных веб-фреймворков.
Ситуация на рынке труда: зарплаты и вакансии для Ruby-программистов
В мае 2020 года по запросу Ruby на hh.ru есть 580 вакансий. Из-за особенностей работы сайта в результаты поиска попадают вакансии, в которых упоминается язык Ruby. Например, если в вакансии для программиста на Rust написано «приветствуется опыт работы с Ruby», такая вакансия попадает в выдачу. То есть реальное количество вакансий для программистов Ruby чуть меньше, чем отображает сайт.
Бросается в глаза следующее: в подавляющем большинстве объявлений работодатели ищут разработчиков на проекты с использованием Ruby on Rails. Это ещё раз подтверждает популярность и востребованность фреймворка.
Вилка зарплат на сайте hh.ru — от 25 000 рублей до 2000 долларов США. По данным агентства NewHR , в 2019 году программистам на Ruby уровня middle в Москве платили от 150 000 до 180 000 рублей в месяц. По информации Хабр Карьера , медианная зарплата Ruby-программистов во втором полугодии 2019 года составляла 130 000 рублей.
Промежуточный итог: программисты на Ruby востребованы на рынке, но вакансий для рубистов меньше, чем для JavaScript-разработчиков. Медианная зарплата программистов на Ruby выше, чем у программистов на Java, JavaScript, Python, PHP.
Стоит ли изучать Ruby, жив ли этот язык и сколько придётся учиться с нуля до уровня джуниора: комментарии экспертов
Узнали о перспективах Ruby и состоянии этого языка из первых рук: попросили опытных разработчиков ответить на несколько вопросов:
- Фраза «Ruby мёртв» давно стала мемом. А как вы можете оценить состояние языка — как он себя чувствует и какие у него перспективы?
- Как вы думаете, стоит ли изучать Ruby в 2020 году? Вопрос связан с ситуацией на рынке труда: есть ли работа для рубистов, насколько они востребованы по сравнению со специалистами, которые используют другие языки?
- Подходит ли Ruby новичкам, или этот язык больше подойдет разработчикам с опытом?
- Что вы можете сказать о Ruby on Rails — чем «рельсы» хороши или плохи, какие перспективы у этого инструмента, как он выглядит на фоне аналогичных решений, написанных на других языках?
- Сколько времени потребуется, чтобы выучить Ruby с нуля до уровня джуниор-разработчика?
Ответы экспертов ниже.
Бесплатные курсы по программированию в Хекслете
- Освойте азы современных языков программирования
- Изучите работу с Git и командной строкой
- Выберите себе профессию или улучшите навыки
Валентин Завадский: работа на Ruby делает многих счастливыми
Жив ли Ruby
Про то, как он себя чувствует — это очень сложный и абстрактный вопрос. Из моих наблюдений, чаще всего технологии умирают тогда, когда они перестают развиваться, и в них прекращают экспериментировать. При выборе технологии для меня это одно из ключевых качеств при принятии решения. Нет ничего более грустного, чем момент, когда ты нашел классную библиотеку, которая решает ровно твою проблему, ты заходишь в репозиторий — а последний раз ее обновляли 3 года назад, и там открыто 200 тикетов.
В этом плане Ruby жив и будет жить еще очень долго. Тут к месту вспомнить шутку создателя языка Матца на одной из последних конференций, где он сказал «Вы же понимаете, что мы не можем позволить Ruby умереть? Вы-то ладно, вы другие языке выучите. А я-то вообще без работы останусь». В действительности, конечно, без работы он не останется еще долго. Сейчас большое количество довольно крупных и успешных компаний, например, GitHub, Airbnb, Heroku, инвестируют много времени и средств в сам язык постоянно.
Касательно перспектив самого языка с точки зрения изменений, то в последнее время много разговоров ходит вокруг нескольких топиков. А именно это работа над GC (сборщиком мусора), опциональной типизацией для увеличения производительности и улучшения модели параллелизаций (условные async/await и прочее).
К слову сказать блог, на котором вы читаете данную статью, тоже написан на Ruby 😉
О целесообразности изучения
Я призываю читателей отвечать себе на такие вопросы самостоятельно, используя критическое мышление. Для этого берёте сайты с вакансиями, вбиваете ключевые слова, и смотрите вакансии на разных рынках в их количестве, вилки зарплат и перспективы. Лично ваш покорный слуга последнюю неделю спит по 6 часов просто потому, что работы так много, что времени в сутках не хватает.
В данном вопросе стоит подчеркнуть наверное самый важный аспект в вопросе «стоит ли изучать Ruby». Не знаю, как так получается, но каким-то магическим образом работа на этом языке делает многих… счастливыми. Это часто трудно объяснить, но я все-таки связываю это в первую очередь с красотой, лаконичностью и возможностями самого языка.
Подходит ли Ruby новичкам
Разработчики с опытом точно освоят Ruby без проблем. Как и любой язык программирования. Но я обещаю, что они определенно кайфанут от многих концепций и структур, которые присутствуют в самом языке.
Для новичков в программировании все зависит от того, как вы собираетесь этой технологии обучаться, и кто вас будет менторить. К счастью, сообщество у нас очень дружелюбное к новичкам, есть огромное количество образовательных курсов и материалов.
О Ruby on Rails
С точки зрения бизнеса, «рельсы» — это прекрасная технология для старта вашего приложения, она идеально подходит малому и среднему бизнесу. Именно в этот момент степень неопределенности очень высокая, вам нужно очень быстро и динамично двигаться, постоянно экспериментируя. И именно в данной ситуации вам не хочется бороться с какими-то тонкостями языка и технологий. Или обнаружить, что вы неправильно организовали микросервисы, и через 3-6 месяцев вообще никто в команде не понимает, как это все работает. А новые разработчики смотрят на ваш код и увольняются через неделю.
С точки зрения технологий, за что я люблю «рельсы» (и в некотором роде недолюбливаю современный фронтенд) — это то, что даже в 2020 году ты можешь открыть проект на «рельсах», написанный 10 лет назад, и все еще полностью понять, что там происходит, и продолжить его развивать.
При этом из личных наблюдений и опыта общения в подкасте с программистами на других схожих технологиях (nodejs/python/php) — в нашем сообществе очень много времени и подходов уделяется именно качеству кода. И тут скорее идея не в том, что все сидят такие крутые и пишут классный и идеальный код. Потом распечатывают его, вешают на стенку и сидят вечерами с бокалом вина, любуясь часами всей семьей. Нет, я скорее о том, что сообщество уже достаточно опытное, оно знает, как надо писать проекты правильно, чтобы потом через 3-5 лет просто не было больно каждый день.
Сколько придётся учиться
Всё очень сильно зависит от начальных условий и от того, как сильно у вас горят глаза. Лично для меня в свое время от момента, когда я впервые услышал слово «Ruby», до момента, когда получил первую работу на этом языке, прошло около двух месяцев. Но стоит понимать, что это была ежедневная работа по 10 часов, практически без выходных, в окружении менторов и команды. Если «почитывать книжку» раз в две недели по субботам, процесс может занять и годы.
Об эксперте
Валентин Завадский , СЕО Rubyroid Labs , соведущий подкаста proconf и лидер Ruby-сообщества Minsk.rb
Павел Калашников: главная мысль — Ruby не должен быть первым языком программирования
Жив ли Ruby
Тот, кто говорит, что Ruby мёртв, мало работает с американскими компаниями. В тех местах Ruby до сих пор очень популярен. На российском рынке — да, стал менее популярен. Но даже здесь в России в период популярности 8-10 лет назад на нём были написаны успешные продукты и системы, которые надо поддерживать и развивать. В основном это про Ruby on Rails, конечно. Переписывать их на что-то другое навряд ли будут, ибо переписывание проектов с Ruby on Rails на Laravel или Django — это бессмысленная история.
А заниматься переписыванием их на более хайповый Go — это очень сложная задача, потому что в Go нет фреймворка, который обладает таким же набором функциональности и инфраструктурой Rails. Гоферы на это, конечно, всегда отвечают и фыркают, что можно переписать, попутно называя 20+ библиотек, которые надо с помощью какой-то матери склеить вместе, и всё это, чтобы воссоздать в приложении функции и возможности, которые в «рельсах» лет 10 уже из коробки есть. Такая себе история 🙂 Так что Ruby в России благодаря рельсам останется языком, на котором нужно будет делать и развивать веб-приложения. И не надо забывать, что это всё ещё очень сильный скриптовый язык программирования. Честно, до сих пор жду, когда кто-нибудь в России проведёт конференцию RubyMertv.
О целесообразности изучения
Зависит от задач, которые перед собой ставит сам специалист. Если он собирается оставаться на российском рынке, то Ruby не очень востребован. Лучше учить Python, PHP, JavaScript или Go. Какой-то статистики у меня нет, но я наблюдаю за рынком аутсорса, и там видна тенденция не в пользу Ruby. Конкретно, во всяких аутсорс-чатах и группах на 10 заявок на Python, будет одна заявка на Ruby. Но если он собирается перебираться или работать удалённо с компаниями и людьми в тех местах и отраслях, где Ruby популярен, надо однозначно выбирать его. Отрасль, где популярен Ruby — это стартапы. Учитывая, что на Ruby можно очень быстро делать MVP (minimum viable product) и прототипы, в этой среде он очень полезен.
Подходит ли Ruby новичкам
Самая главная мысль — Ruby не должен быть первым языком программирования. Чтобы оценить все радости, которые предоставляет язык и его инфраструктура, нужно «пострадать» с чем-то другим, сильнее типизированным и менее динамичным. А вот если потом в процессе работы с такими языками вы почувствуете тягу к рефлексии и метапрограммированию, то Ruby — это прекрасный вариант заниматься этими делами в полный рост. Для джунов Ruby должен подойти либо студентам ИТ-специальностей старших курсов, которые уже несколько лет тусят с C++ или чем-то другим, а также подойдёт специалисту, который успел год поработать в ИТ-компании с другим языком программирования.
О Ruby on Rails
Один специалист из одной ульяновской компании после нескольких лет работы с Django сказал мне такую фразу. «Django, конечно, хорош! Но видно, что рельсы — это для людей». И действительно, «рельсы» позволяют сосредоточиться на бизнес-логике продукта и не заниматься техническим стаффом из начала 2000-х. Это делает его потрясающим инструментом для стартапов, как я сказал выше.
На Ruby можно быстро создавать проекты. Но за всё надо платить, и плата за скорость разработки — производительность. Чтобы сделать производительное приложение на «рельсах», нужно либо внутри «рельс» не использовать фичи «рельс», либо использовать дополнительные инструменты вроде «кэш-баз данных», Redis, например. Я знаю, что это не кэш-база данных, и вообще таких баз не существует, но давайте честно, рельсовики её часто используют именно так. Или других дополнительных «шин» для обработки данных.
Как рельсы выглядят на фоне других веб-фреймворков подобных? Ну вот 10 лет назад я бы сказал, что никто рядом по количеству фич и простоте использования не валялся, но сейчас большинство фреймворков (те же Laravel, Django и прочие) уже догнали рельсы. И, кстати, многое от них взяли в себя. В перспективе рельсы станут продуктом, на котором можно очень быстро запилить API для Single Page Application приложений, плюс можно быстро админку сделать для управления данными.
Сколько придётся учиться
Зависит от бэкграунда и от самого человека. Я сам был студентом старших курсов, когда с Ruby познакомился. Благодарности и лучи добра господину Мокевнину. Мне где-то 5-6 месяцев постоянного использования Ruby и Rails для своих пет-прожектов понадобилось, чтобы на первую работу устроиться. Но это не показательная история, у каждого свой путь.
Об эксперте
Павел Калашников , координатор скилл-шеринг сообщества IT Way , RoR-разработчик, директор компании Purple Magic
Артём Партос: Ruby — прекрасный язык с лаконичным и выразительным синтаксисом, развитой инфраструктурой и большим и отзывчивым сообществом
Жив ли Ruby
Можно довольно много говорить о развитии языка с технической точки зрения — о появлении JIT, о заявленном Ruby 3 speed x3, возможном появлении статической типизации. Но самое главное то, что Ruby уже довольно давно прекрасный язык — с лаконичным и выразительным синтаксисом, развитой инфраструктурой и большим и отзывчивым сообществом.
И самое главное, в какой-то мере, Ruby — это нишевый язык. Его сегмент — это быстрая разработка, рынок, на котором важно минимальное время от идеи до прототипа. И на своем рынке он является одним из лидеров. Да, в этом же сегменте и схожие скриптовые языки PHP/Python/Node.js, но в каждом из них есть свои плюсы и минусы.
О целесообразности изучения
Однозначно да. Например мы (Dualboot partners) уже третий год набираем рубистов десятками, в том числе благодаря Хекслету. Основные наши клиенты — мелкие и средние бизнесы за рубежом. Для них быстрое прототипирование — конкурентное преимущество на рынке. Более того, предлагаемые зарплаты — одни из самых высоких при сравнении с аналогичными языками.
Подходит ли Ruby новичкам
В целом тут ответ неоднозначен. Если цель — стать хорошим инженером, понимать основы, структуры данных — то, наверное, Ruby — не лучший язык для старта. Здесь очень много вещей построено на концепции Convention over configuration — для начинающих разработчиков это будет казаться какой-то магией. Если цель — писать на удобном современном языке, при этом получая хорошую зарплату, то Ruby — отличный язык. В целом есть довольно большая выборка людей, для кого Ruby был первым языком, и кто неплохо себя показывает с точки зрения роста квалификации и навыков, но тут все зависит от самого человека.
О Ruby on Rails
Тут придется остановиться достаточно подробно. В целом я сторонник рассматривать языки как инструменты. И можно выделить разные виды задач в коммерческом программировании.
Самый большой рынок здесь — задачи из области запрос-ответ, по сути — какие-либо сайты, crm/erp системы, API — это процентов 95 рынка.Здесь лидируют Ruby/PHP/Python/Node.js.
Далее идут задачи из мира высоконагруженного/конкурентного программирования, highload, здесь же консольные утилиты/клиенты, задачи из области хранимого состояния в памяти — меньшая доля рынка, очень большая разница подходов. Лидеры: Console utility: golang/С/C++; Enterprise: java-based/.net; Concurrent programming: golang/elixir/erlang/java; Shared state problem: erlang/elixir.
Есть еще много областей, например, мобильная разработка, разработка игр, фронтенд, AR/VR, но здесь мы их рассматривать не будем. В интересующем нас сегменте находятся Ruby/Python/PHP/Node.js.
Node.js мы отбросим из сравнения по нескольким причинам:
- backend на Nodejs сильно отличается из-за большой разницы между классической реализацией на потоках/процессах и event loop подходе с асинхронным неблокирующим IO;
- мне попадается достаточно малое количество проектов, хорошо написанных на Nodejs, поскольку в основном разработчики — это люди, пришедшие из мира frontend, не до конца понимающие концепции backend;
- псевдоудобство — как здорово, один язык программирования — а писать можно и front, и back. Довольно быстро разбивается из-за низкой квалификации и отсутствия фреймворка-лидера;
- JavaScript является самым распространенным языком программирования, вы можете видеть большое количество вакансий на Node.js, но тем не менее крайне не рекомендую писать на нем backend.
Сравним Ruby/Python/PHP — все задачи в описанном сегменте могут быть реализованы на данных языках примерно с равной долей успеха, НО:
- большинство питонистов поглотил мир data science/machine learning, у них появилась довольно большая сегментация фреймворков Django/набирающий обороты Flask/CherryPy/Grok и так далее;
- от PHP многие уходят по разным причинам — от неквалифицированной разработки (тут во многом виноваты разработчики развивающихся стран) до очень большой сегментации фреймфорков (один и тот же программист может быть неплохим в Laravel и совсем не понимать Symphony); лучшее на мой взгляд что есть в PHP — Laravel — позаимствовало большинство концепций из Ruby on Rails;
- учитывая вышесказанное, Ruby и почти единственный веб-фреймфорк Ruby on Rails, обладая отличным комьюнити и готовым набором инструментов, становится отличным выбором.
Сколько придётся учиться
Это скорее вопрос мотивации нежели вопрос на который можно достоверно ответить. То, чем мы занимаемся, не является каким-то rocket science. Среднее время обучения на нашей платформе Learn Dualboot , после которого мы предлагаем коммерческие проекты на позиции Junior, составляет 3-4 месяца. Самая высокая скорость, с которой человек, которого я знаю, изучил все основные концепции языка и фреймворка — три недели. Но тут скорее важны другие факторы: базовые знания, понимание, как в целом решаются разного рода задачи, soft skills, навыки коммуникации, умение разбираться и задавать вопросы. Пользуясь случаем, хочу поблагодарить команду Hexlet за то, что они делают, и пожелать успехов всем начинающим разработчикам.
Об эксперте
Артём Партос , Cofounder & technical lead at Dualboot partners .
Дмитрий Матвеев: фраза «Ruby мёртв» — это такой прикол, язык не умирает, а развивается
Жив ли Ruby
Да, фраза «Ruby мёртв» — это такой прикол. Matz говорил об этом на последней конференции RubyRussia. Язык живой. Он заматерел, перестал быть хайповым. На хайпе сейчас другие языки.
На Ruby уже написано много продуктов, которые надо поддерживать и развивать. Поэтому и сам язык не умирает, а развивается. Например, в него хотят опционально включить статическую типизацию. Ruby on Rails тоже развивается. Все живы, всё в порядке.
О целесообразности изучения
В последнее время на рынке много разнообразия: требуются программисты на Go, Java, .NET, Python, PHP тоже жив, как и другие языки. Но для Ruby всегда найдётся место. Программистов на Ruby ищут как российские компании, так и иностранные. Сейчас с Ruby работает меньше стартапов и больше зрелых бизнесов. Несколько лет назад была противоположная ситуация.
Подходит ли Ruby новичкам
Лично я был новичком, когда начинал изучать Ruby. Это язык хорош тем, что в нём используются правильные принципы, например, DRY, SOLID и так далее. Несмотря на то, что язык объектно-ориентированный, на нём можно писать в функциональном стиле.
Ruby — красивый, элегантный, лаконичный язык. На нём можно писать понятный для человека и читабельный код, который мало отличается от английского языка.
Ruby не был для меня первым языком программирования. После PHP этот язык показался приятным. В то же время могу и поспорить с теми, кто говорит, что Ruby не стоит изучать первым. Здесь надо смотреть на аргументы и обсуждать их.
О Ruby on Rails
«Рельсы» выглядят прекрасно на фоне других инструментов. Концепции, которые реализованы в Ruby on Rails, используются в фреймворках на других языках. Например, миграции, тестирование, MVC и так далее.
Для быстрого создания веб-приложений нет ничего лучше «рельс». Недавно в Facebook увидел новость — в Великобритании сделали какое-то приложение или сайт о коронавирусе. Выбрали Ruby on Rails, так как надо было запустить его быстро.
Сколько нужно учиться
Сначала надо изучать математику, логику, структуры баз данных, алгоритмы. Если есть база, любой язык программирования можно изучить достаточно быстро. Кроме того, если есть база, вы с первой недели обучения сможете что-то писать, делать какой-то сайт. Хорошо, если вы изучаете программирование на какой-то задаче, а не учите тот или иной язык на абстрактных примерах, не связанных с практикой.
Об эксперте
Дмитрий Матвеев , тимлид компании Evrone .
Читайте полезное интервью Дмитрия Матвеева В интервью для блога Хекслета Дмитрий рассказал о работе тимлида, его ожиданиях от начинающих программистов и об организации работы в команде.
Александр Вагин: программисты на Ruby получают больше специалистов по другим языкам
Жив ли Ruby
Язык Ruby и фреймворк Ruby on Rails сейчас уже не так быстро развиваются, как несколько лет назад. Хайп спал, бурного роста нет. Много правильных вещей уже сделано, и эти вещи перенимают разработчики других фреймворков на других языках. В целом язык жив и будет жить. Другим языкам далеко до Ruby и «рельс» по некоторым параметрам. Где-то Ruby лучше, где-то хуже.
О целесообразности изучения
Я никогда не искал работу, где требуется знание другого языка, поэтому сравнивать сложно. Мои знакомые рубисты все работают, пишут на Ruby. Вакансий для рубистов много и в России, и за границей. Есть работа с релокацией и удалённая работа.
На Ruby создано много продуктов, владельцы не собираются переписывать их на другом языке. Поэтому работу найти легко. Важный момент — программисты на Ruby получают больше специалистов по другим языкам. Найти рубиста трудно, поэтому бизнесы переманивают программистов со знанием других языков и переучивают их.
Поэтому да, Ruby стоит изучать.
Подходит ли Ruby новичкам
Ruby — такой же язык, как остальные. Важно изучать базу. Считаю, что можно изучать программирование на любом языке, если есть база.
Хотя в Ruby и в «рельсах» есть свои особенности, здесь используются свои подходы. Важную роль играет ментальное программирование, принятые концепции ставятся во главу угла.
О Ruby on Rails
Я сравнивал Ruby on Rails с другими фреймворками, например, Laravel или Phoenix. Эти фреймворки взяли многое из «рельс», но пока они не готовы заменить «рельсы». Да, они в чём-то сильнее. Например, преимущество Laravel в том, что разработчика на PHP найти проще, чем разработчика на Ruby.
Но в целом считаю Ruby on Rails идеальным фреймворком. Он развивается, внутри уже много сделано. И я бы не хотел поменять «рельсы» на какой-то другой фреймворк.
Сколько придётся учиться
Знание синтаксиса не делает человека джуниор-разработчиком. Нужны базовые знания, с ними можно изучить любой язык программирования быстро.
Лично я был разработчиком на PHP уровня «джуниор», когда познакомился с Ruby. Переучился за две недели и стал джуниор-разработчиком на Ruby.
Об эксперте
Александр Вагин , разработчик. Главный программист Хекслета.
Игорь Александров: самое прекрасное в Ruby – это конечно же community языка
Жив ли Ruby
Мне непонятно понятие «мертвого языка» в контексте Ruby. Я думаю, что на текущий момент Ruby просто вышел из состояния относительно новой технологии, которой все хотели воспользоваться, и перешел в состояние «осознанного использования».
О целесообразности изучения
Работа для рубистов конечно же есть, посмотрите на индекс TIOBE, Ruby стабильно находится в первой двадцатке языков. Конечно, вакансий, например по Python, раза в три больше, но у Ruby есть своя ниша (веб-разработка), в которой он очень силён. Скоро будет релиз Ruby 3.0 (декабрь 2020), на мой взгляд интерес к языку еще раз повысится.
Подходит ли Ruby новичкам
Ruby прекрасно подходит для разработчиков с нулевым опытом. Самое прекрасное в Ruby – это конечно же community языка. Для очень большого количества задач есть проверенные решения, а сам язык обладает прекрасной объектной моделью, которая легка в понимании. Даже динамическая типизация, за которую часто ругают язык, для новичка проще в освоении, чем строгие типы. Посмотрите на Crystal, язык обладает схожим с Ruby синтаксисом, но для начинающего программиста конечно же будет гораздо более сложным.
О Ruby on Rails
Rails одновременно дали огромный импульс для развития Ruby и сыграли с ним злую шутку. Очень многие, когда говорят «Ruby», подразумевают именно «Rails». На текущий момент фреймворк находится уже в шестой версии, стабилен и обладает огромным функционалом из коробки. Rails, как и раньше, прекрасно подходит для быстрого старта проекта, однако с ним по-прежнему возникают проблемы на больших проектах.
В первую очередь это проблемы поддержки кодовой базы и организации кода. По сравнению с ситуацией, которая была лет 5 назад, сообщество уже выработало ряд решений и подходов, которые решают большинство этих проблем. Активно развивается проект dry-rb , который предлагает набор библиотек для более чистого и поддерживаемого Ruby-кода. У Rails есть еще один значительный плюс — это его документация, настолько понятного и подробного описания я не видел ни в одном инструменте.
Сколько нужно учиться
По нашему опыту (у нас есть стажёрская программа) кому-то получается освоить основы Ruby за месяц или полтора, кому-то требуется на это больше времени, у кого-то не получается совсем. При желании «войти в профессию» действительно можно уложиться в месяц. Особенно важно, на мой взгляд, начинать именно с Ruby, а не с Rails.
Об эксперте
Игорь Александров , JetRockets CTO and co-founder
Что можно запомнить
- Ruby — язык с лаконичным синтаксисом, он создавался, «чтобы сделать программистов счастливыми».
- Ruby чаще всего используется в веб-разработке.
- Ruby on Rails — популярный фреймворк, который стал источником вдохновения для разработчиков других фреймворков.
- Программисты на Ruby востребованы на рынке труда, в среднем они зарабатывают больше программистов на JavaScript, Python, Java, PHP.
Ruby язык программирования
Ruby — язык программирования , который создал японец Мацумото. Разработчик решил сделать синтез всех преимуществ других языков программирования, соединив их в новом проекте. В 1993 году он объяснил появление Ruby тем, что наконец язык программирования сможет читать человек, о котором во многих случаях думают в последнюю очередь, ориентируясь лишь на машины. Именно поэтому Ruby программирование можно назвать высокоуровневым. Этот язык позволяет создавать вполне понятные, хотя и чрезвычайно мощные программы.
П ростота синтаксиса позволяет программистам без особых сложностей проводить разработку продуктов через тестирование (TDD), реализовывать MVC и даже работать с базой данных благодаря ORM. Современный программист Ruby также получает возможность создавать шаблоны проектов в сфере Design Patterns и программы для SaaS. Использование JavaScript-framework облегчает рабочий процесс, связанный с AJAX.
Где найти учебник Ruby и стоит ли тратить на изучение языка несколько месяцев своего времени?
Ответ однозначен — стоит. Кроме того, сейчас существует большое количество учебников, которые позволят максимально оперативно изучить основы этого языка.
В частности, одной из самых популярных книг сейчас считается «Head First. Изучаем Ruby», которую написал специалист по Perl Джей Макгаврен.
Еще одной хорошей книгой для максимально быстрого обучения считают «Учись программировать» от автора Криса Пайна.
Также можно взять на вооружение издание «Гибкая разработка веб-приложений в среде» Хэнссона.
По желанию можете найти книгу разработчика Мацумото «Язык программирования Ruby».
Как стать программистом Ruby? Стоит ли это делать?
Конечно, стоит попробовать свои силы, поскольку зарплата программиста Ruby начинается на уровне 110, 000 рублей в месяц. И это минимальная сумма, которая часто достигает 170, 000 рублей в зависимости от опыта и возможностей специалиста. Это означает, что программист Ruby получает не меньше, чем профессионалы в сфере С++ или Delphi.
Достаточно потратить на изучение языка 1-2 месяца, чтобы узнать, насколько велики ваши шансы на успех. Именно столько времени понадобится, чтобы понять простую вещь — этот язык программирования слишком прост, чтобы отдать предпочтение другим вариантам.