¿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.

More Interesting

¿Qué es diferente entre un desarrollador front y back end? ¿Estos términos se refieren tanto al desarrollo web como al desarrollo de software?

¿Qué es mejor para el desarrollo web de backend: Node.js o Django?

¿Es obligatorio aprender ES6 para ReactJS? ¿ReactJS es bueno para el desarrollo tanto back-end como front-end? ¿Cuál debería ser el proceso paso a paso de aprenderlo para alguien que acaba de usar JavaScript para DOM?

¿Cuál es la mejor manera de conectar Java a mi backend Node.js?

¿Qué es el CMS, o el back-end, parte de Quora?

¿Puedo escribir un backend complejo usando R?

Un desarrollador de backend dijo que el desarrollo frontend es tedioso y tiene menos valor técnico. ¿Qué piensas?

¿Qué opinas sobre elegir Java EE como backend?

Al crear un sitio web, ¿debería comenzar a codificar el back-end y luego pasar a diseñar el front-end o lo contrario?

He estado desempleado durante casi 1 año, estoy aprendiendo Go y quiero convertirme en desarrollador de backend, ¿qué debo hacer para conseguir un trabajo?

¿Qué puede construir un desarrollador front-end y back-end en solo 2 semanas o un mes?

Quiero ser un desarrollador de Java. Estoy confundido con las tecnologías de desarrollo front-end y back-end. ¿Cuál debo elegir para ser desarrollador de Java?

¿Es seguro decir que el desarrollo web front-end es más probable que le consiga un trabajo, pero el desarrollo back-end creativo es donde está el dinero real?

¿Necesito aprender el ajuste de la base de datos, el fragmentación y la configuración de la infraestructura para convertirme en un desarrollador de back-end?

Cómo administrar el back-end de un sitio web