Tag Archives | node JS

node.js

No soy un desarrollador al uso. No me siento atraído por un lenguaje o tecnología, ni por su belleza intrínseca, ni por la teórica potencia de su diseño o sintaxis, sino por la aplicación práctica y real de los mismos para construir cosas. Cosas reales.

Aún sigo asistiendo atónito a luchas infantiles sobre la calidad de tal o cual lenguaje, librería, framework o sistema de control de versiones. Idioteces. Casi todas las tecnologías me parecen interesantes, pero, últimamente, he de reconocer que hay una que me llama la atención mucho más que el resto: node.js

node.js logo

Node.js es una librería de lectura y escritura, orientada a eventos, que se ejecuta sobre V8, el rapidísimo interprete de JavaScript de Google. Simplificando: permite ejecutar JavaScript en servidor con capacidad de consultar y persistir datos por cualquier canal de lectura/escritura como un fichero,un socket o una base de datos. Simplificando de nuevo: con las nuevas capacidades de lectura y escritura, aparece la posibilidad de crear aplicaciones completas desarrolladas completamente en JavaScript.

JavaScript es un lenguaje de juguete que sólo utilizan bohemios, gente de mal vivir o, peor aún… ¡diseñadores!

¿Y qué?” -pensaréis muchos- “JavaScript es un lenguaje de juguete que sólo utilizan bohemios, gente de mal vivir o, peor aún… ¡diseñadores!“. Puede ser, yo antes creía algo parecido, pero os contaré el proceso mental que me llevo a convencerme de que estaba equivocado.

The path of Bo: el camino del guerrero

Ya he comentado que, para mi la tecnología no es el fin, sino el camino. Así que, os contaré donde empezó el camino que me llevo a node.js: movilidad. Creo que el futuro está en los dispositivos móviles y que las nuevas aplicaciones serán móviles desde su concepción.

El gran problema de la movilidad es la variedad de plataformas existentes: iOS, Android, RIM, Windows Mobile… Un equipo pequeño puede hacer grandes cosas en el sector móvil, pero es imposible que pueda asumir el desarrollo multiplataforma.

Mi camino a node.js

Pero aparece HTML5 y, con el, un montón de nuevas funcionalidades (base de datos local, posibilidad de trabajar offlinewebworkerswebsockets, canvas…) que permiten crear aplicaciones increíbles casi tan potentes como las nativas, pero basadas en el navegador. Un navegador que, en el caso de las dos plataformas principales, además está basado en el mismo motor: Webkit, compatible con una gran mayoría de esas funcionalidades avanzadas.

¿De verdad se necesita una aplicación móvil nativa? Yo creo que el 99% de las aplicaciones móviles actuales se podrían hacer con HTML5, ahorrando costes y ampliando el mercado de las mismas.

HTML5 ha revolucionado el desarrollo móvil

Además, existen aplicaciones como PhoneGap que empaquetan una aplicación HTML5 para que se distribuya como una aplicación nativa en los markets de todas esas plataformas, haciendo prácticamente indistinguible para el usuario las aplicaciones nativas y las desarrolladas con HTML5.

Una vez convencido de que HTML5 ha revolucionado el desarrollo móvil y comenzar a desarrollador con el…  ¿Adivináis como se puede trabajar con sus nuevas funcionalidades? Efectivamente, JavaScript.

Y al aprender JavaScript en serio como parte del proceso que te llevará a dominar HTML5, es donde empiezas a ver todo el sentido a node.js porque ¿No os parece elegante y revolucionario poder utilizar -por primera vez en el desarrollo web- el mismo lenguaje de programación en el cliente y en el servidor?

Mucho más sobre node.js

Por supuesto, node.js es mucho más que JavaScript ejecutado en servidor. Su diseño permite crear aplicaciones ultraescalables, al estar basado en programación asíncrona y orientado a eventos en vez de a hilos de ejecución. Podéis aprender muchas más cosas geniales sobre node.js en este genial artículo del amigo Gimenete.

Bonilla, no tienes ni idea: conclusión

Siempre hay alguien que piensa distinto que tú. Las críticas constructivas son positivas y yo no intento adoctrinar sobre el uso de node.js. He intentado explicar como he llegado hasta el y porque me gusta desde una perspectiva personal.

No soy un gurú, pero tampoco hay que confundir el intento de concreción -sólo intento, que este artículo ya va por las 1000 palabras- con la falta de unos conocimientos técnicos mínimos:

  • Sí, ya sé que si se aplica el mismo paradigma de programación en Java, por ejemplo, esta es tan rápida o más que node.js y consume la misma memoria o menos.
  • También admito que la idea de “JavaScript en el servidor” no es nueva y que ya hubo otros intentos antes.
  • Reconozco que querer desarrollador con el mismo lenguaje en cliente y servidor es algo muy personal y subjetivo. Y no tiene porque ser lo más óptimo.
  • Sé que hay aplicaciones para móviles con todo el sentido del mundo que sean nativas, como los que hacen un uso intensivo de los gráficos o de las posibilidades del dispositivo en si. Cuando digo que la mayoría de aplicaciones pueden hacerse con HTML5, me refiero a las típicas aplicaciones corporativas que sólo manejan formularios, listados y gráficos estadísticos.
  • Y sí, no hay una compatibilidad uniforme de las características en los navegadores actuales. Es más, la gran mayoría de la base instalada de navegadores de escritorio, aún no son compatibles con HTML5.

Siempre habrá peros a cualquier stack tecnológico que alguien elija, pero este me parece un buena base de partida para el desarrollo de aplicaciones móviles. Estoy expectante por conocer las propuestas y alternativas de la gente en los comentarios.

Bola Extra

Comments { 23 }

Cloud9 IDE

Tenía ganas de probar node.js desde que hablé con Christian Kvalheim (de los Kvalheim de toda la vida) en TheEvnt. Node.js es un entorno de desarrollo en JavaScript que utiliza un modelo asíncrono y orientado a eventos que ¡se ejecuta en servidor! Por traducir este frasón a un lenguaje que hasta los CTOs puedan entender, esto supone dos ventajas:

  • Es una excelente solución para aplicaciones que tengan que soportar muchas -pero MUCHAS- conexiones concurrentes
  • Puedes programar la lógica de negocio en servidor de tu aplicación ¡en JavaScript! Con node.js, el típico desarrollador de front-end (HTML+CSS+JavaScript) puede programar una aplicación completa con acceso a datos. Parece algo natural en un mundo cada vez más webcéntrico.

Pero no quiero hablar de node.js en este artículo. Primero, porque hay gente que ya lo ha hecho antes, muy bien y en castellano, como Rafa Muñoz. Segundo, porque no tengo ni idea de node.js. Sólo he programado un ¡Hola Mundo! y, de lo que quiero hablaros, con todo el descaro del mundo, es de como he programado esas cuatro líneas de código.

Cloud9 IDEReconozco que me dio un poco de pereza instalar node.js en mi máquina, así que no lo he probado hasta que descubrí Cloud9, un IDE -un entorno de desarrollo- completamente basado en el navegador, que me ha llamado bastante la atención. En primer lugar, por la inyección de pasta gansa (5,5M $) que le han metido Accel Partners y Atlassian. Y, en segundo y más importante, porque hay al menos dos españoles involucrados en el proyecto: Sergi Mansilla y Luis Merino.

Cloud9 se define como una plataforma de DaaS (Development as a Service) que te permite trabajar en la nube ¿No lo visualizas? Imagina que estás en un aeropuerto, esperando tu vuelo de conexión para viajar a San Esteban de Litera, o en casa de tus suegros, sobreviviendo a unas Navidades gallegas como mejor puedas, mientras encuentres un ordenador libre con conexión a Internet, tendrás acceso a tu entorno de desarrollo. Una vez más, parece algo natural en un mundo webcéntrico. Continuar leyendo →

Comments { 21 }