Rails в 2k-whatever году

Нужен ли Вам Ruby on Rails. Полный ответ для предпринимателей, опытных и начинающих разработчиков.

Все привет. В своем прошлом посте  я перевел ответ автора фреймворка на вопрос, почему стоит учить Ruby On Rails в 2017 году. Но, вот настал новый 2018 год и снова все те же вопросы.

А вызваны они тем, что серьезные дядьки на серьезных ресурсах пишут серьезные статьи о том, что Rails умер, что Ruby умер и что использовать то или другое в 2k-whatever году это уже не торт, надо все писать на любом другом языке и технологии, просто потому что так надо. И вот, новичок, пришедший в веб разработку или предприниматель, с идеей проекта начинают думать, что Rails это какой-то отстой и не понимают, почему его им вообще советовали другие разработчики. А что им еще делать, опыта в области нет, остается довериться мнению авторитетов.

Поэтому, перед тем как рассмотреть Rails с позиции 3х типов пользователей: Предпринимателей, Начинающих разработчиков и опытных разработчиков, я бы хотел сказать довольно много слов о тех, кто пишут негативные статьи о Rails и почему Rails не умрет в ближайшем будущем. 

Кто пишет негативные статьи о Rails и правда ли все то, что они пишут.

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

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

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

Следующим идет современный велосипед, с кучей скоростей, дисковыми тормозами, облегченной рамой и какими-никакими амортизаторами.

А дальше больше, дальше уже велосипеды не просто идут качеством выше, но уже и делятся по назначению - шоссейники, горные, еще какие-то (не силен в велосипедах), кроме того там они делятся на любительские и профессиональные. Профессиональный вел может стоить как машина. И технологии, которые там применяются, на очень высоком уровне, чтобы максимально решить задачу его пользователя.

Как думаете, захочет ли инженер, дошедший до последнего уровня, вернуться просто к современным велосипедам? Больше не использовать сверх легкий сплав, ставить просто качественные тормоза, а не самые лучшие, не иметь возможности снова и снова рассчитывать и пересобирать аппарат, для того чтобы удовлетворить потребности клиента, который купит велосипед по цене автомобиля. Надеюсь, аналогия простая.

Так вот Rails - это тот самый современный велосипед. Или даже лучше аналогия с автомобилями. Rails - автомобиль представительского класса. С ним удобно в городе, отличная скорость на шоссе, статусность. Но вот в горы или на гонку на таком не поедешь. Но, часто ли Вы участвуете в гонках?

Почему Rails не умрет. Почему Ruby не умрет.

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

Как только появилось первое огнестрельное оружие, его делали оружейные мастера. Полностью, от начала и  до конца. Проблема такого подход в том, что из двух поломанных ружей разных мастеров нельзя было собрать одно рабочее. И тогда пришли к соглашениям, стандартам.
Соглашения - ключевая фишка Ruby on Rals. Опытные разработчики, которые сотни раз решали одни и те же рутинные задачи, пришли к соглашениям, как решать эти самые задачи самым эффективным образом.

Ответ для предпринимателей.

Ruby on Rails позволяет решать задачи быстро, очень быстро. И, если Вам важна скорость и возможность реализовать Вашу идею как можно быстрее - тут у Rails нет равных. Но, есть одно большое НО. Эту скорость может обеспечить только опытный разработчик, или наличии такого разработчика в команде. Если такого разработчика нет, соответственно и причин использовать именно эту технологию по сравнению с любой другой особо нет.
Т.е если Вам ваш бюджет НЕ позволяет нанять такого разработчика, то лучше ориентироваться на тех разработчиков, которых Вы будете нанимать и выбирать ту технологию, с которой они хорошо знакомы.

Ответ для опытных не Rails разработчиков.

Итак - соглашения. В Rails они безусловно хороши, но не факт. что они подойдут конкретно Вам. Большинство предпочитают иметь как можно больше контроля над своим кодом  Пролистайте туториал Хартла, этого достаточно, чтобы понять основную философию фреймворка и определиться, подходит ли она Вам. 

Ответ для начинающих разработчиков.

Если у Вас совсем нет опыта в web разработке, то я бы не рекомендовал Вам начинать с Rails. Как правило, статьи и туториалы по Rails не объясняют почему пришли именно к таким соглашениям, как решали задачи раньше и почему именно такой вариант решения лучше всего. Начните с php, решайте задачи с нуля, набивайте шишки и помните, что есть такая очешуенно крутая штука как Rails и Вам стоит к ней вернутся. Кстати, объяснение ключевых соглашений, это основа моего курса http://rubyboost.ru/ Я не просто рассказываю, как это сделано в Rails, но и объясняю как подобные задачи решались ранее и почему пришли конкретно к таким решениям.

Если У Вас уже есть какой-то опыт и Вы выбираете себе новую технологию, например между Rails, Django и NodeJS - подумайте вот о чем. Вы выбираете себе технологию, в которой хотите стать профессионалом. Это займет не год и даже не два. И, чтобы стать этим самым профессионалом, Вам нужно много работать с этой технологией. А для этого, эта работа должна приносить удовольствие. Веду я к тому, что для того чтобы выбрать технологию, с которой Вы будете работать следующие несколько лет, есть смысл потратить месяц или даже два, чтобы попробовать каждую из них и выбрать ту, которая по душе.

Комментарии