Cloud9 IDE

scroll

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.

Hasta ahora, los IDEs basados en navegadores habían sido despreciados sistemáticamente por los viejos programadores cabecicubos de servidor como yo. No podían, ni remotamente, compararse a los IDEs de escritorio; ni en experiencia de uso con el editor de código ni en funcionalidades. «Cuando un editor web me haga un compilado autoincremental como Eclipse, hablaremos«, «no puedo depurar«, «no ejecuta informes de métricas de calidad sobre mi código» eran algunas de las frases más usadas.

[quote]Lenguajes dinámicos. Esos lenguajes para hippies, bohemios y gente de mal vivir…[/quote]

Pero entonces llegó la eclosión de los lenguajes dinámicos: PHP, Ruby, Python… y esos hippies del desarrollo que los utilizaban, ¡programaban en simples editores de texto! Inaudito, sobre todo para una generación educada en el dogma de que los pros tenían que utilizar bicharracos como VisualAge for Java o VisualStudio. Y en este contexto, en el de la gente que utiliza editores de texto con esteroides como TextMate o Vim, es donde Cloud9 parece tener sentido.

Y programé mi primer ¡Hola Mundo! en node.js con Cloud9 y reconozco que la experiencia de usuario, el tacto del editor, me gustó. Creo que la herramienta tiene muy buena pinta y es un IDE a tener en cuenta para proyectos en node.js, Ruby o PHP, los lenguajes que soporta. Aunque,  [highlight]donde realmente destaca es en node.js, para el que posee un entorno de ejecución y depuración integrado[/highlight].

Conclusión

No todo es perfecto y a Cloud9 aún le falta bastante. Sobre todo, en lo relativo a la documentación. Ahora mismo, si copias y pegas el ejemplo de ¡Hola Mundo! de node.js directamente, no funciona y tienes que fijarte en la consola para comprobar el error y darte cuenta de que el entorno te exige que utilices la variable process.env.C9_PORT como número de puerto y 0.0.0.0 como dirección IP.

Si buscas documentación al respecto, un how-to o un getting started… deja de soñar. Puedes bucear en el Google Group de la aplicación y encontrar ayuda con hilos como este. Otro ejemplo: si buscas el mapeo de teclas para depurar tu proyecto, la documentación oficial es el archivo .js donde se hace el mapeo.

Evidentemente, no he tenido tiempo de evaluarlo en profundidad. Tampoco como IDE para PHP o Ruby, así que os dejo una pequeña lista de los pros y contras que he encontrado. Yo, desde luego, le voy a dar una oportunidad para desarrollar en node.js.

[twocol_one]

PROS

  • Cómodo y rápido de usar
  • Integrado con bitbucket y github
  • Open source
  • Te lo puedes descargar e instalar en tu propio servidor ¡AMAZING!

[/twocol_one]

[twocol_one_last]

CONTRAS

  • Escasa documentación
  • En la versión gratuita y alojada, tus proyectos son públicos (cualquiera puede verlos y copiarlos)
  • No tiene soporte para lenguajes de la JVM como Groovy

[/twocol_one_last]

Enlaces