Node.JS un paso mas en pos de la interacción

Desde hace un “rato” Node.JS esta haciendo mucho ruido en internet, específicamente en el área de desarrollo para la Web, es cierto que es un gran adelanto o incluso una evolución de como se desarrolla eh interactúa en la Web y da paso a nuevas posibilidades que antes no estaban disponibles o al menos no eran viables al 100% pero comencemos desde el principio…

¿Qué es Node.JS?

Node.JS es basicamente una implementación para usar Javascript en el servidor como se usa PHP bajo Apache, pero, con una pequeña diferencia, usando Javascript y Node.JS se es capas de crear “micro” servidores que pueden interactuar directamente con el navegador en tiempo real y sobre todo de manera permanente.

¿Pero como funciona?

Explicarlo y que todos entiendan es dificil, básicamente Node.JS es una combinación de Apache y PHP, por si solo Node.JS no es capas de hacer nada, el hecho de tenerlo instalado en el servidor o el equipo no supondrá diferencia, en este aspecto es como PHP, sin un archivo con instrucciones Node.JS y PHP no sirven para nada, en cambio, si a Node.JS o al interprete (servidor) de PHP se le entrega un archivo con instrucciones en su propio lenguaje entonces es cuando comienza la “magia”, como todos sabemos para que PHP funcione hay que entregarle y “ejecutar” archivos con extensión PHP con la sintaxis y funciones que el propio PHP proporciona, en Node.JS es idéntico la forma en la que funciona, en este caso en vez de entregar un archivo con extensión PHP entregaremos uno con extensión JS y usaremos el lenguaje que muchos ya conocemos, Javascript, ahora, hay que tener en cuenta varias cosas, el hecho de que nosotros corramos Javascript en el servidor no nos va a dar la opción de manipular ni el DOM (HTML) ni interactuar de ninguna forma con el usuario de forma directa (como se hace usando Javascript en el navegador), en este punto, Node.JS y Javascript es igual a PHP, directamente no podemos hacer nada en el navegador si no hay algo que se comunique desde el navegador hacia el servidor, pero aquí es cuando Node.JS se comienza a diferenciar de TODOS los lenguajes utilizados hasta ahora para el desarrollo en la Web, Node.JS junto con Javascript es capaz de crear sockets y mantenerlos “vivos” por lo tanto tener comunicación directa con el navegador, pero ahora dirás “no habías dicho que no se puede interactuar de forma directa?” en efecto, directamente no se puede, pero podemos interactuar con Node.JS usando Javascript del lado del cliente (navegador) usando las nuevas herramientas que la W3C esta implementando en HTML con su “nueva” versión 5, los Websockets, implementando esto tendremos una vía de comunicación directa y sobre todo EN TIEMPO REAL con el servidor.

Muy bonito todo, pero ¿en la Web de que nos sirve?

Imaginemos esto, nuestro sitio Web implementa un sistema de comunicación entre nuestros usuarios, lo que generalmente llamamos un chat, usando únicamente Javascript, XMLHttpRequest (Ajax) y PHP obtendremos algo bastante cercano a un chat en tiempo real, pero sin serlo al 100% por una razón, el tener que recargar para volver a obtener los últimos mensajes enviados hacia el servidor o en el mejor de los casos estar realizando peticiones Ajax cada X segundos para obtener el mismo resultado, ahora analicemos lo que hacemos, la teoría dice que debería ser el servidor el que nos avise de que hay un nuevo mensaje y a su vez enviar el dicho mensaje, lo que nosotros realmente hacemos es preguntarle al servidor cada X segundos si hay mensajes nuevos y si es así que nos los envíe, esto es funcional pero no es lo recomendable, implementando Node.JS podremos usar Websockets con lo cual podremos comunicarnos directamente navegador-servidor-navegador, que quiere decir esto?, pues que el servidor nos puede comunicar directamente sin esperar a que el cliente (navegador) haga una petición, retomando el ejemplo del chat, cuando una persona nos envié un mensaje este primero deberá llegar al servidor con la implementación de Node.JS el servidor directamente nos avisara que hay un nuevo mensaje y directamente lo enviará al navegador sin requerir que este ultimo tenga que realizar alguna acción logrando con esto una comunicación 100% en tiempo real.

El ejemplo del Chat es algo muy básico, sin embargo esto se puede implementar de muchas maneras, principalmente en sistemas que requieran interacción en tiempo real como lo puede ser videojuegos en el navegador, con esto, podremos crear juegos multiplayer por ejemplo donde podamos ver las acciones de nuestros compañeros/contrincantes en tiempo real! en interactuar con ellos

Node.JS es el futuro, ¿o no?

Muchos se aventuran a decir que Node.JS es el futuro, yo digo que no, Node.JS no es el futuro, es parte de el, la implementación de Node.JS es aun muy muy escasa, y sin olvidar que aun el proyecto es aun es muy inestable, pero dejando de lado de esto las herramientas existentes son muy escasas y en mi opinión aun muy arcaicas, no se puede comparar lo que hoy por hoy existe en Python, PHP, u otro lenguaje que se utilice en el desarrollo para la Web, por lo tanto no pienso que Node.JS reemplace las tecnologías actuales y se convierta en el “futuro”, para cuando Node.JS madure y se implemente de manera masiva es muy probable que exista ya algo mas que trabaje de forma similar y porque no, de mejor manera, pero a su vez lo que hoy existe seguirá evolucionando y mejorando manteniéndose en el mercado.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: