12 de octubre de 2012

Javascript en el servidor - Node.js

Node.js Logo
(Photo credit: Wikipedia)
Hasta ahora lo normal era usar el lenguaje Javascript para el desarrollo de interfaces web, pero Node.js propone un cambio revolucionario, usar a Javascript del lado Servidor.
Pero ¿Que es Node.js?, y como cambia el Desarrollo Web tradicional?


¿Qué es Node.js?

Node.js está formado por una serie de módulos y un intérprete Javascript. El intérprete Javascript que usa Node.js es el que Google usa en su Navegador, Google Chrome. Pero entonces ¿Cual es la diferencia?, la diferencia está los módulos que implemente Node.js.
Node.js a diferencia de PHP propone un modo de ejecución diferente.

¿PHP vs Node.js?

En PHP, con cada requerimiento de los usuarios, se crean distintas instancias de ejecución de PHP. Por ejemplo, si en una aplicación PHP como Wordpress, si un usuario requiere del servidor un Post que tiene una galería imágenes de gran peso en Mega Bytes, eso no impedirá ni tendrá efectos en la lentitud de sistema si un usuario distinto se pone a ver otro Post del mismo Wordpress. ¿Por qué sucede eso?, bueno porque PHP se ejecuta en procesos distintos, pudiendo ocurrir que existan en un momento dado, múltiples instancias del intérprete PHP simultáneamente ejecutándose en el Servidor Web.

A diferencia Node.js propone una nueva forma de usar el lenguaje y muestra porque Javascript es un lenguaje que permite ciertas facilidades.
Tal vez si en algún momento, usaste o usas Javascript en el Framework jQuery, te habrás dado cuenta de la forma de programar, asociando eventos a funciones callback. Es decir, Javascript propone una forma asíncrona de ejecución.

¿Cómo instalar Node.js?

La forma de instalar Node.js en Linux-Ubuntu es compilando el código fuente de Node.js, que podemos descargar desde el sitio web de Github. El proceso de instalación de Node.js en Ubuntu, está descrito en el Blog de Federico Silva:

Es interesante, para los que desean aprender pocos lenguajes, que ahora sólo con Javascript es factible desarrollar en el lado cliente como servidor.

Pero cuales son las facilidades que ofrece Node.js vs PHP. Bueno, a ese respecto le puedo indicar que hay un par de bueno recursos para iniciado su interés en este forma de abordar el desarrollo web.

Sólo me resta recomendar este excelente recurso para aprender Node.js:
Pero puedo probar Node.js en un Shared Hosting?...