Programacion con Node.js

Programacion con Node JS copy

Node.js es una librería y entorno de ejecución de E/S dirigida por eventos y por lo tanto asíncrona que se ejecuta sobre el intérprete de JavaScript. Aunque no es algo nuevo, existen librerías como Twisted que hacen exactamente lo mismo pero es cierto que es la primera basada en JavaScript con un gran rendimiento.

¿Que es?

Node.js es un entorno Javascript del lado del servidor, basado en eventos utilizando el motor V8, desarrollado por Google. El motor V8 proporciona a Node un entorno de ejecución del lado del servidor que compila y ejecuta javascript a gran velocidad. El aumento de velocidad es importante debido a que V8 compila Javascript en código de máquina nativo, en lugar de interpretarlo o ejecutarlo como bytecode. Node es de código abierto, y se ejecuta en Mac OS X, Windows y Linux.

Aunque Javascript se utiliza mas para tareas menores en el navegador, es actualmente un lenguaje de programación capaz como cualquier otro lenguaje tradicional como C++, Ruby o Java. Ademas Javascript tiene excelente modelo de eventos, ideal para la programación asíncrona. También es un lenguaje conocido por millones de desarrolladores. Esto reduce la curva de aprendizaje de Node,js, porque los desarrolladores no tendrán que aprender un nuevo lenguaje.

La verdadera magia de Node.js es algo llamado Bucle de Eventos (Event Loop). Para escalar grandes volúmenes de clientes, todas las operaciones intensivas I/O en Node.js se llevan a cabo de forma asíncrona. Node.js mantiene un evento loop que gestiona todas las operaciones.

Node resuelve el problema con el tema de limitacion cambiando la forma en que se realiza una conexión con el servidor. En lugar de generar un nuevo hilo para cada conexión, cada conexión dispara una ejecución de evento dentro del proceso del motor de Node.

Usos reales

Node.js es una herramienta genial para todo tipo de proyectos. Aplicaciones web, aplicaciones en línea de comandos, scripts de sistemas, aplicaciones de red, etc.

Ventajas

  • Rápido desarrollo.
  • Ejecucion de test mas rápidos.
  • Aplicaciones rápidas, por lo tanto mejor experiencia para el usuario final.
  • Reduce los costes de infraestructura (con menor numero de servidores se puede hacer lo mismo o mas).

Desventajas

  • API Inestable: La API rompe la compatibilidad hacia atrás de versión en versión, lo que hay que aplicar cambios frecuentes en el código.
  • Falta de Librerías.
  • Demasiadas formas diferentes de programar: Se nota su efecto cuando el equipo de desarrollo no está familiarizado con la programación asíncrona o los patrones de diseño estándar.
  • No se ha probado lo suficiente.

 

Share