Articles

La historia de Google Chrome

Ben Goodger and Google Chrome

Google lanzó ayer por la tarde su segundo navegador web, añadiendo un espacio adicional para las aplicaciones web que amplían los límites de lo que es posible lograr en un navegador web. El equipo de Google Chrome ha reunido a expertos en diversos campos durante los últimos seis años, tanto a través de contrataciones directas como de adquisiciones, para crear un nuevo navegador y sus componentes críticos desde cero. GMail y Google Maps llevaron la Web a sus límites, aprovechando las tecnologías de los navegadores inventadas en Redmond pero que se dejaron de lado durante demasiado tiempo. Contribuir al núcleo de Firefox, escribir extensiones del navegador y defender el HTML sólo podía llevar a la compañía de 150.000 millones de dólares hasta cierto punto: necesitaban poseer el navegador completo para impulsar sus esfuerzos en la Web a toda velocidad.

  1. Frustraciones crecientes
  2. Impulso de la adquisición
  3. Un nuevo navegador desde cero
  4. Rev tus motores de JavaScript
  5. Conoce al equipo
  6. Resumen

Frustraciones crecientes

Brian Rakowski se incorporó a Google en julio de 2002 como primer director de producto asociado de la compañía. ¿Su primera tarea? Lanzar GMail con características y capacidad de respuesta que rivalizaran con los clientes de correo de escritorio. Gmail aprovechó funciones relativamente inactivas de los navegadores, como XMLHttpRequest, sockets, prefetch y otras, para crear una aplicación web que ampliaba los límites de lo que era posible en los navegadores de 2004. El Gmail de hoy en día sigue corriendo hacia los límites de un navegador, estableciendo requisitos mínimos de Internet Explorer 7+ y Firefox 2+. Los equipos de aplicaciones web de Google, como Maps y Mail, se enfrentan continuamente a las últimas capacidades de los navegadores web y, en algunos casos, inventan sus propios tiempos de ejecución.

Ian Hickson aprendió por primera vez el funcionamiento interno de los navegadores web cuando era becario en Netscape. Después de trabajar en Opera durante unos años y crear pruebas para Firefox, Ian se unió a Google para continuar con su trabajo en las nuevas características del navegador. HTML5 y las pruebas «ácidas» de cumplimiento del navegador son intentos significativos de Ian y otros para redefinir los navegadores web a través de especificaciones, pruebas e implementaciones, pero hasta ahora Google sólo podía ofrecer ayuda para el desarrollo y extensiones del navegador como Gears para acelerar las capacidades del navegador.

Google amplió lo que no podía añadir inmediatamente al núcleo del navegador. Gears para la funcionalidad de nuevas aplicaciones en múltiples navegadores. Browser Sync para sincronizar la configuración y los datos del navegador en varios ordenadores. Safe Browsing para crear más confianza en la web. Los equipos de cada una de estas extensiones están trabajando ahora en Google Chrome.

Impulso de la adquisición

Google lanzó su primer navegador web oficial el 18 de agosto de 2008 con la versión beta del sistema operativo móvil Android. Google adquirió Android en agosto de 2005 para introducirse en el mercado informático (y web) de mayor crecimiento: los teléfonos móviles. Android destaca las propiedades web de Google a través de su navegador basado en WebKit y las aplicaciones dependientes. Google adquirió Reqwireless, con sede en Ottawa, y su navegador web para móviles en el verano de 2005, para colaborar con el equipo de Android en su interfaz web. Las vistas web son una parte integral de Android y Google Chrome comparte gran parte del código de Android, incluido su motor gráfico.

Google Chrome y Android aprovechan la biblioteca de gráficos vectoriales Skia, desarrollada por una pequeña empresa de Carolina del Norte que Google adquirió en 2005. El equipo de Skia trabajó anteriormente en el motor gráfico del popular navegador para móviles de Openwave. El navegador Google Chrome incluye puertos del motor gráfico Skia para Windows, Mac y Linux.

Google adquirió la empresa de seguridad de aplicaciones GreenBorder en mayo de 2007. La tecnología de GreenBorder aísla automáticamente el código web y el tráfico de red creando un puente entre las aplicaciones. La tecnología de GreenBorder aísla las instancias de Internet Explorer o Firefox en una «caja de arena» dentro de las instancias de la máquina virtual. Estas cajas de arena forman las capas de aislamiento de código de Google Chrome, protegiendo a otras pestañas y al sistema operativo principal del código que se ejecuta en cada página web.

Un nuevo navegador desde cero

Ben Goodger, director técnico de Google Chrome, es más conocido por haber creado el navegador web Firefox a partir del conjunto de aplicaciones SeaMonkey de Mozilla. Manticore, Camino y, más tarde, Firefox fueron intentos en 2001 de replantear el navegador web para la era moderna. La navegación pasó a ser el centro de la suite de comunicaciones, las interfaces de usuario fueron reimaginadas para la eficiencia de la Web, y (algunos) restos del legado fueron arrojados a un lado. Google contrató a Ben en 2005 para reforzar sus propias contribuciones al navegador y, finalmente, para rediseñar por completo un navegador web para la Web moderna.

Google contrató a los mejores desarrolladores de Firefox en 2005 y 2006, como Darin Fisher, Pam Greene y Brian Ryner. En la primavera de 2006, el equipo comenzó a trabajar en un nuevo prototipo de navegador construido sobre WebKit, diseñado para aplicaciones web conectadas a la banda ancha y siempre activas, como Gmail o Google Maps. ¿Podrían los expertos en navegadores dar un respiro a las aplicaciones web?

Los ordenadores modernos cuentan con CPUs multinúcleo de varios gigahercios, gigabytes de memoria, megabits de ancho de banda y voluminosos discos duros. Nuestros navegadores deberían separar las pestañas del navegador en sus propios procesos, hacer multihilo en todas las comunicaciones con el sistema operativo, aumentar el tamaño de la caché y no tener miedo de pedir más ancho de banda cuando esté disponible. Internet Explorer 8, Firefox 3.1 y Apple Safari están adoptando nuevos enfoques de los navegadores web para las máquinas modernas, pero Google Chrome tiene la ventaja de empezar de cero para conseguir algunas características que actualmente no son posibles en otras arquitecturas de navegadores.

Características como el aislamiento de pestañas y la supervisión de tareas son tareas difíciles de añadir dentro de una arquitectura de navegadores existente de tiempos de ejecución y modelos de ventanas compartidos (como mencionó John Resig). El IE Loosely Coupled de Internet Explorer 8 abstrae parcialmente las instancias de pestañas del navegador y la industria se dirige en general en esta dirección.

La supervisión de los recursos específicos de la aplicación web debería motivar a más sitios web a reducir su hinchazón del navegador ahora que han sido identificados. Los usuarios individuales también pueden comparar el uso de los recursos de la aplicación web directamente con sus homólogos de escritorio.

Rev your JavaScript Engines

Lars Bak y su equipo en Århus, Dinamarca, han pasado muchos años escribiendo máquinas virtuales: los tiempos de ejecución que traducen el código de programación en código máquina. Lars escribió la máquina virtual Java de Sun, HotSpot, y más tarde redujo la máquina virtual para J2ME (proyecto Monty de CLDC HI). Hace unos años, Lars y su equipo en Dinamarca comenzaron a trabajar en un nuevo motor de JavaScript interpretado optimizado para las arquitecturas x86 y ARM.

El motor V8 está específicamente ajustado para las tareas recursivas de JavaScript, optimizando los componentes más utilizados de su aplicación. V8 es multihilo, abriendo un nuevo procesamiento paralelo en múltiples núcleos de computación. V8 adivina cómo podrías utilizar tu código JavaScript, y retrocede ante cualquier suposición errónea. Es sólo uno de los nuevos motores que veremos en nuestros navegadores web a finales de 2008.

Google Chrome podría haber utilizado el mismo intérprete de JavaScript que su motor de renderizado WebKit (JavaScriptCore, SquirrelFish), pero el equipo tuvo la oportunidad, y la financiación, de reescribir un intérprete desde cero para los tiempos de ejecución de escritorio y móviles.

El motor V8 permite nuevos conjuntos de características para las aplicaciones web de Google, como Gmail y Google Maps. Los desarrolladores de aplicaciones web evitan añadir funciones que ralenticen visiblemente los navegadores o provoquen pausas de procesamiento en la experiencia de su aplicación. La nueva velocidad en nuevas áreas añade funcionalidad a las aplicaciones existentes. Los programadores de Google deben crear un código más eficiente, probado contra múltiples intérpretes y optimizado para los ordenadores modernos como resultado de V8. Incluso si Google Chrome no gana una cuota de mercado significativa del navegador, espero que sea el mejor navegador de un solo sitio para las aplicaciones web de Google.

Google Chrome añade funcionalidad adicional de JavaScript a través de Gears. Gears se incluye en cada instalación de Chrome, añadiendo nuevas funciones al navegador web más rápidamente que los plugins anteriores. Las librerías Gears incluyen soporte para nuevas estructuras de caché local, bases de datos locales, datos de localización, tareas en segundo plano y manejo de archivos. Chrome aumenta el espacio disponible de Gears para los desarrolladores web, incluidas las propias aplicaciones de Google como Google Reader y Google Docs (y mi blog). El código actual de Gears incluido en Chrome replica el código de V8 y sqlite ya presente en el navegador, un complemento que esperemos que se integre en un futuro próximo.

Chrome, V8 y Gears serán un nuevo campo de pruebas para los esfuerzos de Google en HTML5, ganando un nuevo asiento en la mesa como implementador con grupos de estándares upstream como el W3C.

Conozca al equipo

Questions with the Google Chrome leads

Estoy rastreando al menos 20 personas involucradas en el proyecto Google Chrome a través de Google. Estoy seguro de que los registros de commit de Chromium revelarán aún más (actualización: lista más completa aquí), pero a continuación hay un resumen rápido del personal de Chrome.

Brian Rakowski, director de producto principal Brian fue el primer director de producto asociado de Google en 2002, asignado a Gmail. Más tarde trabajó en el plugin de Firefox de Google Browser Sync. Ben Goodger, ingeniero de software Ben es el antiguo jefe del proyecto Firefox 1.0. También es autor del sistema de extensiones de Firefox. Se incorporó a Google en 2005. Mike Pinkerton, jefe técnico Mike es uno de los miembros del equipo de Google responsables de llevar Chrome a Mac. Mike trabajó en Netscape y, posteriormente, en el cliente de AOL basado en Gecko antes de cofundar el proyecto Camino. Mike se incorporó a Google en septiembre de 2005 y sigue dirigiendo el desarrollo de Camino. Darin Fisher, ingeniero de software Darin contribuyó con frecuencia a la base de código de Firefox. Se especializó en bibliotecas de red, cookies y permisos, y en el Netscape Portable Runtime. Darin se unió a Google en 2005. Lars Bak, Ingeniero de Software, V8 Lars fue el desarrollador principal de Java HotSpot VM y Monty VM en J2ME para Sun. Fue cofundador de empresas de máquinas virtuales orientadas a objetos para dispositivos integrados antes de unirse a Google. Lars trabajó en V8 desde una granja en Århus, Dinamarca, antes de trasladar el equipo a las oficinas de la universidad. Kasper Lund, Ingeniero de Software, V8 Kasper comparte una larga historia con Lars Bak trabajando en máquinas virtuales. Brian Ryner, Ingeniero de Software Brian es un antiguo colaborador de Firefox, donde añadió compatibilidad con la rueda del ratón, ajustó el núcleo del motor de renderizado Gecko, la gestión de contraseñas y los instaladores de Linux. Pam Greene, Ingeniero de Software Pam es una antigua colaboradora de Firefox. Añadió OpenSearch al navegador y contribuyó a la búsqueda de texto completo en Places/AwesomeBar. Ian Fette, director de producto Ian es un antiguo colaborador de Firefox que trabajó en la lucha contra la suplantación de identidad, el antimalware, la corrección ortográfica y la API de navegación segura. Arnaud Weber, Ingeniero de Software Arnaud es un antiguo Director de Investigación y Desarrollo en Netscape y Borland antes de unirse a Google para trabajar en un «proyecto secreto» en septiembre de 2006. Brett Wilson, ingeniero de software Brett trabajó anteriormente en la barra Google. Ha contribuido a la funcionalidad del historial y los marcadores de Firefox. Mike Belshe, Ingeniero de Software Mike ayudó a escribir un complemento de Outlook llamado Chrome para Lookout Software antes de ser adquirido por Microsoft. Mike también trabajó anteriormente en Netscape y Good Technology. Huan Ren, Ingeniero de Software Huan trabaja en el control de flujo de la red, negociando las interacciones del navegador con los recursos de la red. Huan trabajó anteriormente en Microsoft. Erik Kay, ingeniero de software Erik trabajó anteriormente en el navegador AvantGo y en el software antispam Qurb para Outlook y Outlook Express. Glen Murphy, ingeniero de software Glen está especializado en el diseño de interfaces de usuario. Anteriormente trabajó en la interfaz de usuario. Extensiones de Firefox. Google Browser Sync, Google Blog Search Evan Martin, Ingeniero de Software Evan escribe herramientas de pruebas automatizadas para Chrome y la Web. John Abd-El-Malek, Ingeniero de Software John forma parte del equipo de especialistas en Windows de Google, llevando Google Desktop, Google Talk y Breakpad a Windows XP y Windows Vista. Amanda Walker, ingeniera de software Amanda es una de las responsables de la próxima versión de Chrome para Mac. Mark Mentovai, Ingeniero de Software Mark estuvo muy involucrado en el traslado de Firefox para Mac a su actual arquitectura basada en Intel. Ha trabajado en el proyecto Breakpad y en muchos niveles del código de Chrome. Carlos Pizano, Ingeniero de Software Carlos trabajó anteriormente en GreenBorder y sigue trabajando en el sandboxing de Chrome. Mark Larson, Director de Programa Mark también ha trabajado anteriormente en GreenBorder y en sus especialidades de sandboxing. Aaron Boodman, Ingeniero de Software, Gears Aaron mejora la experiencia del usuario con JavaScript. Es más conocido por su trabajo en Gmail, Greasemonkey y Gears.

Resumen

Google Chrome original logo

El negocio de Google depende de la velocidad y la disponibilidad del acceso a la Web para las búsquedas, la publicidad y las aplicaciones. Chrome es el segundo intento de Google de controlar mejor la puerta de entrada a su contenido con aplicaciones completas optimizadas para sus aplicaciones pesadas. Google Chrome se basa en el trabajo de Android al añadir aplicaciones individuales a sistemas operativos ya populares. Google ha coqueteado con la idea de su propio navegador web durante muchos años, pero sólo ha lanzado recientemente implementaciones de trabajo de sus propias aplicaciones de navegador completas.

Android, Chrome y Gears seguirán creciendo al unísono y ampliando las piezas individuales en los sistemas operativos establecidos. Google está construyendo un nuevo conjunto de capas de extracción de aplicaciones que debería tener un fuerte apalancamiento a través de Windows, Mac y Linux para controlar directamente el destino de la compañía en estas plataformas.

Es un momento emocionante para las nuevas tecnologías de navegador, ya que Internet Explorer, Firefox y WebKit compiten cada uno por las implementaciones de estándares y el rendimiento. La incorporación oficial de Google Chrome al espacio de los navegadores no hace más que reforzar la posición de Google en el fortalecimiento de la web del futuro y ofrece sólidas experiencias de navegación en un solo sitio para sus principales aplicaciones web.