NodeJS tiene un modelo de código asíncrono controlado por eventos. Esto significa:
- Escalabilidad mucho mejor (hasta 50 veces el número de conexiones simultáneas en un servidor). No me importa lo “costosos” que sean los programadores. Si necesita 50 veces más servidores, sentirá la diferencia.
- Las conexiones en tiempo real al cliente a través de WebSockets no agregan una sobrecarga significativa al servidor. Aproximadamente 20k de RAM por conexión, más el tiempo real del servidor utilizado cuando necesita procesar datos. De lo contrario, solo espera a la red.
- Si está utilizando TypeScript, puede usar async / await, lo que significa que puede escribir código que sea asíncrono como si fuera síncrono. Esto es enorme: significa que puede escribir código como lo haría normalmente, agregando palabras clave aquí y allá para obtener resultados de sitios web o una base de datos, mientras el servidor todavía está funcionando a toda velocidad.
NodeJS está basado en JavaScript y le permite construir sitios web isomórficos / universales.
- Isomorphic, o representación del lado del servidor, le brinda páginas web de carga más rápida que aún tienen todas las características dinámicas que brindan los marcos modernos como React o Angular 2.
- En inglés: si tiene un sitio de Angular 2, normalmente la primera página se descarga como una página de carga en blanco y luego se representa en el cliente. Con la representación del lado del servidor, el mismo código (JavaScript) que representaría la página en el cliente representa la página en el servidor. Por lo tanto, la página aparece de inmediato, pero conserva todos los enlaces dinámicos que hacen que los sitios modernos de una sola página sean tan útiles.
- Google ahora clasifica los sitios web más rápidos en una posición más alta. Además de hacer que sus usuarios, especialmente los usuarios de dispositivos móviles, sean mucho más felices.
NodeJS puede codificarse con TypeScript.
- ¿Se necesita el código fuente para rastrear el tráfico móvil para un sitio web receptivo?
- ¿Cómo deberían las cuentas de administrador en un sitio web diferir de las cuentas de usuario?
- ¿Puedo poner un menú de wordpress como contenido de la página?
- ¿Cuál es la diferencia entre iniciar sitios web y comenzar sitios web usando WP?
- ¿Por qué debería uno evitar el uso excesivo de redireccionamientos 301?
- La seguridad de tipos [1] ha más que duplicado mi productividad, y ya era un desarrollador rápido.
- El mejor error es el que te señala tu editor antes de que incluso guardes.
- Ahora puedo refactorizar grandes porciones de código sin preocuparme de si funcionará cuando termine, porque cuando termine todo se compila.
- Hacerlo seguro y fácil de refactorizar significa que se acumulará menos deuda técnica. Simplemente cambiar el nombre de una función o miembro de la clase se puede hacer presionando una tecla, por ejemplo.
- La escritura estática debe considerarse una mejor práctica para cualquier cosa no trivial. Es demasiado poderoso para ignorarlo.
- TypeScript tiene tipos ya definidos para miles de paquetes populares de JavaScript, por lo que obtienes una gran cantidad de información de tipos de forma gratuita cuando la usas.
NodeJS es fácil de depurar y probar
- Es trivial configurar Node en Windows, Mac y Linux.
- VS Code ha incorporado soporte para depurar NodeJS, y está disponible en las tres plataformas. Incluso puede depurar simultáneamente su código de nodo y el código de su navegador.
- Node no requiere que configure un servidor como Apache o Nginx. Simplemente ejecutas tu aplicación.
NodeJS tiene más de 300,000 paquetes disponibles en npm
- No todos son de alta calidad, pero miles lo son, y eso significa que, sea lo que sea que tenga que hacer, es probable que ya haya un fuerte apoyo.
- Algunas bibliotecas famosas están extremadamente bien mantenidas, como Lodash, que le brinda un soporte de programación funcional excelente y rápido. O Socket.IO que le ofrece WebSockets compatibles con versiones anteriores.
- Todos los servicios principales siempre se enviarán con el soporte de NodeJS. Muchos solo admitirán PHP como una ocurrencia tardía, o solo a través de su API REST.
- Del mismo modo, las principales herramientas de servidor (base de datos, cola de mensajes, etc.) siempre recibirán soporte de NodeJS. Muchos tienen soporte nativo de JavaScript en virtud del uso de JSON.
NodeJS es compatible con Amazon Lambda
- ¿Desea escribir un servicio que comienza sin que le cueste nada, pero que se escalará de manera efectiva infinitamente (por un precio)? Lambda no es compatible con PHP.
NodeJS es el nuevo estándar
- La mayoría del nuevo desarrollo se está haciendo en NodeJS.
- PHP ha recorrido un largo camino desde que ganó su peor reputación, pero perdió la cabeza y su arquitectura síncrona central no es adecuada para la Internet moderna en tiempo real.
- La “forma PHP” para crear sitios está pasando de moda, por una buena razón. Todos esos CMS basados en PHP como WordPress, Drupal y Joomla y similares están sujetos al “truco del mes”, con frecuentes ataques de día cero que pueden permitir a los piratas informáticos convertir su sitio en un bot. Cuando hago una búsqueda de “ExpressJS zero day”, no obtengo resultados sobre hacks contra el framework web más popular para Node. Pruebe esa búsqueda en su CMS basado en PHP favorito.
En serio, para mí, NodeJS es una elección fácil sobre PHP. La única pregunta es si usar Go. Lo cual está fuera del alcance de esta respuesta. 🙂
Notas al pie
[1] Tipos estáticos considerados útiles · RealMensch