Николай!
Это зависит от ваших целей и ситуации. Если все ваши друзья программируют на Питоне, учите Джанго: будет кому ревьюить ваш код, быстрее освоите. Если в компании вашей мечты используют Node.js, учите Node.js и Express.js: будет проще устроиться. Но если факторов, склоняющих вас в пользу других фреймворков, нет, я советую начинать с Руби‑на‑рельсах. И у меня на это пять причин.
Рельсы научат базовым вещам
У Руби‑на‑рельсах отличная официальная документация, которая за руку проводит по основным компонентам фреймворка. Разобравшись с нею, вы получите базовые знания об устройстве веб‑фреймворков: как устроен роутинг, как работает веб, зачем фреймворку база данных и как менять её устройство, как использовать шаблоны, как интернационализировать и локализовывать приложения. Если придётся сменить фреймворк, знания пригодятся: и в Рельсах, и в Джанго роутинг — та же функция для сопоставления запроса и кода, который его должен обработать.
Кроме того, из базовой документации вы получите знания о смежных с веб‑разработкой областях: о тестировании, отладке и безопасности. Научитесь правильно и безопасно конфигурировать приложения, отправлять и принимать почту, загружать и хранить файлы в облачные хранилища.
Рельсы научат писать хороший код
В Руби и Рельсах есть всё, чтобы научиться писать аккуратный, поддерживаемый и последовательный код. Начните со стайлгайдов:
Чтобы научиться определять, какой код плох, почему и как это исправлять, изучите Ruby Science и POODR:
Правила, принципы и методы, описанные в этих книгах, фундаментальны. Разберётесь с ними в Руби и Рельсах, будете применять и в других языках программирования.
В Рельсах всё есть
В Рельсах есть всё, что нужно, чтобы быстро собрать и запустить любое веб‑приложение: ОРМ, миграции, кеширование, отправка и получение почты, вебсокеты, интернационализация, отложенные задачи, АПИ для работы с облачными хранилищами. Если чего‑то нет, для этого есть гемы: нужна аутентификация через почту и соцсети с восстановлением пароля, берите Devise; нужен деплой и откат версий одной кнопкой, берите Capistrano; нужна админка, берите ActiveAdmin.
Какую бы задачу вы не выбрали для первого проекта на Рельсах, вы быстро получите работающий прототип. Будет, что показать на собеседовании.
Современный фронтенд
Рельсы дружат с современной экосистемой фронтенда и поддерживают все модные фреймворки. Если решите заодно попробовать и фронтенд, берите React, Vue или Svelte — всё отлично работает в Рельсах. Не придётся держать фронтенд и бэкенд отдельно. А если решите переписать бэкенд на Го, без проблем извлечёте фронтенд из проекта.
Программистское счастье
Это самая субъективная причина начинать программировать на Руби и Рельсах.
Я верю, что программирование ближе к литературе и редактуре, чем к точным наукам. Чем лаконичнее и понятнее код, чем он ближе к естественному, а не формальному языку, тем легче и приятнее с ним работать: люди пишут код для людей.
Руби очень лаконичный и выразительный язык. Ясно выражать на нём собственные мысли мне проще, чем на других языках программирования. Например, чтобы вывести на экран 5 раз «Ура» в Яваскрипте придётся использовать цикл for
или forEach
:
for (var i = 0; i < 5; i++) {
console.log('Ура')
}
[1, 2, 3, 4, 5].forEach(() => console.log('Ура'))
А в Руби — написать, как думаю, 5 times print «Ура»:
5.times { print "Ура" }
Когда я начинал изучать Руби и Рельсы, они настолько понравились мне, что я, как в детстве, не мог дождаться утра, чтобы поскорее запрограммировать на Рельсах что‑нибудь ещё. И до сих пор, просыпаясь по утрам, я счастлив, что сегодня попрограммирую на Руби.
Надеюсь, и вас Руби и Рельсы сделают счастливым.