miércoles, 22 de febrero de 2012

Node.js – Green Computing

Javascript, de lenguaje basura a el alma de la fiesta

En los últimos años se ha visto un crecimiento meteórico en la adopción de nuevas tecnologías de programación basadas en javascript. Al principio quise ignorar ese lenguaje porque siempre lo había percibido como un lenguaje de scripting horrible y lo juzgaba como solo útil para la capa cliente de aplicaciones web, además de tener un nombre inadecuado, sintaxis tediosa y apestar a código espagueti. Después vi que estaba equivocado, o al menos en algunas de mis opiniones.

Primero note la enorme ventaja que daban los frameworks como jQuery y Dojo, luego todo el ruido relacionado con HTML5 y tecnologías para crear aplicaciones móviles. Entonces pensé “Mmm… este lenguaje que se veía tan de pacotilla si que va en serio”.nodejs-green

La cosa no para ahí y en el ultimo año se ha soltado una gran estridencia a causa de Node.js. Por si alguien no lo sabía ya,  Node.js es una tecnología que, por primera vez, nos permite usar javascript en el lado del servidor, una de las ventajas de esto es que se puede programar la capa cliente y la capa servidor con el mismo lenguaje javascript en forma transparente para cualquier plataforma.

Si eres un programador de la vieja escuela y sin conocimientos de javascript o programación basada en eventos y quieres conocer Node.js te enfrentaras a un cambio de paradigma bastante considerable pero que bien vale la pena afrontar dadas las condiciones bajo las que opera actualmente el mercado del desarrollo de software.

GreenComputinglogoGreen Computing y hacer mas con menos

Node.js es una tecnología de desarrollo totalmente orientada a eventos y programación asíncrona, construida sobre el motor V8 creado por Google para el navegador Chorme. Es una base para construir aplicaciones de red escalables y altamente eficientes. Al final del post verán links a recursos donde, con suerte, quedara mas claro todo esto.

La idea de Node.js es hacer mas con menos. El termino “green computing” se refiere precisamente a esto. Se trata de generar tecnología que consuma la menor cantidad posible de recursos (dinero, procesamiento, tiempo, memoria, almacenamiento, corriente eléctrica, líneas de código) y a su ves logre aportar la mayor cantidad posible de eficacia operativa a la vez sea mas amigable con el presupuesto e indirectamente incluso con el medio ambiente.

Con tecnologías como Node.js se consigue crear aplicaciones con un bajo consumo de RAM y mejor aprovechamiento del procesador (En ciertos tipos de tareas). Algunos detractores señalan que Node.js, al ser una arquitectura “single thread” o de un solo hilo, no logra aprovechar los beneficios de procesadores con múltiples núcleos lo cual es discutible ya que Node.js cuenta con mecanismos internos llamados “workers” que ofrecen la posibilidad de hacer un balanceo de trabajo distribuyendo la carga en mas de un núcleo. Confieso que actualmente ignoro como demonios funciona eso pero se habla mucho de que es un enfoque muy efectivo y revolucionario.

En un escenario ideal, con node.js se obtendría una plataforma que necesitará menos maquinas, presupuestos mas modestos, menor consumo de energía, ofreciendo resultados mas óptimos. Todo esto sin mencionar que con Node.js se usan muy pocas líneas de código en comparación con otras tecnologías “server-side”.

Habrá que esperar para ver como logra posicionarse Node.js en la industria. Algunos creen que es una tecnologia inovadora que llego para quedarse y que será revolucionaria y los detractores creen que es una moda que no tiene suficientes razones para existir y poco a poco ira desapareciendo. Solo el tiempo lo dirá pero creo que hay algunas pistas que sugieren un futuro promisorio para Node.js además de toda la alharaca generada en la prensa especializada: el apoyo de Microsoft patrocinando el desarrollo de Node.js e integrandolo en su plataforma Azure, Wallmart usando Node.js dentro de su infraestructura tecnológica y otros casos.

Personalmente he hecho muy pocos experimentos con Node.js pero tal vez escriba algunos reportes aquí sobre lo que vaya probando con esa nueva tecnología.

Links relacionados:

Sitio de Node.js
http://nodejs.org/

A Quick Introduction to How Node.js Works
http://cloud.dzone.com/articles/quick-introduction-how-nodejs

Fuerte critica a Node.js
http://teddziuba.com/2011/10/node-js-is-cancer.html

Node.js: Asynchronous I/O for Fun and Profit
http://www.infoq.com/presentations/Nodejs-Asynchronous-IO-for-Fun-and-Profit

Node.js Developer Guidance (Windows Azure)
http://msdn.microsoft.com/en-us/library/windowsazure/hh674489(v=vs.103).aspx

No hay comentarios:

Publicar un comentario