Saliendo del…. escritorio ¿o no?

Desde hace tiempo me preocupa que buena parte del trabajo y esfuerzo que mucha gente hemos empleado en los años pasados para hacer aplicaciones educativas sea esfuerzo inútil. Viendo el uso que los profesores hacen de los ordenadores pareciera que lo que no está en el navegador no existe. Es más, un altísimo porcentaje de los profesores nunca han navegado por los menús: arrancan el ordenador, y entre los iconos del escritorio suelen ir al navegador casi directamente.

Sin embargo, realizar aplicaciones realmente útiles y vivas en el navegador significa programar usando javascript, lo que es un dolor de xxxxx. Nada que ver con realizar aplicaciones para el escritorio. Buscando soluciones, es decir: realizar aplicaciones para el navegador, que tuvieran la vitalidad del escritorio y que me permitieran programar sin sudar sangre con javascript, empecé a probar GWT (Google Web Toolkit), hará algo más de un año. Los señores de Google puede que quieran conquistar el mundo, pero son realmente brillantes en muchos de sus proyectos. GWT permite que programes  en Java casi como si estuvieras trabajando en un aplicación estándar, con las herramientas de profiling y depuración de Java (mezcladas con algo del mundo web, como hojas de estilo para el aspecto de la aplicación). Y cuando acabas tu aplicación le das a un botón y te proporciona la aplicación en javascript optimizado para los navegadores web más importantes.

Nunca me ha entusiasmado Java como lenguaje de programación, me sigue pareciendo sobredimensionado y algo lento para el escritorio (por no hablar sobre sus mentiras a la hora de hacer programación orientada a objetos). Sin embargo, hay que reconocer que el código es limpio, relativamente fácil de leer y bastante elegante, por no hablar de la multitud de patrones y documentación existente para ayudarte. En fin, que al final he hecho un par de cosillas, en las que hice el backend con CakePHP (un framework espléndido, excelente a la hora de trabajar con php sin código espaguetti y que la gestión de bases de datos o autenticación sea un “paseo”) y el frontend con Java. Esto, gracias a la magia de GWT se convierte en una buena aplicación tipo 2.0 en el navegador con todo el ajax del mundo y sin haber escrito una línea en javascript por mi parte. En fin, que parecía haber encontrado un camino para ir haciendo cosas nuevas que los profesores podían usar en el navegador.

Sin embargo, no acabo de estar a gusto, meter php + servidor web en el ordenador, y programar en Java…. no me acaba de convencer. Y estos días voy y me encuentro algo llamado Pyjamas. Y encima va un tipo y hace Pyjamas-desktop, y encima resulta que ya está todo esto en Debian (GWT es software libre pero no está en Debian por su enorme dificicultad a la hora de compilarlo y luchar con la mezcla de tecnologías que usa). Y ¿qué es Pyjamas? Pues así, usando palabras no muy exactas: GWT en Python. Es decir: ahora haces la aplicación en Python, le das al compilador de Pyjamas y la tienes en javascript. Pero es que encima con Pyjamas-desktop puedes ejecutar la aplicación como si fuera una aplicación de escritorio. Es decir, puedes tomar una aplicación de escritorio ya hecha en python-gtk , convertirla en aplicación web para usarla en el navegador, y después, si quieres, puedes convertirla en aplicación de escritorio para usarla en Gnome, donde fue creada ¡o en KDE e incluso Windows!. A ver, lo repito: un sólo código fuente hecho como una aplicación de escritorio de Gnome, que puede convertirse en aplicación web, y en aplicación para cualquier escritorio disponible (para esta última posibilidad el proyecto usa de fondo la magia de Webkit)

En resumen, que la cosa está muy movida en estos tiempos, con proyectos interesantísimos que cada día te vuelven un poco más loco, te hacen darte cuenta de lo poco que sabes y te animan a seguir investigando y aprendiendo. Al final con un poco de suerte todo parece converger, y puedes estudiar un sólo lenguaje, digamos Python o Java, y programar para la web y/o para el escritorio.

Etiquetado con: ,