node-jsNode.js es un proyecto desarrollado por el programador Ryan Dahl, fue presentado en la jsconf del 2009. Básicamente Node.js es un framework de entrada y salida basado en JavaScript que busca escribir programas de red escalables similar a los servidores web.

En el sitio oficial de Node.js se menciona que su meta principal es:

Proveer una manera fácil de construir programas de red con escalabilidad.

Node.js tuvo buena aceptación entre los programadores, sin embargo, al igual que otros lenguajes tiene sus desventajas, @siedrix ( Loki Zavala ) nos comenta los problemas que ha tenido con Node.js.

Cambio de versiones:

Me ha tocado ver cambios en la semántica, cambios en la comunidad y verlo poco a poco crecer, ha sido una gran experiencia, pero también es complicado trabajar en el lenguaje que muchas veces las cosas no funcionan por conflictos de versiones.

Aplicaciones en Node.js:

Usar Node.js para hacer aplicaciones web es el equivalente de tomar Apache sin ningún modulo, lo cual me ha dado el entendimiento de lo que sucede cuando un http request llega a nuestro servidor. Si no les interés aprender esto, usen Express.js o Meryl desde el día uno.

Poca documentación:

La documentación es escasa y existen pocos tutoriales al respecto, lo cual me ha acercado a leer código en github, chats de IRC y google groups, lo cual ha sido bastante ameno después de un par de semanas de darme golpes con la pared.

En la presentación del 2009, Ryan Dahl en breve describe a Node.js:

  • Server- side Javascript
  • Construido en Google 8
  • Similar a Event Machine o el sistema de módulo común de JSTwisted
  • 8000 lineas de C, C++ y 2000 lineas de JS.

“Hello World” en Node. js

Su presentación de una pizarra limpia, rapidez, tamaño, fácil interpretación y su adaptación de JavaScript con los callbacks, son algunas razones por las que Node.js es tan emocionante. Veamos la escritura del programa “Hello World” en 7 pasos:

1. git clone git://github.com/ry/node.git (o descarga y extrae un tarball)
2. ./configure
3. make (tarda un poco, tiene que compilar el V8 )
4. sudo make install
5. Salva el código de abajo como: helloworld.js
6. node helloworld.jshttp://www.maestrosdelweb.com/wp-admin/post.php?action=edit&post=12457
7. Visita http://localhost:8080/ en tu navegador.

Características

  • Usa un ciclo de eventos en lugar de threads, y es capaz de escalar millones de conexiones simultáneas.
  • Cada operación I/O en Node.js es asincrónica, lo cuál significa que puede continuar trabajando con peticiones de entrada mientras otras operaciones I/O se está llevando a cabo.
  • Node.js trabaja en el sistema basado en Unix, al igual que en Mc OS X, Linus y FreeBSD. Sin embargo, no trabaja en Windows, pero si eres usuario puedes instalar Ubuntu Linux usando Virtualbox, para hacerlo puedes leer el tutorial de instalación.
  • Soporta protocolos TCP, DNS y HTTP.

Tecosystems te presenta 5 razones por las que debes interesarte por Node.js:

  1. Es un software absoluto.
  2. Es rápido.
  3. Es JavaScript.
  4. Está dirigido a problemas importantes.
  5. Tiene una comunidad de soporte.

Proyectos

En septiembre de 2010 se realizó la competencia Node.js KO, que reunió a más de 200 equipos de programadores que desarrollaron aplicaciones en menos de 48 horas con ésta nueva tecnología, los ganadores se llevaron un paquete de premios y un IPAD para cada miembro del equipo, los 3 primeros lugares fueron:

  1. Warmation un juego en el cuál cada jugador maneja un pixel y deben realizar una gráfica antes que el tiempo se acabe, el equipo desarrollador es Saber-tooth Moose-Lion.
  2. Blädderblock de Rallarpojken, en el juego debes: “Tratar de averiguar la letra correcta mientras rezas por que tus compañeros sean buenos dibujando”.
  3. Wrath de Prague.js es un hosted de API en broma y un servicio de pruebas.

Estos son algunos proyectos que se han trabajado en Node.js:

Recursos para aprender sobre Node.js

En Debuggable, Felix Geisendörfer en su artículo Understanding node.js nos muestra una pequeña introducción a Node.js respondiendo muchas de las interrogantes que los nuevos usuarios de Node.js podrían tener. Para los interesados en incursionar en esta tecnología, pueden revisar los siguiente recursos para lograrlo:

Finalmente esperamos tus comentarios sobre Node.js ¿lo has utilizado? ¿qué ventajas y desventajas le encuentras? nos interesa seguir aprendiendo de las nuevas tendencias y descubrir su potencial ¿qué nuevas tecnologías de programación te han llamado la atención últimamente?

Node.JS en Mejorando.la

Como un recurso extra te recomendamos ver esta introducción a Node.js transmitada en Mejorando.la