Hace unos días hicimos, Carlos Villuendas y yo, un workshop interno en Softonic.com sobre Node.js.
En este workshop explicamos qué es Node.js, las ventajas de la programacion asíncrona en el servidor, la gestion de paquetes con npm y cómo funcionan el require, module.exports y los listeners.
En un descanso que hicimos, pedí un poco de feedback sobre el workshop y el amigo Toni, como siempre buscando la aplicación en el mundo real, me dijo:
El workshop me está molando, pero no termino de ver la aplicación practica de todo esto. Es decir ¿que ventajas tiene utilizar Node.js frente a PHP por ejemplo? ¿Cuándo es adecuado utilizar Node.js?
Buena pregunta, no?
Vamos a ver si somos capaces de responderla en este post...
¿Qué es Node.js?
Node.js es un entorno JavaScript de lado de servidor que utiliza un modelo asíncrono y dirigido por eventos.
Igual que se utiliza Ruby o Python en el servidor, ahora también se puede utilizar Javascript.
Node.js usa el motor de JavaScript V8 de Google: una maquina virtual (VM) tremendamente rápida y de gran calidad escrita por gente como Lars Bak, uno de los mejores ingenieros del mundo especializados en VMs.
¿Cuándo es aconsejable utilizar Node.js?
Basicamente Node es adecuado cuando necesitas hacer muchas cosas al mismo tiempo, sobre todo muchas operaciones I/O (acceso a ficheros, bases de datos,...) a la vez.
Y es especialmente bueno para aplicaciones realtime, que necesitan mantener una conexión persistente entre el browser y el servidor (juegos online, chats, herramientas de colaboración, etc ).
Si lo que necesitas es trabajo intensivo de CPU (codificacion de video, manipulación de imagen, etc) utilizar Node no supone ninguna ventaja
Más ventajas de utilizar Node.js
- Con Node puedes utilizar javascript como lenguaje de scripting en tu consola (como bash, perl, etc.)
- Está basado en eventos, asi que toda la filosofia asíncrona que ya utiizamos con AJAX en el cliente la podemos pasar al servidor.
- Te permite utilizar el mismo lenguaje (javascript) tanto en el cliente como en el servidor
- Muy buena gestion de paquetes gracias a NPM (si quieres hacer algo, probablemente exista una librería/paquete que ya lo hace)
- Detras de Node hay una Comunidad enorme documentando, haciendo turoriales y creando nuevos modulos.
- Nos permite hacer en el servidor todo lo que necesitamos (acceso a ficheros, a bases de datos, conexiones de clientes.. )
Enlaces y mas:
- http://stackoverflow.com/questions/5062614/how-to-decide-when-to-use-nodejs
- http://codeofrob.com/entries/5-reasons-to-give-node.js-some-love.html
- http://www.quora.com/Node-js/Why-should-I-use-Node-js
- http://debuggable.com/posts/understanding-node-js
- http://blog.mixu.net/2011/02/01/understanding-the-node-js-event-loop/
¿Que te ha parecido el articulo?¿Alguna ventaja más de utilizar Node.js que quieras añadir? ¿Alguna desventaja? Esperamos vuestros comentarios
Comentarios Ventajas de utilizar Node.js
Node.js is specially javascript server language..................
Tiene buena pinta. Creo que la evolución de php va por esos pasos.
Salu2
Hola. Quería presentaros nuetra gama de muebles de oficina madrid Tenemos todo sobre mobiliario hosteleria, mobiliario de oficina y estanterias. Precios de Fabrica y servimos a toda España
Visitarno y pedir presupuesto sin compromiso