Ruby on Rails — фреймворк для быстрой веб-разработки на языке Ruby.
Веб-разработка — создание веб-приложений — сайтов, которыми вы пользуетесь через браузер. Яндекс.Почта, Вконтакте, Facebook, GMail, Twitter, Одноклассники. Тысячи их.
Для отображения информации в веб-приложениях используют язык разметки HTML и стили CSS, без них веб-приложение не получится (ок, без CSS можно обойтись при желании). Но это не языки программирования, это просто способ показать какую-то информацию.
Если на сайте только текст, картинки и видео, которые не меняются — это, скорее всего, статический сайт. Для статических сайтов хватает только HTML и CSS.
В 99% случаев на сайте есть какие-то динамические элементы (выпадающие меню, счетчики Яндекс.Метрики или Google Analytics), которые используют JavaScript.
Когда пользователь, например, регистрируется на сайте, он вписывает свои email, пароль и имя в форму, жмет кнопку «Зарегистрироваться» и в этот момент на сервер уходит запрос с этими данными. Сервер их получает, сохраняет в базу данных, формирует ссылку, например, на личный кабинет пользователя и отправляет её браузеру.
Чтобы приложение могло получать информацию от пользователя, обрабатывать её, сохранять или получать информацию в базе данных по запросу, нужен серверный язык программирования.
Ruby, Python, PHP, Node.JS, Java, Elixir, Go — серверные языки программирования. На них можно писать серверную часть веб-приложений.
Серверные части разных веб-приложений делают похожие, типовые вещи: обработать запрос от браузера, понять, что хотят, обратиться к базе данных (записать или прочитать что-то), отправить браузеру ответ.
Чтобы быстрее создавать новые приложения меньшими усилиями, разработчики придумали фреймворки — специальный набор библиотек для языка программирования, которые не надо писать каждый раз заново.
Для Ruby — фреймворк Ruby on Rails, для Python — Django, для PHP — Laravel, Symfony, Yii, для Elixir — Phoenix. Для Node.JS, Go и Java монолитных фреймворков пока нет, просто используются наборы библиотек.
Отличие фреймворка от набора библиотек можно описать так: Фреймворк — это скелет, на который мы наращиваем свой код. При работе с отдельными библиотеками скелетом является наш код. Фреймворк — набор библиотек, который позволяет реализовать весь необходимый базовый функционал. Плюс важна взаимная согласованность стиля и функциональности компонентов, сквозная документация.
Для закрепления: Ruby — язык программирования, Ruby on Rails — фреймворк, написанный на Ruby.
Веб-приложения часто делают, чтобы заработать. Чтобы проверить бизнес-модель надо как можно быстрее показать клиентам ваш продукт и посмотреть, будут ли они им пользоваться, будут ли они за него платить. Ruby on Rails позволяет запустить первую версию приложения за 2-3 месяца.
Например, первая версия UCHI.ru, по рассказу главного разработчика, была сделана меньше, чем за месяц!
Сайт с простым функционалом на рельсах, если уметь, можно сделать за вечер. Вот видео, где автор в режиме спринта делает сайт со списком задач за 22 минуты (включая выкладывание на реальный сервер):
На Ruby on Rails написаны GitHub, GitLab, AirBnB, Twitch, Shopify, Fiverr, Twitter. Из наших — InSales, UCHI.ru, Aviasales.
Отдельные проекты на «рельсах» есть практически в любой крупной компании, например, в Google, Apple и Сбербанке.
Да, если вам нравится веб-разработка.
Ruby входит в 20 самых популярных языков программировани, а число вакансий на Rails сравнимо с числом вакансий на Django и Laravel.
При этом под «разработкой» разные люди понимают разное. Например, PHP популярен благодаря распространенным CMS-кам типа Wordpress, Joomla или Drupal. Число вакансий на нем огромное, но по факту ищутся не разработчики, а веб-мастера для поддержки сайтов небольших компаний и допиливания плагин для вордпреса. Это скучная и не очень высокооплачиваемая работа.
Но большинство новичков, увидев число вакансий по PHP во время выбора, какой язык программирования изучать, выбирают его. В итоге разработчики на Ruby on Rails — всегда в дефиците, поэтому средняя зарплата Ruby-разработчика выше (как и Python-разработчиков).
Картинка отсюда
Руби — отличный выбор для первого языка программирования.
Частенько, когда люди выбирают язык для начала карьеры разработчика, возникает ощущение, что они действуют так, как будто отправляют на обучение своего ребенка или сотрудника. Мотивация, от которой зависит успех обучения, абсолютно не учитывается.
Меж тем, учить язык именно вам и количество вакансий не будет мотивировать вас учиться, если вам не нравится сам процесс разработки на выбранном языке. Будет играть роль, насколько вам понятен синтаксис, насколько вам нравится, как устроен язык, насколько он кажется вам логичым и эстетичным.
На руби писать в разы приятнее, чем на PHP. Вот пример короткой программы Ruby и на PHP:
$fruits = ["banana", "apple", "cherry"];
foreach ($fruits as $fruit) {
echo $fruit . "\n";
}
fruits = %w(banana apple cherry)
fruits.each do |fruit|
puts fruit
end
Ruby-сообщество повернуто на правильном и понятном коде, который легко поддерживать. И язык Ruby и фреймворк Ruby on Rails закладывают в изучающего основы современного программирования и веб-разработки. Изучая их вы скорее поймете и научитесь правильным принципам разработки.
Даже если потом придётся перейти на другой язык программирования — заложенная база на эталонных примерах поможет гораздо быстрее освоить более сложный и менее выразительный язык или фреймворк.
При этом, если вы освоили эти принципы, найти работу на Ruby будет в разы проще, т.к. хороших Ruby on Rails разработчиков всегда не хватает.
Подробнее про это — в этом видео:
Технически эти языки очень похожи — высокоуровневые, динамические, интерпретируемые. Но это только формальная сторона.
Python, как и руби — мощный современный язык. По сравнению с руби он, на наш вкус, немного сложнее для понимания продвинутых тем, не обладает таким изящным синтаксисом и такой дружелюбной к новичкам экосистемой, как Ruby.
Зато он популярен в областях, не связанных с web — машинное обучение, аналитика, научные вычисления. Python вам очень пригодится для машинного обучения. Или как универсальный язык, если вы уже владеете программированием.
PHP изначально не проектировался как полноценный язык программирования. Это отразилось и на надежности, и на безопасности, и на популярности языка.
Пик его развития давно прошел, и сейчас ни передовые компании (вроде гугла, эппла, амазона), ни передовые стартапы (те самые, в кремниевой долине) его практически не используют.
Ruby изначально проектировался как «лучший друг программиста». На нем легко и принято писать, можно создавать сложные приложения. Но так исторически сложилось, что он используется больше всего именно в веб-разработке.
С Ruby вы быстрее и легче всего дойдете с нуля до работающего веб-приложения и правильного понимания основ программирования.