¿Es R viable para el código de producción (desplegado)?

25

He leído varios artículos que hablan sobre compañías como Google, Facebook y muchos otros que usan R para la investigación. El otro escenario sobre el que he leído es el de las compañías que usan R para crear prototipos de una solución analítica y luego volver a implementarla en otro idioma.

Estoy tratando de encontrar literatura sobre compañías que usan R para el código de análisis de producción real. Un caso de uso podría ser un sistema de recomendación con el que el usuario interactúa a través de una página web que obtiene una respuesta de un script R ejecutado en un servidor remoto. El hecho de que tenga problemas para encontrar dichos informes me hace preguntarme si no es aconsejable. Si es así, ¿por qué?

gotitas
fuente
1
Esta es una buena pregunta. Tengo el presentimiento, pero no sé lo suficiente como para hacer de esto una respuesta real. Mi sospecha es que debido a que R se distribuye bajo la GPL, cualquier producto derivado que lo use también debe ser gratuito y de código abierto. Esto puede significar que las empresas que deseen obtener ganancias del software empresarial se alejarán de R porque no podrán vender el producto.
gregmacfarlane
3
Solo si su beneficio se basa en la venta del software, e incluso entonces, algunas personas todavía regalan el software como, por ejemplo, RStudio cuyo código fuente está en github.
Dirk Eddelbuettel

Respuestas:

16

Sí lo es. Mire, por ejemplo, en esta página la maravillosa instancia de servidor RServe R sin cabeza (por el miembro de R Core Simon Urbanek) que enumera estas implementaciones:

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

con enlaces en la página mencionada anteriormente.

La "industria" tiende a ser más cautelosa con los detalles que la academia, por lo que será difícil encontrar declaraciones "oficiales". Pero proveedores como Revolution Analytics u Oracle envían R y sus vendedores pueden tener historias para usted ...

Dirk Eddelbuettel
fuente
3
+1 para vendedores. Digamos que está interesado en comprar algo, y un buen número de vendedores entregará el SSN de su CEO.
Fomite
1

Por lo general, no como R es un lenguaje interpretado, que en promedio es muchas veces más lento que el código compilado equivalente. Si bien la conversión de su programa a C, Fortran o Java requiere una inversión significativa, el código literalmente puede ejecutarse 10-100X más rápido que una versión R equivalente. Además, R tiene herramientas muy limitadas para manipular grandes conjuntos de datos, especialmente aquellos que requieren clusters para procesar o requieren hardware especial. Además, la mayoría de las implementaciones comerciales deben proporcionar interfaces de usuario y ajustarse a los marcos existentes, que generalmente están escritos en otros idiomas. Si bien podría interactuar con el código R existente de la mayoría de los lenguajes compilados (hay envoltorios disponibles), encontrará que sus rutinas numéricas centrales aún no serían más rápidas que el código R original. Al final del día,

usuario1337732
fuente
2
> (...) el código literalmente puede ejecutarse 10-100X más rápido que una versión R equivalente No estoy de acuerdo. Casi todas las bibliotecas R están escritas en C o Fortran. El R funciona principalmente como un "pegamento" entre ellos, y su rendimiento relativamente bajo no cuenta.
Adam Ryczkowski
1
No es verdad. Si bien la biblioteca principal puede estar escrita en C, la mayoría de los algoritmos de alto nivel en R están escritos en R. La optimización JIT está cambiando las reglas con respecto al rendimiento de los idiomas interpretados en comparación con los lenguajes compilados, pero hasta donde yo sé, no hay ningún esfuerzo. estas líneas en curso para R (Python tiene un esfuerzo robusto: ver PyPy).
usuario1337732
1
Regularmente uso R para trabajar en matrices de 2 GB de tamaño.
Jan Galkowski
0

Creo (pero esto se basa en una anécdota) que R tiende a ser utilizado más como un lenguaje de creación de prototipos por las empresas que nombras arriba. R sobresale en la tarea de desarrollar y probar múltiples modelos de manera rápida y efectiva. Sin embargo, no es una buena opción para las tareas de personalización, ya que a menudo deben realizarse cuando un usuario interactúa con un sitio web en particular y creo (nuevamente, esto es principalmente una anécdota) que dichos modelos tienden a reescribirse en un lenguaje compilado (Java, C, C ++).

Dicho esto, es una buena pregunta y me encantaría que me demuestren lo contrario.

richiemorrisroe
fuente