Является ли R жизнеспособным для производственного (развернутого) кода

25

Я прочитал ряд статей, в которых говорится о таких компаниях, как Google, Facebook и многих других, использующих R для исследований. Другой сценарий, о котором я читал, - это компании, использующие R для создания прототипа аналитического решения, а затем повторного внедрения его на другом языке.

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

drobs
источник
1
Это хороший вопрос. У меня есть догадка, но я не знаю достаточно, чтобы сделать это фактическим ответом. Я подозреваю, что, поскольку R распространяется по лицензии GPL, любые производные продукты, использующие его, должны быть бесплатными и с открытым исходным кодом. Это может означать, что компании, желающие получить прибыль от корпоративного программного обеспечения, будут уклоняться от R, потому что они не смогут продать продукт.
gregmacfarlane
3
Только если ваша прибыль основана на продаже программного обеспечения - и даже тогда, некоторые люди все еще отдают программное обеспечение как, например, RStudio, исходный код которого находится на github.
Дирк Эддельбюттель

Ответы:

16

Да, это. Посмотрите, например, на эту страницу замечательный безголовый экземпляр сервера RServe R (от члена R Core Саймона Урбанека), который перечисляет эти развертывания:

Some projects using Rserve:
   The Dataverse Network Project   Phenyx                     "J" interface
   Nexus BPM                       Taverna                    Bio7
   INTAMAP                         Screensaver HTS LIMS       CRISP
   WWARN

со ссылками на странице, указанной выше.

«Промышленность», как правило, более осторожна в деталях, чем научные круги, поэтому вам будет сложно найти «официальные» заявления. Но у таких поставщиков, как Revolution Analytics или Oracle ship R, и у их продавцов могут быть истории для вас ...

Дирк Эддельбюттель
источник
3
+1 для продавцов. Скажем, вы заинтересованы в покупке чего-либо, и достаточное количество продавцов выдаст SSN своего генерального директора.
Fomite
1

Обычно нет, поскольку R - интерпретируемый язык, который в среднем во много раз медленнее, чем эквивалентный скомпилированный код. Хотя преобразование вашей программы в C, Fortran или Java требует значительных инвестиций, код может в буквальном смысле работать в 10-100 раз быстрее, чем эквивалентная версия R. Кроме того, R имеет очень ограниченные инструменты для работы с большими наборами данных, особенно те, которые требуют обработки кластеров или требуют специального оборудования. Более того, большинство коммерческих реализаций должны предоставлять пользовательские интерфейсы и соответствовать существующим платформам, которые обычно написаны на других языках. Хотя вы можете взаимодействовать с существующим R-кодом из большинства скомпилированных языков (есть обертки), вы обнаружите, что ваши основные числовые подпрограммы все равно не будут работать быстрее, чем исходный R-код. В конце дня,

user1337732
источник
2
> (...) код может буквально работать в 10-100 раз быстрее, чем эквивалентная версия R, я не согласен. Почти все библиотеки R написаны на C или Fortran. R работает в основном как «клей» между ними, и его относительная низкая производительность не считается.
Адам Рычковски
1
Не правда. Хотя базовая библиотека может быть написана на C, большинство алгоритмов высокого уровня на R написаны на R. Оптимизация JIT меняет правила в отношении производительности интерпретируемых языков по сравнению со скомпилированными языками, но, насколько я знаю, никаких усилий в этом направлении не предпринимается. эти строки находятся в стадии разработки для R (Python действительно приложил немало усилий: см. PyPy).
user1337732
1
Я регулярно использую R для работы с матрицами размером 2 ГБ.
Ян Галковски,
0

Я полагаю (но это основано на анекдоте), что R имеет тенденцию использоваться в качестве языка прототипирования компаниями, которые вы назвали выше. R отлично справляется с задачей быстрой и эффективной разработки и тестирования нескольких моделей. Однако, это не очень подходит для задач персонализации, так как они часто должны выполняться, когда пользователь взаимодействует с определенным веб-сайтом, и я считаю (опять же, это в основном анекдот), что такие модели, как правило, переписываются на скомпилированном языке. (Java, C, C ++).

Это, как говорится, хороший вопрос, и я хотел бы оказаться неправым в этом.

richiemorrisroe
источник