Node.js

“"Node ayuda a javascript a ser libre de los límites del patrimonio del lado del cliente” - Brendam Eich, creador de javascript

El objetivo de Node.js es otorgarnos la capacidad de ejecutar código Javascript en el lado de servidor, o dentro de nuestro sistema. Es decir llevar Javascript más allá del sandbox del navegador web.

En una aplicación web realizaría el trabajo de otras tecnologías como lo son java, ruby con su framework Rails, o Python con Django. Es decir Node.js soportará toda la lógica back end de nuestra aplicación.

Introducción

Node.js ha llegado a ser rápidamente uno de las tecnologías más influyentes en la comunidad del desarrollo web. Al empezar a usarlo nos encontramos conceptos como programación orientada a eventos de lado del servidor, la api que Node.js nos provee para suplir las carencias de Javascript, librerías de acceso a disco, criptografía etc. Para ello todo su entorno se ejecución se basa en el motor V8 diseñado para el runtime del buscador Google Chrome.

El motor V8 fue lanzado al mundo en 2008, y cambió por completo la percepción de que Javascript era un lenguaje lento, ya que su principal característica es compilar Javascript en lenguaje máquina de forma dinámica. Con este motor se desató la guerra de los navegadores por implementar el motor más rápido, Y la cruzada Ryan Dahl para añadir sockets no bloqueantes en Javascript basándose en este motor, tal fue su convicción que canceló su contrato de trabajo y se dedicó a esta tarea a tiempo completo. A partir de aquí Node.js comenzó a crecer en equipo y comunidad, se le añadieron el gestor de librerías npm, el gestor de tareas grunt y todas las demás herramientas que hacen de Node.js una plataforma de trabajo ágil, óptima y que compañínas emergentes como Uber o Voxer utilizan en sus desarrollos, así como otras compañías más consolidadas como Microsoft o Amazon.