Почему не следует использовать Ruby для создания паука - PullRequest
6 голосов
/ 09 января 2010

В Эпизоде ​​78 подкаста Джоэла и Джеффа один из парней из Doctype / Litmus заявляет, что вы никогда не захотите построить паука в рубине. Кто-нибудь хотел бы угадать его аргументацию?

Ответы [ 4 ]

15 голосов
/ 09 января 2010

Насколько быстрым должен быть сканер? Это зависит от того, выполняете ли вы обход всей сети в сжатые сроки или собираете данные с нескольких десятков страниц на одном веб-сайте.

С помощью Ruby и библиотеки нокогири я могу прочитать эту страницу и проанализировать ее за 0,01 секунды. Используя xpath для извлечения данных из проанализированной страницы, я могу превратить все данные в специфичные для предметной области объекты за 0,16 секунды. Все 223 строки.

У меня все меньше и меньше проблем, когда имеют значение традиционные ограничения (процессор / память / диск). Это возраст изобилия. Там, где ресурсы не являются ограничением, не спрашивайте «что лучше для машины». Спросите «что лучше для человека?»

4 голосов
/ 12 января 2010

По-моему, это просто вопрос масштаба. Если вы пишете простой скребок для личного использования или просто что-то, что будет запускаться на одной машине пару раз в день, то вам следует выбрать что-то, что потребует меньше усилий при написании кода, усилий и обслуживания. Является ли это ruby ​​- это другой вопрос (я бы выбрал Groovy вместо Ruby для этой задачи => лучшая многопоточность + очень удобный синтаксический анализ XML). С другой стороны, если вы очищаете терабайты данных в день, то пропускная способность вашего приложения, вероятно, важнее, чем более короткое время разработки.

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

1 голос
/ 09 января 2010

Вы не получите желаемого результата от Ruby. Смотрите ссылку по ссылке: http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/

Несмотря на то, что подобные тесты производительности следует проходить с небольшим количеством соли, между Ruby и топовыми (по скорости) языками есть существенная разница.

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

0 голосов
/ 09 января 2010

Что сказал О.Г. Проще говоря, Ruby очень медленный, и если вы хотите сделать много за единицу времени, это неправильный выбор языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...