DmitryShlyomin
@DmitryShlyomin
[спагетти-кодер]

Что изучать: Ruby или Node.js?

Хотелось бы подробнее услышать мнение знающих людей по поводу этих двух языков. Знаю, что сферы их применения немного разнятся, но всё же: что лучше выбрать?
Погуглив, вычитал, что плюсом Ruby является фреймворк RoR с множеством необходимых библиотек, тысячами написанных гемов (поправьте если что-то не так сказал), в то время как Node.js завязан на событиях и асинхронности( + знаком с js).
Лично мне кажется, что Node будет по перспективнее, но работа с сервером на низком уровне + отсутствие литературы на Великом и Могучем (английский на уровне, но на родном языке вчитываешься быстрее) немного отпугивают.

P.S. До этого разрабатывал на php.
  • Вопрос задан
  • 13560 просмотров
Решения вопроса 1
MarcusAurelius
@MarcusAurelius Куратор тега Node.js
автор Impress Application Server для Node.js
Берите ноду, на ней тоже уже все есть готовое в NPM, не меньше, чем на RoR, но не подсядьте только на "все из коробки", главное определиться для со стеком технологий и адхитектурой, это важнее, чем язык, сейчас разрабатывают больше даже на фреймворках, нежели на языках. Определитке задачи для себя, что Вы хотите решать на ноде, что писать, для чего использовать: обычные сайты или CMS, SPA-сайты сайты или SPA-приложения, Rich-приложения, адаптированные под мобильные или будете заниматься только backend и работать в команде с кем-то, кто будет писать frontend. Нужно выбирать все в комплексе, СУБД, фреймворк для браузера, серверную ОС, варианты хостинга. Я рекомендую такой стек: CentOS, Node.js, MongoDB / PostgreSQL, React. Какие ссылки советую:
1. Моя статья на Хабре - habrahabr.ru/post/204958
2. Мой ответ на вопрос по фреймворкам для ноды тут на Тостере - Подсоветуйте фреймворк для node?
3. Видео-уроки по node.js - learn.javascript.ru/nodejs-screencast
4. Про Impress - habrahabr.ru/post/247543
5. Разнообразные ответы по поводу выбора языка - Актуальный язык программирования
Ответ написан
Пригласить эксперта
Ответы на вопрос 9
@thepry
Ruby on rails, 1С разработчик
Удовольствие от языка тоже имеет значение. Мне, например, писать на руби намного приятнее, чем на js.
Ответ написан
Комментировать
mr_ffloyd
@mr_ffloyd
Я рубист и c нодой работал мало. Гораздо больше с клиентским js'ом. Мое мнение, что лучше ruby/RoR по следующим причинам:

1) Язык. Дизайн ruby превосходит js наголову, объективно. Просто зайдите на wtfjs.com и полистайте.

2) Ruby ближе к функциональным языкам. А именно функциональные парадигмы сейчас все более и более актуальны в виду их эффективности в решении задач связанных с распараллеливанием и распределением нагрузки. Как пример можно привести акторы, которые получили широкое распространение в последние годы.

2.5) Я не знаю ни одного человека успешно изучавшего haskell, который не смеялся бы над js. Может такие есть, но это редкие звери) Я это к тому, что полезнее уделять больше времени языкам, которые содержат в себе мощные и слаженные между собой идеи, вникать в эти идеи, развивать мозги. Посмотрите на Scala: мощнейший и довольно сложный язык, но изучая его просто для себя я заметил, что стал лучше писать на ruby и c/c++. Js мне такого блага не давал.

3) В RoR среде средний уровень качества кода выше. Это мнение я слышу часто и склоняюсь к тому, что это правда. Порог входа в js сильно ниже порога входа в ruby, RoR старше и матёрее.

4) NPM догнал rubygems количеством, но не качеством.

5) Для большинства сайтов вполне хватит rails-based-инфраструктуры.

6) Насчет перспективности. Технологии стремительно развиваются, но я практически уверен, что RoR будет на пике еще лет 3-5 минимум. Что будет потом - я не знаю. Но поработав с RoR вы научитесь многому у него и у самого языка. А если хочется поработать на низком уровне с сервером - я бы рекомендовал Scala/Akka, Erlang/OTP, go, clojure еще можно. После них реши вы писать код на node.js - он будет красивее и чище нежели без подобного опыта.

In suma: RoR будет сложнее, но полезнее для мозгов. Перспективно уметь функциональщину. Главная и огромная беда node.js - в языке. Как идея он хорош.

А вообще - главное чтобы самому хорошо было. Попробуйте ruby как язык - может несмотря на все вышесказанное он вам банально придется не по душе)
Ответ написан
ms-dred
@ms-dred
Вечно что то не то и что то не так...
ПС. Rubu ни разу не юзал, только слышал про неё.

Я тоже раньше на php писал, полностью перешел на node.js, знаний в котором до сих пор маловато, но хватает для запуска проектов на node, и вполне отлично работают, без сбоев. Изучаю где то 6-8 месяцев, были костыли, переписываю код по мере познаний, учусь короче на своих ошибках и правлю их. Писать на ноде интереснее, но сложнее чем на PHP, тут все упирается в знания js и знаний в возможностях node.js. JS до этого знал не особо, аля менюшку сделать, POST запрос послать, в общем скромно все, набираюсь знаниями до сих пор.

Работает нода значительно быстрее PHP, сравнивал пересаженный проект на ноду с php, скорость отдачи контента увеличилась более чем в 2 раза, что уже говорит о многом. На PHP в данный момент нет никакого желания писать что либо, потерял к нему интерес совсем.

Радует количество различных модулей которые как раз таки и помогают работать с node.js, сейчас опять пишу проект и вновь на node.js, очень сложный проект, но node.js + mongodb творят чудеса =) Работает неимоверно быстро при очень "жестких" выборках.
Ответ написан
Комментировать
anderles
@anderles
Software Architect at Zelpex Media Group
Я затятый php-шник, делаю проекты свыше 10 лет. Перепробовал кучу всего что есть в php мире. Сейчас делаю большие соц. проекты с помощью zf2 и laravel framework. В команде в одном из последних проектов делаем real time приложение(в основном обработка видео и картинок). После тестового приложения на php поняли что что то не то и как то туговато все здесь происходит(Использовали MongoDb, Ratchet, RabbitMq, Zf2, Laravel + многопоточность) (может мы как то не так оптимизировали весь свой php стек - но было чувство что сделали огромного зверя и не поворотливого). Начали смотреть в сторону nodejs и go. После всяческих тестовых прототипов было решено двигаться в сторону nodejs. Go в некоторых случаях даже лучше чем Nodejs - для меня в первую очередь - это то что он компилируем. Ну и не на много но быстрее! Так что если есть время тогда лучше посмотреть в сторону Go Lang. Некоторые здесь говорили что для большинства сайтов подойдет rails-based инфраструктура - Я с этим категорически не согласен(Извините, но это мое ИМХО). Для большинства сайтов как раз таки подходит php+js-based инфраструктура. Это также подтверждает количество разных фреймворков и библиотек сделанных на этих двух языках. Может я плохо искал но я не видел на фриланс биржах такое количество запросов у руби как в php или может кто то делает фронтенд на руби и без js? Почему мы в команде сделали упор все таки на nodejs? Все просто потому что я и почти все из моей команды считаем что эти два языка не то чтобы за 5 лет не выйдут из пика(как говорилось выше про руби и RoR), а они еще будут и 20 лет развиваться. И сугубо мое мнение что Java Script вообще не умрет никогда )). Сейчас nodejs отлично справляется со своей задачей - а это обрабатывать запросы с фронтенда создание видео и фото файлов или даже целых куч стеков таких файлов. Не обошлось и без php в нашем случае он работает с консольными демонами. А что можно посоветовать так это то что нужно смотреть на стабильность и рост как языка так и целых стеков. Что не нравится в nodejs так это то что код постепенно может превратиться в лапшу, но такое может быть и в php :). Ну и для разработчика вообще хорошо знать не только интерпретируемые языки но и компилируемые. Спасибо за внимание!
Ответ написан
Комментировать
Вы что, любитель экзотики??? Чем вам PHP не угодил? Он прекрасно подходит для этих задач.
Ответ написан
ilyaerin
@ilyaerin
ruby разработчик
Все зависит от ваших задач. Каждый инструмент под свою задачу.
У нас в проектах используются оба инструмента: и RoR, и NodeJS. Код на руби получается более элегантным и приятным, его быстрее писать и поддерживать.

До перехода на руби несколько лет писал на php, при этом пользовался кучей велосипедов, и разных библиотек. На рельсах очень многие вещи стандартизированы и доступны из коробки. Разрабатывая на RoR чувствуешь себя более счатсливым, чем при разработке на php фреймворке / nodejs. Кстати, если хорошо знаете php, то вторая версия yii — очень неплоха!
Ответ написан
Комментировать
h0001
@h0001
RoR / React Developer @ Shakacode
P.S. До этого разрабатывал на php.

А сейчас не разрабатываете?

Ради прикола начал бы с Nodejs
Ответ написан
Комментировать
losaped
@losaped
Пьяный самурай
По поводу rails-based можно и на node.js. я так же как и вы столкнулся, как и Вы с подобным выбором. Поковырялся в рельсах, потом сеиья-работа, не осилил. Хотя довольно интересно. Потом ради мотивации домашних прошел платный курс по js. Полез искать похожее на ror в ноде и наткнулся на sails. На моем уровне понимания ror Sails показался довольно похожим. Так что гляньте
Ответ написан
Комментировать
RedFast
@RedFast
NodeJS -BOSS
насчёт Ruby, Alexandrescu (один из лучших спецов по C++ и автор D) сказал так
"Нет языка, который не работал бы быстрее в 50 раз чем Ruby... включая сам Ruby"
Сейчас Конечно прогресс растет) И все болеют за скорость!!! А если учесть асинхронность то мне кажется Руби нельзя сравнивать с Нодой ващпе никак!
Но! Руби по своему харош в плане красоты и аккуратности! Увы для меня скорость важнее(
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы