¿Puedo escribir un backend complejo usando R?

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.

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.

Generalmente puede usar cualquier lenguaje para construir cualquier niño si la aplicación.

¿Es una buena idea?

Probablemente no. Si es complejo y necesitará mantenimiento y mejoras, tendrá un grupo muy limitado de solicitantes para el trabajo, simplemente por la elección del idioma.

More Interesting

¿Qué tan difícil es pasar de ser un desarrollador front-end a back end?

¿Qué necesito saber sobre el desarrollo de back-end para admitir un nuevo inicio?

¿Qué tipo de habilidades de desarrollo de back-end debe conocer un desarrollador de front-end para comunicarse mejor con los chicos de back-end?

¿Cuál es más difícil de aprender, desarrollo front-end o desarrollo back-end?

¿Por qué los desarrolladores frontend a veces desprecian a los desarrolladores de back-end y por qué algunas personas piensan que la interfaz de usuario es más fácil que back-end?

¿Qué tecnologías elegirás para implementar el backend para una aplicación web escalable hoy?

Si tuviera que crear una aplicación web que pueda mezclar 2 archivos de audio y presentarlos para descargar, ¿cuál es el mejor lenguaje de fondo para usar?

¿Debería desarrollarse el backend de nuestra aplicación móvil en Ruby o Python?

¿Qué son las operaciones de backend?

¿Por qué Twitter eligió Scala como su idioma principal cuando reescribió el back-end para abordar los desafíos de escalabilidad?

Apesto en el diseño de la interfaz de usuario, pero me siento bastante cómodo en el desarrollo de back-end para aplicaciones móviles. ¿Estoy condenado como desarrollador móvil?

Si el front-end de mi aplicación web es síncrono, ¿ayuda tener un back-end de microservicios asíncronos?

¿Necesitas un backend con Apache Cordova?

Entre los desarrolladores front-end y back-end, ¿qué conjuntos de habilidades son más importantes para uno que para el otro?

¿Cuál es la diferencia entre el front end y el back end de la cadena de suministro?