¿Cuáles son las ventajas y desventajas de usar Javascript en el back-end?

Llegaré a las ventajas parte más adelante en la respuesta. Primero déjame responder la parte de desventajas.

Creo que cuando preguntas sobre las desventajas de usar cualquier idioma, tiene más que ver con el entorno en el que se ejecutan las aplicaciones que con un lenguaje en sí mismo, y también es válido para Javascript. Aquí hay algunas desventajas:

  • La mayoría de las veces, cuando desea escribir servicios en Javascript, sus servicios se ejecutarán en un entorno de nodo que es de un solo subproceso y tiene un modelo de E / S sin bloqueo. Por lo tanto, es el más adecuado para las aplicaciones que necesitan mucha IO; se escala mejor en ese caso. Bueno, entonces, algunas de las desventajas obvias no serían capaces de escribir aplicaciones / servicios que requieren mucha CPU, como el procesamiento de imágenes, la codificación de video, etc. En ese caso, no se escalará.
  • Aparte de esto, me gustaría mencionar una cosa, que podría no ser una desventaja, pero la falta de la mejor solución posible disponible para aliviar el problema en Javascript, es el “estilo de paso de continuación” que hace que el código sea desordenado y difícil de mantener. Aunque Javascript tiene promesas, generadores, etc., no se supone que sean las mejores soluciones disponibles. No estaría convencido a menos que haya un azúcar sintáctico muy simple que se parezca tanto al paradigma de programación sincrónica.
  • Falta de utilidades estandarizadas que se pueden aprovechar ampliamente durante el diseño e implementación de servicios de back-end.

Algunas de las ventajas donde Javascript / Node realmente sobresale son:

  • Creación de API JSON escalables que se ajustan a otros servicios como otros servicios web, bases de datos, etc. Esto se debe al modelo de E / S asíncrono sin bloqueo proporcionado por Node.
  • Soporte para “streams” que es una característica muy útil.

Por lo tanto, es una cuestión de tipo de aplicación que está intentando construir, si desea utilizar Javascript para los servicios de fondo.

No piense que hay algunas grandes desventajas de usar JS para el backend.
Es práctico, fácil de configurar y personalizar.

El único problema que veo, con JS backend podría ser usarlo para empresas.

No piense que sería una gran idea, por lo general, para ese tipo de aplicaciones de grandes empresas con mucha lógica, están utilizando JAVA, por ejemplo.