Permítanme presentar esto con la razón más importante por la que debería elegir a favor o en contra de algo: su comodidad personal con el lenguaje y los marcos disponibles. El objetivo de Node.js, Django, Tornado, CodeIgniter, CakePHP o lo que sea es ser productivo. Node.js puede ser adecuado para usted, puede que no. La forma más fácil de averiguarlo es intentar utilizarlo para un proyecto. Pensé que era genial cuando me zambullí por primera vez y después de intentar realmente lograr algo con eso, determiné que era más fácil para mí volver a usar Python Tornado. Eso no se debe a que Python y Tornado sean mejores que Javascript y Node.js, sino porque pude lograr lo que quería lograr en menos tiempo.
Ahora aquí hay algunos elementos en los que pensar al considerar Node.js.
– la programación del lado del servidor y la programación del navegador no son lo mismo. Hay diferentes desafíos que enfrenta. Un beneficio anunciado para node.js es poder usar javascript tanto como el front-end y el back-end. Eso es un beneficio, pero debe comprender que las metodologías de programación no son lo mismo.
- ¿Es posible crear un sitio que no pueda ser intrusivo?
- ¿Debo seguir subcontratando el desarrollo de mi sitio web?
- ¿Cuál es el costo mínimo de hacer un nuevo sitio web en el mercado actual?
- En la lógica modal, ¿cómo se determina si un operador es referencialmente opaco o transparente?
- ¿Qué opinas sobre el futuro de Dart?
– Node.js es nuevo. Por lo tanto, no hay muchos marcos disponibles. La distribución legítimamente evita construir marcos en ella, pero eso significa que usted está solo para encontrar y usar uno. Lo que descubrí cuando hice un intento serio de usar Node.js fue que los marcos que estaban disponibles en ese momento parecían querer modelar después de RoR, en lo que no tenía experiencia, por lo que había más de una curva de aprendizaje involucrada.
– Ha surgido el problema de que V8 limita la cantidad de memoria disponible para ejecutar, ¿creo que ahora es 1.9GB? Muchos modelos de programación incluso controlados se ejecutan en un solo núcleo, por lo que puede escalar horizontalmente balanceando la carga en varias instancias en la misma máquina, cada una utilizando un solo núcleo. Sin embargo, cuando usa otros idiomas no tiene ningún tipo de límite de memoria. El punto en el que esto se convierte en un problema es probablemente una carga más alta que muchas aplicaciones nuevas, pero imagino que bajo una carga extrema esto podría convertirse en una pared de ladrillos. Como administrador de sistemas, diría que solo necesita equilibrar mejor los núcleos y la memoria en el hardware físico. Virtualizaiton también podría ayudar aquí. No es un problema insuperable en absoluto, solo uno que podría requerir pensamiento. Me prepararía desde el principio en lugar de esperar a que se convierta en un problema más tarde. Entender cómo escalar su aplicación antes de tener que escalarla es una buena práctica de todos modos.