Sí, con OpenCPU puedes escribir backend bastante complejo. Creé un sistema de informes avanzado basado completamente en R, incluida la autorización de los usuarios a través de Active Directory.
La pregunta es: ¿a qué costo? ¿Por qué necesita hacer esto en R, en lugar de en ASP.NET, Java o Python?
Hay un buen escenario: cuando necesita realizar un cálculo estadístico avanzado con R y desea minimizar la sobrecarga introducida por el lenguaje “host” Cualquier lenguaje de programación introducirá la sobrecarga en los procesos de R.
- ¿Por qué la mayoría de las aplicaciones a gran escala se desarrollan en Symfony?
- ¿Está mal especializarse solo en el desarrollo de backend?
- ¿Qué motor de chat de fondo deberíamos usar para nuestro chat?
- Como desarrollador web front-end, ¿qué entradas / artefactos espera recibir de la función de desarrollador web back-end?
- ¿Por qué casi todos los bootcamps enseñan Ruby on Rails y no PHP para la programación de back-end?
OpenCPU minimiza esto mucho, pero a un costo:
- la aplicación debe estar sin estado (sin “enrutamiento” en el servidor),
- toda la lógica de la GUI se implementará en JavaScript
- debe preocuparse por la autorización de los usuarios,
- El código avanzado, que normalmente se escribiría de manera orientada a objetos, se volverá cada vez más complicado (puede escribir OOP en R, pero es mucho menos conveniente que, por ejemplo, en C #).
- la depuración en el servidor es bastante dolorosa, debe recopilar buenas herramientas y recordar poner “imprimir” (impulsado por algún if-else y un parámetro para desactivarlas)
- El proceso R requiere algo de memoria RAM: aproximadamente 30–40 MB por proceso puro. Cuantos más paquetes cargue, más datos leerá, mayor será el proceso. Traduzca eso al número de usuarios que trabajan simultáneamente (ejecutando el proceso al mismo tiempo, superpuestos): 100 usuarios x 100MB = 10 000 MB = 10 GB de RAM. Sí, puede activar el almacenamiento en caché, el equilibrio de carga, pero aún así, debe proporcionar suficiente memoria para manejar eso.