martes, 2 de septiembre de 2008

Google Chrome: la nueva experiencia en navegación


Se oían rumores sobre la intervención de Google en la guerra de los navegadores que desde hace meses se está librando en el campo de batalla de internet pero eran solo eso, rumores. El hermetismo era casi total en la compañía y tan solo se especulaba con el nombre de 'Google Browser'.
Ahora ya es oficial. En pocas horas será lanzado en más de 100 países el nuevo navegador de internet creado por Google y llamado Chrome.

Han empezado desde cero diseñando un navegador que se adecue a las necesidades actuales. Los planteamientos de Google son los siguientes:


  1. La experiencia de navegación ha cambiado. Ya no existen solo páginas web. Además existen APLICACIONES.

  2. Los navegadores han de ser ESTABLES, RAPIDOS y SEGUROS.

  3. Necesitan una interfaz LIMPIA, SIMPLE y EFICIENTE.

  4. Además, ¿por qué no hacer un navegador de CODIGO ABIERTO?. No solamente quieren que otros adopten sus ideas sino, además, que Google Chrome adopte las ideas de otros.

  5. Arquitectura MULTIPROCESO. Es decir, evitar el problema tan corriente que todos experimentamos con, por ejemplo, javascript que mientras que su código se esté ejecutando no tenemos control sobre el navegador hasta que libere el proceso. Esto es un aspecto que, si de verdad lo han solucionado, supondrá un gran avance. Permitirá que los desarrolladores creen APIS con funcionamiento asíncrono, una quimera que muchos llevamos años esperando. Estaríamos hablando de un navegador MULTITAREA algo no visto hasta ahora. Esto supone, claro está, un uso mayor de memoria de la máquina. Las tareas son alojadas cada una de ellas en su propio espacio de memoria, independiente de los demás.

  6. El uso de WEBKIT. Para ello hablaron con el equipo de desarrollo de Android que ya lo había implementado en este sistema operativo. La clave está en la rapidez de proceso y la sencillez para el desarrollador.

  7. La inclusión de Google GEARS. Esto permite ampliar las posibilidades del navegador. Es un recurso interesante para los desarrolladores.
  8. Una máquina virtual JavaScript específica llamada V8

Quisiera hacer hincapié en el punto número 5. Aunque muchos de vosotros no esteis interesados en el funcionamiento de la memoria de un ordenador, conviene conocer su comportamiento para comprender el por qué de muchos de los problemas de lentitud y bloqueos que muchas veces experimentamos cuando navagamos por internet.


Google lo explica extremadamente bien en esta serie de viñetas que ha publicado para mostrar cual será el funcionamiento de Google Chrome y, de paso, argumentar la carencias del resto de navegadores que existen en el mercado. En definitiva vienen a explicar que el secreto está en la buena gestión de la memoria (aprovechando la teoría de java del garbage collector, pero mejorada), en la reutilización de los espacios que se han dejado libres y en la correcta asignación de los mismos.


Existirá asimismo un Task Manager que mostrará qué procesos son los que más memoria están consumiendo, algo novedoso que seguro obligará a más de un sitio web a replantearse sus diseños si no quieren perder clientela. Estamos hablando de que incluso podremos ver individualmente el consumo de memoria de cada proceso en una misma página web (plugins java, plugins flash, gifs animados, AJAX, etc etc). Digamos que no es solamente un navegador. Hablamos de toda una herramienta de depuración. Este concepto ya existe en Mozilla Firefox y muchos desarrolladores ya lo usan. El famoso FireBug. Se detectarán los procesos problemáticos y podrán ser eliminados de una forma sencilla. Como dice Google "(...) Placing BLAME where blame BELONGS".


Para llevar a cabo una tarea tan impresionante, Google ha tenido que utilizar una tecnología denominada "Chrome Bot" que cargaba millones y millones de páginas de internet escrutando todas y cada una de las líneas de codigo en busca de fallos y errores del navegador Chrome. Es decir, han utilizado prácticamente todo internet durante meses para depurar su navegador. Digamos que han jugado con ventaja aprovechando toda su infraestructura para ello, algo que es lógico.


Pero, como dicen en Google, existen billones, trillones (que exagerados son los yanquis) de páginas web "out there" y nosotros solo hemos probado unos pocos millones de ellas en cada "build" de nuestro Chrome. Entonces ¿cual ha sido el criterio para seleccionar a esos millones de páginas que nos sirvieran de prueba?. Pues, claro está, las más visitadas. Para eso somos Google.


Otro aspecto importante es que han creado una máquina virtual javascript. Y la llamaron V8. Han introducido tres conceptos nuevos. El primero se denomina "Hidden Class Transitions" y se encarga de mejorar las estructuras de los objetos a través de optimizaciones dinámicas. El segundo, y quizás el mas importante, es que el código no es interpretado. Es ejecutado directamente por el procesador con todas las ventajas de rapidez y efectividad que ello conlleva. Para ello V8 estudia el código javascript, genera código máquina y se lo entrega el procesador para que lo ejecute. Por último han mejorado el recolector de basura ('garbage collector" o, para explicarlo a los profanos, el método de eliminación de procesos inactivos de la memoria). Google dice que el "garbage collector" de las máquinas javascript actuales es desastroso porque usa métodos conservativos. Digamos que, si vas a tirar la basura a un contenedor, le pierdes la pista a tu bolsa. Pero V8 propone conocer siempre el sitio exacto donde fuiste a tirar la basura para poder reaprovechar la bolsa para la siguiente basura que generes. Qué joios los de Google.


Lo bueno de V8 es que es independiente de Chrome, es decir, que otros navegadores lo podrán utilizar. Doblemente joios los de Google.


Se ha creado otro concepto llamado OMNIBOX que es la clásica URL BOX o casilla de direcciones pero con unos añadidos que mejorarán sensiblemente la experiencia de la navegación. La OMNIBOX te sugerirá sitios que visitar, ya que no es una barra de direcciones exclusivamente. Es algo parecido al Google Search. Si introduces la palabra asus te aparecerá (espero) asuse3 como sugerencia de navegación.


Otra cosa interesante es el modo INCOGNITO. Habilitando este modo, podrás abrir una página web y Google asegura que NADA de lo que ocurra en esa página podrá ser guardado en el log de tu navegador, ni las cookies, ni la paswords, ni las fotos guarras). Habrá que verlo.


En definitiva, se introducen conceptos novedosos y muy interesantes que nos llevarán a nuevas experiencias en la navegación web. Google participa en la guerra de los navegadores y puede que sea lo último que oigamos hablar de ella ya que, si todo lo que dicen de Chrome es cierto (no lo pongo en duda), la guerra habrá terminado definitivamente, al menos durante un par de años.


Estoy a la espera de probar esta nueva solución de navegación. Según Google, la salida es inminente si no lo ha hecho ya mientras escribo estas líneas.