Проблема «тормознутости» Ruby реальна в наше время?

Приветствую друзья ! Очень кратко опишу проблему :
Мы с коллегой решили написать игровой сервер на Ruby on Rails, уже начал работу как об этом узнали более опытные коллеги и не одобрили, ссылаясь на некоторые причины :
1) RoR медлителен, сервисы тормозят
2) Не предназначен для высоко-нагруженных проектов
3) На RoR не пишут игровые сервера ибо из-за медлительности, будут высокие задержки итп ...
- И посоветовали нам : Python+Django или Node.js !
Но я как бы привык к RoR, а Python я не знаю (node.js темболее) и не знаю что делать и как поступить ?
Правда ли что сейчас когда кругом стоят SSD, куча ОЗУ и многоядерные котлы, существует проблема производительности ? Или это давний миф про Ruby и сейчас это не актуально ? Или лучше перейти на Python !
Помогите коллеги ...
  • Вопрос задан
  • 3364 просмотра
Решения вопроса 1
2ord
@2ord
Скажем, логику игрового сервера можно реализовать в виде микро-сервисов на более легковесных фреймворках нежели Rails: Sinatra, Hanami и т.д. Самый простой вариант - использование JSON в качестве формата для входных/выходных данных.
Или же при помощи MessagePack (есть gem) можно обмениваться с различными микро-сервисами, которые могут быть реализованы на других языках.

В случае использования MessagePack (или аналогов) и микросервисов всегда можно впоследствии перейти на решения на других языках, если потребуется из-за узких мест в производительности.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Если у вас что-то жестко реал-таймовое, то все интепретируемое, тем более без JIT, отбрасываем и пишем узкие места на C/C++/Go. А пошаговое можно писать на чем угодно.
Ответ написан
Комментировать
Enapiuz
@Enapiuz
велосипедостроительное бюро
Что за игра будет?
Если делаете какую-нибудь просто браузерку без суровых потоков данных, синхронизаций положений и прочего реалтайма - то наверняка можно хоть на баше написать (если время девать некуда конечно).
Ответ написан
Комментировать
deadbyelpy
@deadbyelpy
веб-шмеб
Всегда выбирайте язык по уменьшению приоритета:
а) требования к тз (и такое бывает, но лучше переубедить)
б) тот, что больше всего знаком (если по душе)
в) тот, что больше нравится

Т.к. вероятно если вы хорошо разбираетесь в Ruby, то у вас займет меньше времени, и подводных камней будет меньше.
Нет, Ruby не медлителен, он просто не такой популярный. И да, если хочется чего-то нового и пошустрей посмотрите в сторону Erlang
Ответ написан
Комментировать
@Echoes93
Пфф, знаю человека, который работает на проекте на RoR'е с аудиторией > 100 млн пользователей (игра в фейсбуке). Так что по поводу плохой масштабируемости и медлительности RoR'a - наглое гонево. Да, у руби репутация языка стартапов, но это не мешает делать на нем высоконагруженные проекты. Просто подходы уже другие.
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
Игровые сервера бывают разные и трбования к производительности тоже отличаются.
Если у вас нет опыта построения аналогичных проектов - сделайте сначала прототип на языке, который лучше знаете. Получив этот опыт вы поймете на чем акцентировать внимание в конечном продукте, как следствие - стоит ли менять язык - тоже.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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