Seidor
chica programando

05 giugno 2024

¿Qué es Node.js y para qué sirve?

Node.js es un entorno JavaScript que nos permite ejecutar en el servidor, de manera asíncrona, con una arquitectura orientada a eventos y basado en el motor V8 de Google. Es una plataforma que avanza muy rápidamente y cada vez está más presente en el mercado.

¿Cómo funciona Node.js?


El motor V8 compila Javascript en código máquina nativo en vez de interpretarlo en el navegador, consiguiendo así una velocidad mucho más alta. Node es de código abierto y puede ejecutarse en Mac OS X, Windows y Linux.

Javascript del lado del servidor


Tradicionalmente Javascript se ha utilizado únicamente para tareas menores en el navegador, pero actualmente ya es un lenguaje de programación tan potente como cualquier otro. Además JavaScript dispone de un modelo de eventos excelente ideal para la programación asíncrona.

JavaScript es un lenguaje conocido por millones de programadores, así que la curva de aprendizaje de Node es reducida, ya que no suele ser necesario aprender un nuevo lenguaje.

Programación asíncrona


Además de la alta velocidad de ejecución, Node.js dispone del Bucle de Eventos (Event Loop), que permitirá gestionar enormes cantidades de clientes de forma asíncrona. Tradicionalmente para trabajar de forma asíncrona las aplicaciones se valían de la programación basada en hilos (programming threaded applications), pero esto supone la utilización (normalmente ineficaz) de un espacio de memoria que va escalando a medida que la cantidad de clientes conectados a nuestra aplicación aumenta.

Generalmente cada hilo supone la utilización de 2MB de memoria, lo que en un sistema de 8GB de RAM supone un máximo teórico de conexiones de 4.000 usuarios. Por lo tanto, si necesitamos gestionar grandes cantidades de conexiones tendremos que ampliar el número de servidores.

La solución de Node


Node.js resuelve este problema cambiando la manera de realizar las conexiones con el servidor. En vez de generar un nuevo hilo E/S para cada cliente, cada conexión dispara la ejecución de un evento dentro del proceso del motor de Node. De este modo, Node permite que un solo servidor que lo ejecute pueda soportar decenas de miles de conexiones.

¡Gracias a Node, LinkedIn pasó de utilizar 30 servidores a únicamente 3!