Para aprender algo nuevo que es ilimitado e ilimitado como el salvaje oeste, es difícil vencer a Node. Con más de 350k módulos en el repositorio principal, es como un sueño de Apache Commons Logging hecho realidad.
Para un mayor nivel de previsibilidad en el proyecto de desarrollo, Java EE o Spring (o alguna combinación) estaría bien.
La escalabilidad está en el diseño; no en la elección del idioma / marco. Puede escalar fácilmente a millones de usuarios con cualquiera de los enfoques que menciona, siempre y cuando tenga un diseño cuidadoso incorporado. También es notablemente fácil construir un sistema que no escale; Este es el resultado predeterminado si no diseña explícitamente para escalabilidad. En el caso de Node, hace que sea MUY fácil (por ejemplo, una línea de código de bloqueo) detener un servidor completo, y un servidor por usuario puede ser costoso.
- ¿Qué hace que una aplicación sea adictiva?
- ¿Cuáles son buenos ejemplos de diseño receptivo en aplicaciones web complejas?
- ¿Qué es la lista de verificación de pruebas de penetración de aplicaciones web?
- ¿Cuál es la aplicación más compleja hecha con WaveMaker?
- ¿Qué es una buena aplicación para administrar el calendario de contenido de un sitio web?
Con respecto a la escalabilidad, Node y Java EE / Spring son muy diferentes. El nodo escala asumiendo que todo es asíncrono. Todo. Eso obliga al desarrollador a dividir su trabajo en etapas, donde cada etapa comienza como una devolución de llamada y termina como una llamada a algo que teóricamente podría bloquear, y por lo tanto es una llamada asíncrona, y por lo tanto requiere una devolución de llamada (básicamente, un punto de continuación o punto de finalización) que se le pasará. En otras palabras, todo es una continuación, ¡todo!
Para cualquier persona que trabajó en la programación de Windows 3.x de 16 bits, Node es fácil, porque las mismas cosas que tenía que hacer en Windows, debe hacerlo en Node: multitarea cooperativa. La diferencia es que era terriblemente complicado hacerlo en Windows, pero JavaScript como lenguaje hace que sea notablemente simple hacerlo en Node (porque todo es una función en JavaScript). ¡También significa que puede ser notablemente desordenado!
Personalmente no me gusta JavaScript (el lenguaje), pero no me gusta con más respeto y admiración que la mayoría de las cosas que no me gustan. El motor Google V8 (lo que realmente hace el arduo trabajo de ejecutar Node, que es comparable al Hotspot JVM en muchos aspectos) es una pieza brillante de ingeniería, que ha generado un aumento de rendimiento de dos órdenes de magnitud en comparación los motores de Internet Explorer / Mozilla Firefox del día.