Navegadores y futuro de las aplicaciones web

diciembre 3, 2009

Poco a poco nos estamos dando cuenta que el futuro de las aplicaciones apuntan a “la nube”. Google ha apostado por ello con cosas como GMail, Wave o el reciente Chrome OS. Como elemento imprescindible en esta migración, estan los navegadores, los “vehiculos” hacia la nube. Pero, ¿están preparados los navegadores para esta migración?

Cuando la web empezo a ser web, nadie se podía plantear que de aquel lenguaje de marcado derivado del SGML como era el HTML se podría crear todo una plataforma de desarrollo de aplicaciones. Para que esto fuera posible se incorporó un lenguaje que dotara de dinamismo a las, por aquel entonces novedosas, paginas webs. Estamos hablando de ECMAScript, mas conocido con el “desafortunado” nombre Javascript. Desafortunado por su parecido con Java, del que no tiene nada que ver.

Indudablemente se podría hablar mucho de Javascript, como por ejemplo de las primeras implementaciones en los navegadores, de JScript, de su caprichosa sintaxis, etc., pero este, no es el objetivo de esta entrada 😉

Javascript ha sido uno de los grandes “culpables” de que hoy contemplemos como futuro las nuevas aplicaciones web, sin embargo, también ha sido el culpable de muchos quebraderos de cabeza para los desarrolladores de navegadores. Dichos navegadores llevan intentando optimizar el motor que se encarga de interpretar el Javascript desde hace mucho tiempo, sin embargo el desarrollo de dichas aplicaciones ha acelerado mas rápido que la esperada optimización.

Google juega uno de los papeles mas importantes en esta evolución y es muy consciente que a día de hoy, Javascript es un “problema” desde el punto de vista del rendimiento. Uno de los pilares de la presentacion de Chrome fué precisamente un nuevo motor opensource de javascript, el V8. Sin embargo, actúalmente parece que el problema sigue latente.

Además de la nueva implementación de google existen multitud de motores de Javascript, como Rhino de la fundación Mozilla, JavaScriptCore que implementa Safari o Carakan en Opera, pero a vista de los resultados actuales parece que mas de uno sigue sufriendo cuando debe ejecutar una aplicación compleja.

Para darse cuenta de todo esto, solo hace falta escoger un navegador y ponerse a dar vueltas por la aplicación web de moda, Google Wave. Si bien es cierto que la propia aplicación esta en una fase muy previa a considerarse estable, es cierto que el problema también se presenta en otros casos similares como por ejemplo Google Maps, aunque es cierto que de una manera mucho menos acusada. En el caso de Google Wave el problema es tan grave que deja el navegador totalmente inusable, en el caso de navegadores “monoproceso” como firefox, la unica solucion es “matar” al propio navegador.

Para probarlo en nuestras carnes, solo hace falta introducir una busqueda que incluya waves publicos, como por ejemplo introducciendo el texto “rpg with:public” y empezar a navegar por los waves. Rápidamente obtendremos resultados como los de las siguientes imágenes.

Firefox en linux ejecutando wave

Safari en OSX ejecutando wave

Chrome en Windows ejecutando wave

Por tanto a la pregunta del inicio del post, yo de momento tengo que decir, no, los navegadores aún no estan preparados para un salto total a la nube. Y si además introducimos en la ecuación los navegadores de dispositivos menos potentes como smartphones y versiones “light” de chrome o safari, aún la situacion se complica mas.


Aplicaciones Web como “verdaderas aplicaciones”. ¿Alguien dijo Chrome OS?

noviembre 13, 2009

wave header

Hoy en día todos usamos numerosas apliaciones web, en ciertos casos incluso han desplazado a las aplicaciones tradicionales.

Quizás la primera aplicación web que nos viene a la mente es GMail, en muchos ocasiones es el unico cliente de correo que utilizamos.

La forma de acceder a estas aplicaciones es mediante el navegador, sin duda una de sus grandes ventajas es el hecho de que pueden accederse desde cualquier lado sin embargo, el navegador es un “concepto” que no acaba de encajar con “aplicación”. Conceptualmente, el navegador no se asocia al hecho de alojar aplicaciones.

Cuando estamos manejando una aplicacion como Gmail o Google Wave, hay varias cosas de un navegador que no acaban de encajar, por ejemplo,

  • No necesitamos la barra de direcciones, no vamos a cambiar de página en el contexto de la aplicación
  • No necesitamos los controles del navegador, como por ejemplo para navegar por la historia, ya que dentro de una aplicación, no se vuelve hacia atras usando dichos controles.
  • No necesitamos las extensiones habituales del navegador, y de hecho prescindir de esto aligerará la memoria ocupada por la aplicación, que en el caso de ciertas aplicaciones ya es bastante.
  • En el caso de que la aplicación quiera enviar alguna notificación, como por ejemplo un mensaje nuevo recibido en GMail, será el navegador el encargado de enviar dicha notificación. Si tenemos en cuenta que una sesion actual en un navegador tiene muchas pestañas, la posibilidad de notificar directamente por parte de la aplicación web se complica.
  • La aplicación no aparece al mismo nivel que el resto de aplicaciones del sistema. Como ejemplo pongamos que queremos cambiar del Editor de Textos al gestor de correo, antes deberiamos pasar primero por el propio navegador. Cosa que es bastante incomodo.

Como vemos, las aplicaciones web piden a gritos salir del navegador y convertirse en aplicaciones “de ley” en nuestro escritorio.

Existen diversas alternativas para “extraer” estas aplicaciones del navegador y convertirlas en una mas de nuestro sistema operativo.

Una alternativa es Prism. Prism es un proyecto de mozilla, que como es evidente usa el motor de renderizado del firefox para crear mostrar la página web. El resultado que obtenemos de usar prism es un programa como otro cualquiera y que al ejecutarlo accederemos a la aplicación quitando todas las decoraciones del navegador.

Si usamos mac, tenemos Fluid, cuyo objetivo es similar.

Y como no, la estrella de toda esta iniciativa de aplicaciones web, google tiene su propia alternativa para crear aplicaciones reales a partir de sus similares en web.

Usando Chrome, podemos separar las webs como aplicaciones mediante la opción de menu llamada: “Crear accesos directos a aplicaciones…”. Usando esta opción las aplicaciones tendrán su propia entidad en el escritorio, apareciendo como cualquier otra en la barra de tareas, o como acceso directo junto al resto de aplicaciones del sistema. Además, cuando lancemos las aplicaciones desde este entorno, se eliminaran los elementos que antes mencionábamos como accesorios.

Wave en Chrome

Seguramente y como mencionaba en el titulo de la entrada, muy pronto estaremos hablando de este concepto mucho mas en serio, puesto que, sacando la bola de cristal del cajón, viendo las últimos movimientos de google, mucho me temo que la idea sobre la que se basa Chrome OS, puede ir por estos derroteros.