Si JavaScript es malo, ¿por qué Node.js se considera bueno?

“JavaScript es malo” es una opinión, no un hecho. Es cierto que algunos programadores aborrecen JavaScript. Esos programadores probablemente no usan NodeJS.

También es cierto que JS tiene problemas. Está lejos de ser un lenguaje perfecto. Pero hay algunas ventajas significativas que motivan a las personas a usarlo en el lado del servidor.

  • JavaScript es muy popular. Mucha gente lo sabe. Eso significa que hay muchas bibliotecas y es más fácil contratar talentos.
  • JavaScript es semi-obligatorio en el lado del cliente. Usarlo en ambos lados puede permitir una mayor reutilización del código y reducir la capacitación.
  • Los intérpretes de JavaScript tienden a estar bastante optimizados en relación con otros lenguajes de tipo dinámico como Python.
  • Si bien JavaScript a menudo se considera un lenguaje mal diseñado, no es necesariamente el peor y algunos lo prefieren a lenguajes como PHP, que es un lenguaje del servidor muy popular.

El nodo en sí también tiene algunas ventajas.

  • npm es un excelente administrador de paquetes. Tiende a funcionar (incluso en Windows), mientras que muchos otros requieren muchos ajustes.
  • Creado desde la base para admitir servidores web de estilo asíncrono. Si bien puede crear este tipo de servidor en cualquier idioma, generalmente requiere bibliotecas especializadas.

Al final, nos guste o no, la popularidad y las necesidades comerciales a menudo dominan las preocupaciones sobre el diseño del lenguaje. Es por eso que la gente usa NodeJS en lugar de decir Haskell.

Pero, por supuesto, su popularidad puede no durar para siempre.

Creo que está confundiendo el javascript clásico con es6 aquí. Los js normales pueden considerarse “malos” debido a las devoluciones de llamada y las promesas y las llamadas asincrónicas, especialmente si está acostumbrado a escribir código en lenguajes como c / c ++, etc.

Pero con es6, escribir js es mucho más fácil y eso es lo que puede usar para crear aplicaciones Node. Pero esta no es la única razón por la que Node.js es “bueno”.

Para mí, la razón principal para elegir el nodo son los siguientes:

  1. npm (Administrador de paquetes de nodos). Increíblemente fácil y poderoso.
  2. Miles de bibliotecas / paquetes disponibles.
  3. Capacidad para desarrollar frontend y backend con el mismo lenguaje / plataforma (reaccionar y nodo)
  4. Comunidad muy servicial
  5. Muy buena documentación de la plataforma.

Dicen en bienes raíces que la ubicación es el rey. Un apartamento con sello postal en una bonita zona de Manhattan vale más que una mansión en medio de la nada.

En software, los efectos de red son el rey. Js por accidente de la historia entró en la planta baja de la web. Desde entonces, ha sido apenas lo suficientemente bueno como para no ser expulsado.

Una vez que te resignas al destino de estar encerrado en js en el cliente, es hora de dejar de pelear y comenzar a tratar de hacer que las cosas funcionen.

Node fue una respuesta a esa situación: también puede usar js en todas partes, entonces solo necesita un idioma y un conjunto de herramientas.

La gente ha mencionado las funciones npm y asíncronas. Node está bien allí, pero no es un líder de la industria en ningún sentido. Async en particular es de dudoso mérito: tiene algunas ventajas de operación / rendimiento, pero también reduce la legibilidad del código y puede hacer que las cosas sean más propensas a errores.

Para los principiantes, el estilo OO clásico de Java / C # o el scripting directo de PHP son probablemente más fáciles de aprender. No es que esté respaldando PHP en absoluto. Rails tiene mejores herramientas, diría que con mucho.

Node tiene muchas trampas: debe saber un poco acerca de los prototipos, cómo ‘esto’ está vinculado, cómo las promesas pueden tragarse excepciones o cómo administrar muchas devoluciones de llamada cuando se realizan operaciones relativamente comunes. Es un poco un costo de entrada, pero una vez que paga el costo, puede hacer las cosas.

Sin embargo, al igual que sus raíces, Node es popular y no es lo suficientemente malo como para dejar de serlo. No es lo mejor en nada, las cosas en las que es mejor no son realmente los problemas más importantes en el desarrollo web, pero las herramientas funcionan y puedes construir cosas con ellas si sabes lo que estás haciendo. Es famoso por ser famoso, se podría decir.

Soy un desarrollador JS de pila completa. ¿Quién dijo que JavaScript es malo? Tiene sus partes buenas y malas (JavaScript: The Good Parts) como cualquier otro idioma. Pero la mayoría de las ‘partes malas’ de JS están tomadas del hecho de que fue diseñado como un lenguaje de script simple, hoy en día es mucho más que eso. Está presente literalmente en todas partes del lado del cliente, del lado del servidor, chips y muchos más. TC 39 (comité técnico para Ecma Script – Ecma TC39) está tratando de estandarizar este lenguaje y está yendo bastante bien por ahora.

Tal vez algunas personas tienden a decir que JS está ‘perdonando demasiado’ porque es un lenguaje escrito dinámicamente, pero no creo que pueda tratarse como una debilidad de este lenguaje, es solo su paradigma.

Node también tiene sus detractores: La caída de la casa del nodo.

Node es una pieza de tecnología bastante impresionante, pero no la usaría simplemente porque JavaScript es un lenguaje de programación muy retrasado. Elegiría Ir sobre el nodo cualquier día de la semana. Go es un lenguaje fabuloso.

Además, vea la respuesta de Richard Kenneth Eng a ¿Qué tiene de malo amar JavaScript? Nunca entendí por qué no puedo usarlo para todo.

Para crear una respuesta que progrese, ¿por qué, en su opinión, JavaScript es malo? … y si se considera o no malo, si considera y presenta por qué está contemplando JavaScript y Node.js (para qué), entonces un mejor La respuesta podría ser creada.