На повестку дня: Ruby On Rails или Node.js или php или Python?

Доброго времени суток, уважаемые друзья ! :)
Скорее всего вам покажется, что это очередной холивар, но нет : я действительно стою перед сложнейшим выбором серверного языка и прошу вашей помощи. Я - молодой front-end разработчик, оперирующий изо дня в день html, css, sass/ stylus, JS(jQuery) с ajax-ом.
Не так давно думал о двух вещах : либо начать серьёзно back-эндидить, совмещая с фронтом, либо попробовать себя в разработке под iOS. В итоге решил, что веб все-таки куда более перспективная и любимая мною штука. Хочу писать хороший серверный код на приятном языке, добивая всё это изящным front-эндом. Через год уезжаю на учебу в университет США, буду получать бакалавра computer science и работать на part time job, из-за нацеливаюсь сразу на язык, который будет перспективен на сервере в ближайшие 3-7 лет - поэтому, php, скорее всего отпадает. Выбор естественно встал между четырьмя наиболее популярными языками : Ruby On Rails, Node.js, php, Python. Сам, говоря честно, не могу отдать предпочтение, потому что в бэк почти никогда не лез и знаю лишь основы php. С node.js должно быть легче, так как js уже изучил, а синтаксис там вытекает примерно тот же, поэтому это явный + к изучению. О RoR слышал, что это просто отличная штука для разработки мощных проектов с приятным синтаксисом и краткостью выражения. Python - что-то вроде RoR, только со своими заморочками.
Уважаемые программисты, очень хочу выслушать ваше мнение о том, что бы вы лично выбрали для вашего проекта, и как вы видите будущее этих языков? Что бы вы посоветовали изучать, исходя из изложенной ситуации? Заранее хочу выразить огромную благодарность всем, кто хоть чуточку уделит своего времени и укажет путь истинный в бэке! :)
  • Вопрос задан
  • 21514 просмотров
Пригласить эксперта
Ответы на вопрос 9
webus
@webus
Golang | Python | NodeJS | Java
Python / Django.

Мода на Ruby / Rails прошла. Владельцу проекта нужна предсказуемость и прозрачность работы фреймворка, на котором построен его проект. Этого достаточно сложно добиться с "магией" Ruby, которую понять то сложно, если пришел с других языков. Это первое.

Второе, как ни крути но Ruby медленный. Да я пробовал последний Ruby 2.1 с последними Рельсами, и говорю он медленный. Да я знаю, что можно запускать Рельсу на всяких passanger, thin и unicorn. Знаю что есть JRuby и прочие реализации. Знаю что можно закешировать все что можно. Я это пробовал. И все равно, Руби - медленный. К слову реализаций Python тоже много, есть и Jython, PyPy, Stackless Python. Django на фоне Rails выглядит просто молнией, быстрый старт и прозрачность работы. Нет никакой магии, все понятно как работает от начала и до конца.

Третье, Django достаточно консервативный фреймворк. В него никогда не добавят какую-нибудь сомнительную фичу, как это бывает в Rails (например никому не нужный turbolinks). Скоро выходит версия 1.7. Где достаточно много плюшек действительно нужных.

Вам будут говорить про разветвление Python на версию 2 и 3. Что все плохо. Не верьте. Это все ерунда. В настоящее время большинство популярных библиотек уже давно на Python 3. Django, Flask уже давно. Мы все новые проекты начинаем на Python 3 и проблем никаких нет.

На счет NodeJS. Использовать можно, но... Неудобно. Переносимость кода client side < - > server side по факту равна менее 10%. Сейчас большинство используют NodeJS как платформу для запуска нужных тулз для сборки фронтэнда, например Grunt / Gulp, Bower и прочее. Конечно пакетный менеджер npm.

Надеюсь ответил на ваш вопрос.
Ответ написан
wkololo_4ever
@wkololo_4ever
Выбор естественно встал между четырьмя наиболее популярными языками : Ruby On Rails, Node.js, php, Python.

Но ведь ASP.NET топ 2 по популярности, особенно заграницей.
Ответ написан
Комментировать
Tyranron
@Tyranron
@Shetani безусловно прав. Я бы Вам не советовал полагаться на какой-то единственно верный язык, ведь они всего лишь инструменты. В одной конторе будут бэк писать на пайтоне, в другой на рельсах, в третьей бэк будет на php. Выбор может зависеть от многих факторов и, чаще всего, выбирать будете не Вы. Потому, по-хорошему, советую изучить все предложенные Вами варианты. И не надо бояться, что времени не хватит. Хватит. Много времени может занять изучение первого языка для бэка (так как надо будет въехать и прочувствовать как этот бэк работает) и второго (потому что нужно будет переосмыслить то, что Вы выучили в первом), а дальше пойдет по накатанной.
Тоже советую начать с рельс и руби, ибо не зря в тренде.
Потом советую подергать node.js, ибо однопоточность и асинхронность, а также, по желанию, фулл-стэк фреймворки (единый код на сервере и на клиенте - meteor и другие).
Дальше уже php и python для полноты картины.
Также советую добавить в список Go, Java/Scala и Erlang.
Ну и совсем уже на любителя - Haskell + Yesod...практической ценности в этом будет мало, но для понимания (а также расширения сознания и просветления) очень даже полезно. =)
Ответ написан
Комментировать
@Shetani
Программисты для своего проекта выберут то, на чем они пишут. И каждый посоветует свой фреймворк.
P.S. Сам за руби, тут как раз вебинар в воскресенье будет, может что-то для себя почерпнете.
Ответ написан
Если вы уже пишите FrontEnd, зачем изменять уже известным вам веб-технологиям?
Если вы верстаете, знакомы с JS и JQuery, препроцессорами, то не разумнее ли развиваться дальше в этом же направлении? Или вы стали гуру, таким же как Paul Irish?
Берите NodeJS и серверный JS, на западе это самые трендовые технологии на сегодняшний день, за год как раз расширите свои знания и сможете устроиться на стажировки, поработать в боевом режиме.
Это мой взгляд на вещи, но как говорится решать вам...
Ответ написан
@aimp-programming
Я бы тоже посоветовал посмотреть в сторону ASP.NET, раз вы решили уехать на запад.
Ответ написан
@xom9lk
У меня проекты на php (Yii) и ASP.NET MVC4.
Могу сказать, что сейчас сложно выступать в поддержку php.
.NET стремительно развивается, набор полезностей, замечательный C#, средства разработки и тестирования, литература.
Обычное интернет приложение на php вполне годно.
Но я работаю с финансами (обработка больших объемов данных), php проигрывает тут по всем показателям.
Так что добавляйте в свой список ASP.NET, убирайте php. Пробуйте и выбирайте.
По node.js - как аналог ASP.NET MVC4/RoR/Django он не годен. Но вполне кошерен как бэкенд для клиентского MVC, с вашими познаниями это неплохой вариант. Но есть одно но... Только некомпетентный аналитик допустит подобные проекты на обслуживание бизнеса. Ситуация будет меняться со временем.
Ответ написан
Комментировать
Предсказать из языков будет перспективен на сервере в ближайшие 3-7 лет, но если посмотреть на тренды, то всё более-менее понятно:
www.google.com/trends/explore#q=ruby+on+rails,yii,...
Ответ написан
Руби и php можно сразу откинуть(Хотя по php куча вакансий). Да и работы по руби и питону не так много. Да питон неплох, но работы по нему меньше чем по C# JS Java.
Лучше смотреть в сторону Java и C#, а именно spring mvc, asp.net mvc. Они популярны в энтерпрайзе.
Или развиваться во фронте и пробовать node.js. Ноду больше используют в соц сетях играх и прочем. Для интерпрайза она не подходит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы