2009-10-17 4 views
12

Ruby - отличный язык. Это быстро и гибко, и напоминает мне много Python, о котором я тоже очень люблю.Каковы реальные проблемы с Ruby?

Ruby также очень популярен и существует уже несколько лет. Теперь, когда есть какие-то проекты «реального мира» и «рельсы-приложения», мой вопрос таков: в чем проблемы с Ruby? Каковы вещи, которые не делают особенно хорошо? Существуют ли какие-либо другие продукты или технологии, с которыми особенно сложно справляться при интеграции? Прежде чем использовать Ruby для критически важных приложений, какие вещи должны заставить разработчиков делать паузу и проявлять осторожность?

Кроме того, кто-нибудь скомпилировал список (блог-спам или иное) некоторых основных ошибок разработки Ruby и как смягчить эти риски?

EDIT:

К «реальному миру» Я имею в виду мир бизнеса, в отличии от академического мира, где нет бюджетов и сроков.

+2

Что означает «реальный мир» в заголовке вопроса? Какое различие вы делаете? Есть ли какой-то «мир фантазий», где у Руби есть проблемы? Что означает «реальный мир»? Пожалуйста, определите этот термин. –

+1

Рубин быстро? По моему опыту это было заметно медленнее, чем python и tcl. –

+1

Хм. Я работаю в академическом мире, и у нас очень много реальных бюджетов и сроков. Я не уверен, где вы понимаете, что академический мир этого не делает. –

ответ

0

Ruby - интерпретируемый язык, поэтому он может быть в 50 раз медленнее исполняемого кода, чем скомпилированные языки Just-In-Time, такие как Java и C# (на основе тестов, которые я видел). Является ли это проблемой, зависит от работы самого сайта, так как большинство сайтов, как правило, ограничены гораздо большей пропускной способностью и временем базы данных, чем по времени процессора.

+0

Даже в то время, когда вы опубликовали это, это было неточно. Кажется, вы описываете MRI (Matz Ruby Interpreter), который используется в качестве стандарта для других, чтобы создать совместимую реализацию. JRuby и Rubinius существовали во время вашего поста; и оба используют JIT-компиляцию. – bigtunacan

2

Рубин не быстрый. У него есть другие качества, но если ваш процессор является каким-то узким местом (что во многих веб-папках на самом деле не так), Ruby не является подходящим инструментом. Нынешний «стандартный» Ruby даже не компилируется в байт-код (например, Python, например), но вместо этого интерпретирует AST, что, вероятно, замедляет рост на стадионе 20-100. Однако, вероятно, это должно измениться (или, по крайней мере, улучшить) с Ruby 1.9. И JRuby, который основан на JVM, как вы точно знаете.

1

Если производительность Ruby оставляет желать лучшего в вашем конкретном случае, я рекомендую вам взглянуть на JRuby. Он позволяет вам скомпилировать код Ruby Ruby для JVM-байт-кода в стиле JIT или AOT и предоставляет доступ к преимуществам параллелизма Java и отличным серверам приложений.

+0

+1 для обозначения параллелизма – DaveParillo

1

Скорость Руби не является главной проблемой. Самая большая проблема заключается в том, что он однопоточный. Предложение Макса хорошее. JRuby разрешает параллелизм.

+0

Или используется только одно ядро ​​процессора. –

Смежные вопросы