Node.js: “El intento de escribir programas de red escalables”
Node.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:
- Es un software absoluto.
- Es rápido.
- Es JavaScript.
- Está dirigido a problemas importantes.
- 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:
- 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.
- Blädderblock de Rallarpojken, en el juego debes: “Tratar de averiguar la letra correcta mientras rezas por que tus compañeros sean buenos dibujando”.
- 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:
- Presentación Ryan Dahl en PDF
- Node.js empieza revisando el sitio oficial.
- Node.js en wiki de foros del web
- Tutorial para crear un servidor streaming de Twitter.
- How to Node: Blog dedicado a enseñar cómo trabaja Node.js y las diferentes tareas que puedes realizar.
- Node.js en GitHub
- Entendiendo Node.js
- Socket.IO – Node
- Node-websocket-server
- Express: “High performance, high class web development for Node.js”
- Nodestream: Plantillas para apps en tiempo real en Node.js
- Pasos básicos de Node.js
- Puedes seguir a Node.js con el hashtag #nodejs
- Installing Node.js On Ubuntu Screencast Tutorial
- Installing Node.Js On OS X 10.6
- En el blog de @Siedrix encontrarás varios post relacionados a Node.js.
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
En verdad que JavaScript va tomando mucha fuerza e importancia, he hecho algunas pruebas con Nodejs y me ha parecido una maravilla poder escribir código JS ejecutándose en el servidor, estoy pensando en desarrollar mi siguiente proyecto usando esto, aunque todavía estoy evaluando
Saludos
Hace un par de días me pidieron que escribiera un poco sobre para que he usado node.js, porque te interesó y lo que has publicado en tu blog.
Lamentablemente me senté a escribir y salieron 600 palabras cuando se necesitaba un párrafo. Aquí pueden checar lo que le mande a maestros de la web: http://siedrix.com/mi-experiencia-con-node-js
En definitiva a sido una experiencia muy agradable aprender node. Ha habido problemas, pero en general es muy agradable. Todos los días suele haber algo nuevo que leer al respecto, una nueva librería liberada y muchas cosas nuevas que hacer con js.
muchas gracias por tu aporte y gracias por compartirlo completo en tu blog.
Segun la pagina de nodejs si corre en windows, pero con Cygwin que es mas facil de instalar que una virtual box.
Un dato, me tardo solo 1.30 minuto en compilar todo. No tardo tanto 😛
[…] a que compartan sus avances de proyectos en cualquier lenguaje que utilices como: JavaScript, Node.js, jQuery, Ruby on Rails o […]