martes, 27 de abril de 2010

De Chrome, proyectos Open Source y la Computadora Mundial

De Chrome, proyectos Open Source y la Computadora Mundial: "

Chrome es un navegador web lanzado por Google en septiembre de 2008. Desde entonces su vertiginoso ascenso le ha llevado a tomar cerca del 5% de su mercado, superando a su paso a navegadores más experimentados como Opera y Safari. Aunque está muy claro que su patrocinador es quien le ha impulsado hasta esa altura, no echemos a un lado los beneficios que por sí mismo ofrece a usuarios y desarrolladores. Ahora bien, aquí quiero ofrecerles una mirada a las contribuciones que el proyecto Chrome le ofrece a tres comunidades open source.

Es importante mencionar que aunque Chrome es presentado como software open source, es más exacto decir que es una suma de proyectos de código abierto más un poco de software que Google considera privado. En este sentido, Chromium es

el nombre que hemos puesto al proyecto open source y el código fuente del navegador que hemos liberado y administrado en www.chromium.org. Uno puede compilar tal código para obtener un navegador completamente funcional. Google toma ese código fuente, le agrega su nombre, logotipo, un sistema de actualizaciones automáticas llamado GoogleUpdate, RLZ [...] y le llama Google Chrome.

Aunque existen más proyectos involucrados/beneficiados, veamos cómo reciben tres comunidades open source las aportaciones desprendidas del Proyecto Chrome.

WebKit

WebKit es un motor de renderizado que fue usado por Safari antes que por Chrome y creado como fork de un proyecto para KDE. Pero fue el navegador de Google quien le dio un impulso definitivo como tecnología web. WebKit dice de Google que

[sus] empleados han contribuido al código [...] esto incluye trabajo en portabilidad, reparación de errores, mejoras de seguridad y varias más.

De hecho, el código contribuido es entregado primero a WebKit y luego a Chromium. Una interesante aportación es WebInspector: una herramienta invaluable que permite a los programadores web depurar código. El análogo para Mozilla Firefox es la extensión Firebug.

Más interesante aún es haber logrado un WebKit multiproceso, con el motor V8 incluido (ver más abajo). Con las aportaciones de Google, WebKit es simplemente más rápido y casi un estándar para propulsar navegadores web que, por ser open source, otros proyectos pueden mirar y adoptar/adaptar, como sucede con Midori.

Para Apple, tal versión multiproceso del motor de renderizado es impráctica al implementarse en otros navegadores web, pues es más cercana a Chrome que al API de WebKit. Es por eso que lanzó WebKit2, con el cual pretenden llevar a más bajo nivel la arquitectura de procesos iniciada con Chromium.

Por cierto, los resultados de soporte HTML5 tienen a los navegadores que utilizan WebKit en los primeros lugares.

Linux

¿Qué contribuye el Proyecto Chrome al kernel Linux? Código no, hasta el momento, pero es probable que le regalará una distribución sin precedentes. Hoy en día el Ubuntu de Canonical es la reina entre las distribuiciones Linux para el usuario final. Pero ¿qué pasará cuando Chrome OS sume uno más a la lista de sistemas operativos disponibles?

El poder mediático y económico de Google evitará que Chrome OS pase desapercibido. Por el contrario, como sucede con casi todos los productos de la gran G, con Chrome OS intentará marcar un hito en nuestra manera de trabajar en internet, y con esto, también hará que muchos oídos escuchen por vez primera las palabras open source y Linux.

Android toma parte en otro asunto, hasta el momento. Google quiere que Chrome OS sea para las netbooks, lo que Android es para la telefonía móvil. Otro Linux, MeeGo, nacido del matrimonio entre Intel y Nokia, puede convertirse en su principal rival en términos de mercado, pero no de la comunidad, pues si hablamos de distribuciones Linux, éstas abundan con ciclos de vida enriquecidos entre sí. Sergey Brin dijo que Android y Chrome OS probablemente converjan con los años.

Chromium OS ofrecerá valioso código de fuente abierta para otros proyectos. Google promete que cualquiera puede descargar el código y hacer su propia versión; tal es el caso de las versiones de Chromium OS construidas por Hexxeh. Eric Schmidt no duda en decir que la versión oficial, Google Chrome OS será todo un éxito a finales de este año.

JavaScript

Con el nacimiento de Chrome, también salió a la luz V8: un motor JavaScript open source multiplataforma escrito en C++ que desde el principio intento vencer a sus competidores (e.g., SpiderMonkey, de Mozilla) en los benchmarks de rendimiento. Básicamente, lo que hace el motor V8 para ser tan rápido es compilar directamente de JavaScript a código máquina, sin necesidad de pasos intermedios creando bytecodes.

Sputnik es otra aportación para la comunidad open source. Se trata de un exhaustivo conjunto de pruebas para conocer el soporte del estándar ECMA-262 para JavaScript. La siguiente imagen muestra los resultados arrojados por Sputnik para cinco populares navegadores.

Donde Opera sale muy bien parado.

La última innovación para V8 es Irregexp, una implementación de las expresiones regulares para el motor JavaScript, desde cero. ¿Para qué? Naturalmente, para mejorar aún más el desempeño.

JavaScript es el engranaje que mueve a ese monstruo llamado Google, quien con ayuda de AJAX conquistó el mundo de las aplicaciones web y la nube. No es fortuito que Google aporte ideas, código e implementaciones para mejorar el lenguaje. Como dice Tony Mobily de la Free Software Magazine, JavaScript llegará a ser el nuevo CPU del mundo.

La Computadora Mundial

De Chrome podemos desprender un buen grupo de proyectos open source. ANGLE, por ejemplo, porta el estándar WebGL para DirectX9. Esto me conduce a pensar en un futuro navegador web con capacidades gráficas sin precedentes, incrustado en el cómputo nube de las Google Apps, propulsado por un poderoso motor V8, multiplataforma, multiproceso para aprovechar las arquitecturas de CPU actuales, y soporte completo para una web enriquecida con el estándar HTML5

Los ideas que sostienen ese navegador en proceso de fabricación no son, en mi opinión, innovación de Google. En el fondo es una contribución e implementación más en pro de lo que Anderson y Kubiatowicz llamaron “La Computadora Mundial”:

Un sistema operativo que abarca internet, y que podría conjugar el poder de millones de PC’s interconectadas para beneficio de Google de todos.

Como sea, hoy el Proyecto Chrome nos ofrece un impresionante artefacto técnico científico que emana un preciado, aunque a veces controvertido, código a las comunidades open source con las que dice estar en deuda:

Estoy seguro que le dedicaremos aún más líneas. Le serán bien merecidas.



"