Palm_webOS_LauncherHace ya más de tres semanas que me lancé a probar el recientemente liberado SDK de WebOS para Palm Pre, para desarrollar una aplicación a la vez que aprendo.

Para todo el que no conozca WebOS y Palm Pre, decir que se trata del nuevo sistema operativo basado en linux para dispositivos móviles, y el primer dispositivo que hará uso de él. Tanto WebOS como el Pre han sido desarrollados por Palm en un intento de recuperar su trono perdido (de la época de los PDA), con un dispositivo móvil de pantalla multitáctil y gran conectividad orientado enteramente a interactuar con servicios web. Muchos se han aventurado incluso a calificarlo de “iPhone Killer”.

Uno de los grandes alicientes para probar desarrollar algo para WebOS, era que las aplicaciones se desarrollarían enteramente utilizando exclusivamente lenguajes web, por lo que sólamente tendríamos que conocer Javascript, HTML y CSS para, en poco tiempo, tener una aplicación funcional. Esto por supuesto, es un gran aliciente para todos aquellos desarrolladores web que tengan ganas de desarrollar algo para dispositivos móviles, ya que hasta ahora el desarrollo para dispositivos móviles (Symbian, Windows Mobile, iPhone OS,…) era un mundo para el que había que iniciarse en nuevos lenguajes.
Para ello, WebOS se apoya en un framework llamado Mojo, que nos prové de todas las funciones y herramientas necesarias para comunicarnos con el dispositivo, además de la inclusión de una versión ligeramente modificada Protoype para poder lanzar llamadas AJAX Cross-domain sin restricciones.
Además WebOS nos facilita una amplia colección de estilos css predefinidos, y elementos a los que ellos llaman widgets (botones, selectores, date pickers, y demás controles…) que hacen muy sencilla la creación de aplicaciones con el look&feel del sistema.
Por si fuera poco… WebOS soporta HTML5 con todas sus consecuencias … por lo que tendremos la posibilidad de disponer de una base de datos SQLite local a la que accederemos directamente con las nuevas primitivas de HTML5.

Para mí ha sido todo un regalo, porque han conseguido eliminar la fase de aprendizaje para que nos podamos centrar en el desarrollo en sí. Todo un gran acierto también para captar a nuevos desarrolladores a los que otras plataformas les hubiera costado mucho más llegar.

Ya iré contando más cosillas sobre WebOS y Palm Pre…

Silverlight

Ésta mañana he estado en unas charlas técnicas de MSDN sobre Silverlight, la nueva tecnología de Microsoft para la web. Tengo que admitir que me he quedado con la boca abierta. Las posibilidades que nos da Silverlight a los desarrolladores web son impresionantes.
Parece que Microsoft ha aprendido bien la lección y está haciendo las cosas más que bien…

La nueva tecnología Silverlight es un intento de arrebatar a Flash su dominio absoluto en cuanto a experiencias ricas en la web, con reproducción de vídeos, efectos gráficos, etc… pero a diferencia de su competidor, con unas ventagas para la parte de desarrollo que Flash no ofrece ni por asomo. Microsoft ha desarrollado una tecnología multiplataforma y multinavegador, lo que permite que cualquiera que se instale el plugin de Silverlight en su equipo, sea cual sea su plataforma preferida, podrá disfrutar de páginas en Sílverlight. La experiencia de usuario es bastante similar a la que un usuario experimenta ante flash, pero el desarrollo es otro cantar.
Silverlight está basado en javascript y un formáto propio (que no propietario)  de XML al que han bautizado como XAML (que marca los patrones de las animaciones y comportamiento del objeto), con los que no solo se definirán las acciones, eventos, efectos, etc.. de nuestro Silverlight, sino que serán el canal de comunicación para tener control sobre ellos. Cuando cargamos una aplicación en nuestra web, se genera algo parecido al DOM pero própio de Silverlight, aunque conectado directamente con el DOM real de nuestro navegador a través de una librería js de Microsoft que previamente hemos cargado en la página (asombrósamente, sólo pesa 8kb !!!!)
La ventaja principal sobre Flash desde mi punto de vista, es que toda la comunicación y control sobre la aplicación la realizamos con javascript, lo que facilita inmensamente el desarrollo (a diferencia del actionscript de Flash), y el hecho de que toda la estructura del objeto esté basada en el XAML, nos permitirá desarrollar páginas en nuestro lenguaje preferido (PHP, Ruby, Python, Java,…) y generar dinámicamente estos XAML, lo que nos da unas posibilidades asombrosas.

Además, existen aplicaciones de Microsoft para facilitar el desarrollo de Sílverlight (aunque no son extrictamente imprescindibles)  como Blend ó Expression, que no me atrevo a describir porque habría que verlas en funcionamiento para entender perfectamente su grandeza…

En definitiva, y después de éste post (no patrocinado por Microsoft aunque lo parezca), hoy ha sido un día absolutamente revelador… Espero (estoy seguro…) que pronto empezaré a desarrollar en Silverlight.