25 votos

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

He leído varios artículos que hablan sobre empresas como Google, Facebook y muchas otras que utilizan R para investigar. El otro escenario del que he leído es que las empresas utilizan R para prototipar una solución de análisis y luego la vuelven a implementar en otro lenguaje.

Estoy tratando de encontrar literatura sobre empresas que utilizan R para 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 recibe una respuesta de un script de R ejecutado en un servidor remoto. El hecho de que me esté costando encontrar informes de este tipo me hace preguntarme si es desaconsejable. ¿Si es así, por qué?

1 votos

Esta es una buena pregunta. Tengo una corazonada, pero no sé lo suficiente como para poder dar una respuesta concreta. Mi sospecha es que debido a que R se distribuye bajo la GPL, cualquier producto derivado que lo use debe ser también gratuito y de código abierto. Esto podría significar que las empresas que deseen obtener beneficios del software empresarial se alejen de R porque no podrían vender el producto.

3 votos

Solo si tu beneficio se basa en la venta del software, y aún así, algunas personas todavía regalan el software, como por ejemplo RStudio, cuyo código fuente está en github.

16voto

Jay Puntos 395

Sí lo es. Por ejemplo, puedes ver en esta página el maravilloso servidor RServe sin cabeza (por el miembro del núcleo de R, Simon Urbanek) el cual enumera estas implementaciones:

Algunos proyectos que usan Rserve:
   El Proyecto de la Red Dataverse   Phenyx                     Interfaz "J"
   Nexus BPM                       Taverna                    Bio7
   INTAMAP                         Screensaver HTS LIMS       CRISP
   WWARN

con enlaces en la página mencionada arriba.

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

3 votos

+1 para los vendedores. Di que estás interesado en comprar algo, y un buen número de vendedores te darán el SSN de su CEO.

1voto

Cameron Booth Puntos 3037

Normalmente, R no es tan rápido ya que es un lenguaje interpretado, lo que en promedio es muchas veces más lento que el código compilado equivalente. Si bien convertir tu programa a C, Fortran o Java requiere una inversión significativa, el código puede literalmente ejecutarse de 10 a 100 veces más rápido que una versión equivalente en R. Además, R tiene herramientas muy limitadas para manipular conjuntos de datos grandes, especialmente aquellos que requieren clusters para procesar o requieren hardware especial. Por otra parte, la mayoría de las implementaciones comerciales necesitan proporcionar interfaces de usuario e integrarse en marcos existentes, que suelen estar escritos en otros idiomas. Aunque podrías conectarte con el código R existente desde la mayoría de los lenguajes compilados (hay wrappers disponibles), descubrirías que tus rutinas numéricas básicas seguirían sin ser más rápidas que el código R original. Al final del día, R (al igual que Matlab) se utiliza principalmente para prototipar y/o probar ideas utilizando implementaciones existentes.

2 votos

(...)el código puede literalmente ejecutarse de 10 a 100 veces más rápido que una versión equivalente en R. No estoy de acuerdo. Casi todas las bibliotecas de R están escritas en C o Fortran. R funciona principalmente como un "pegamento" entre ellos, y su relativo bajo rendimiento no importa.

1 votos

No es cierto. Si bien la biblioteca central 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 en cuanto al rendimiento de los lenguajes interpretados frente a los compilados, pero hasta donde sé no hay ningún esfuerzo en esta línea en marcha para R (Python sí tiene un esfuerzo robusto: ver PyPy).

1 votos

Regularmente uso R para trabajar en matrices que son de 2 GB de tamaño.

0voto

MGOwen Puntos 122

Creo (pero esto se basa en anécdotas) que R tiende a ser utilizado más como un lenguaje de prototipado por las empresas que mencionas arriba. R sobresale en la tarea de desarrollar y probar múltiples modelos de manera rápida y efectiva. Sin embargo, no es adecuado para tareas de personalización ya que estas a menudo necesitan tener lugar mientras un usuario interactúa con un sitio web en particular y creo (de nuevo, esto es en su mayoría anécdota) que dichos modelos tienden a ser reescritos en un lenguaje compilado (Java, C, C++).

Dicho esto, buena pregunta y me encantaría que se me demostrara lo contrario.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X