Articles

A história por trás do Google Chrome

Ben Goodger and Google Chrome

Google lançou ontem à tarde o seu segundo navegador web, adicionando espaço de manobra adicional para aplicações web esticando os limites do que é possível realizar dentro de um navegador web. A equipe do Google Chrome reuniu especialistas em vários campos nos últimos seis anos, tanto através de contratações como aquisições diretas, para criar um novo navegador e seus componentes críticos a partir do zero. A GMail e o Google Maps levaram a Web aos seus limites, tirando partido das tecnologias de navegação inventadas em Redmond, mas que ficaram inactivas durante demasiado tempo. Contribuir para o núcleo do Firefox, escrever extensões de browser e defender o HTML só poderia levar a empresa de 150 mil milhões de dólares até agora: eles precisavam de possuir o browser completo para impulsionar os seus esforços na Web a toda a velocidade.

  1. Frustrações crescentes
  2. Impulso de aquisições
  3. Um novo navegador do zero
  4. Revar seus motores JavaScript
  5. Reunir-se à equipe
  6. Resumo

Frustrações crescentes

Brian Rakowski juntou-se ao Google em julho de 2002 como o primeiro gerente de produto associado da empresa. A sua primeira tarefa? Lançou o GMail com funcionalidades e capacidade de resposta a clientes de correio electrónico rivais. O Gmail aproveitou recursos relativamente inativos do navegador como XMLHttpRequest, sockets, prefetch e muito mais para criar uma aplicação web esticando os limites do que era possível dentro dos navegadores da web de 2004. O Gmail de hoje em dia continua a correr nos limites de um navegador, definindo os requisitos mínimos do Internet Explorer 7+ e do Firefox 2+. As equipes de aplicativos web do Google, como Maps e Mail, batem a cabeça continuamente contra as mais recentes capacidades dos navegadores web e, em alguns casos, inventam seus próprios tempos de execução.

Ian Hickson aprendeu pela primeira vez o funcionamento interno dos navegadores web enquanto estagiário na Netscape. Depois de trabalhar no Opera durante alguns anos e criar testes para o Firefox Ian juntou-se ao Google para continuar o seu trabalho nas novas funcionalidades dos browsers. Os testes “ácidos” de conformidade com HTML5 e navegador são tentativas significativas de Ian e outros para redefinir navegadores da web através de especificações, testes e implementações, mas até agora o Google só podia oferecer ajuda de desenvolvimento e extensões de navegador como Gears para acelerar as capacidades do navegador.

Google ampliou o que não podia adicionar imediatamente ao núcleo do navegador. Gears para novas funcionalidades de aplicativos em vários navegadores. Browser Sync para sincronizar as configurações e dados do navegador em vários computadores. Navegação segura para criar mais confiança na web. Equipas de cada uma destas extensões estão agora a trabalhar no Google Chrome.

Acquisition Boost

Google lançou o seu primeiro navegador Web oficial em 18 de Agosto de 2008 com o lançamento beta do sistema operativo móvel Android. O Google adquiriu o Android em agosto de 2005 para estabelecer uma base de dados no mercado de computadores (e Web) de crescimento mais rápido: os aparelhos móveis. O Android destaca as propriedades da web do Google através de seu navegador baseado no WebKit e aplicativos dependentes. O Google adquiriu o Reqwireless baseado em Ottawa e o seu navegador de internet móvel no Verão de 2005 para se juntar à equipa do Android na sua interface de internet. As vistas Web são parte integrante do Android e o Google Chrome partilha muito do código do Android, incluindo o seu motor gráfico.

Google Chrome e Android tiram partido da biblioteca gráfica vectorial Skia desenvolvida por uma pequena empresa na Carolina do Norte, adquirida pelo Google em 2005. A equipe da Skia trabalhou anteriormente no popular motor gráfico do navegador móvel Openwave. O navegador Google Chrome inclui portas do motor gráfico da Skia para Windows, Mac e Linux.

Google adquiriu a empresa de segurança de aplicações GreenBorder em Maio de 2007. A tecnologia GreenBorder automaticamente sandboxes código web e tráfego de rede, criando uma ponte entre as aplicações. A tecnologia GreenBorder isolou instâncias do Internet Explorer ou Firefox em uma “caixa de areia” dentro de instâncias de máquinas virtuais. Estas sandboxes formam as camadas de isolamento de código do Google Chrome, protegendo outras abas e o sistema operacional pai do código executado em cada página web.

Um Novo Navegador de Raspadinha

Ben Goodger, líder tecnológico do Google Chrome, é mais conhecido por montar o navegador Firefox a partir do conjunto de aplicações SeaMonkey do Mozilla. Manticore, Camino, e mais tarde Firefox foram todas tentativas em 2001 para repensar o web browser para a era moderna. A navegação tomou o palco central de uma suíte de comunicações, interfaces de usuário reimaginadas para eficiência Web, e (alguns) cruft legado jogado para o lado. O Google contratou Ben em 2005 para reforçar as suas próprias contribuições de navegador e eventualmente rearquitectar completamente um navegador Web para a Web moderna.

Google contratou os principais programadores Firefox em 2005 e 2006, tais como Darin Fisher, Pam Greene, e Brian Ryner. Na Primavera de 2006, a equipa começou a trabalhar num novo protótipo de navegador construído sobre o WebKit concebido para aplicações web de banda larga, sempre ligadas, como o Gmail ou o Google Maps. Os especialistas em navegadores poderiam dar às aplicações web algum espaço para respirar?

Modernos computadores possuem CPUs multi-core multi-gigahertz, gigabytes de memória, megabits de largura de banda e discos rígidos volumosos. Nossos navegadores devem separar as abas do navegador em seus próprios processos, multi-tarefas em todas as comunicações com o sistema operacional, aumentar o tamanho do cache, e não ter medo de comandar mais largura de banda quando disponível. Internet Explorer 8, Firefox 3.1 e Apple Safari estão tomando novas abordagens aos navegadores web para máquinas modernas, mas o Google Chrome tem a vantagem de um novo começo para alcançar algumas características não possíveis atualmente em outras arquiteturas de navegador.

Funcionalidades como isolamento de abas e monitoramento de tarefas são tarefas difíceis de adicionar dentro de uma arquitetura de navegador existente de tempos de execução compartilhados e modelos de janela (como John Resig mencionou). O Internet Explorer 8’s Loosely Coupled IE abstrai parcialmente as instâncias de tabulação do navegador e a indústria geralmente está indo nessa direção.

Monitoramento de recursos específicos de aplicativos web deve motivar mais sites a reduzir o inchaço do navegador agora que eles foram identificados. Usuários individuais também podem comparar o uso de recursos de aplicativos web diretamente com seus equivalentes.

Revar seus motores JavaScript

Lars Bak e sua equipe em Århus, Dinamarca, passaram muitos anos escrevendo máquinas virtuais: os tempos de execução que traduzem o código de programação em código de máquina. Lars escreveu o Java VM da Sun, HotSpot, e mais tarde emagreceu o VM para J2ME (projecto HI da CLDC Monty). Alguns anos atrás Lars e sua equipe na Dinamarca começaram a trabalhar em um novo motor JavaScript interpretado otimizado para arquiteturas x86 e ARM.

O motor V8 está especificamente afinado para tarefas JavaScript recursivas, otimizando componentes comumente usados de sua aplicação. O V8 é multi-threaded, abrindo um novo processamento paralelo em múltiplos núcleos computacionais. O V8 adivinha como você pode usar o seu código JavaScript, e faz backups sobre quaisquer suposições errôneas. É apenas um dos novos motores que veremos dentro dos nossos navegadores web no final de 2008.

Google Chrome poderia ter usado o mesmo interpretador JavaScript que o seu motor de renderização WebKit (JavaScriptCore, SquirrelFish) mas a equipa teve a oportunidade, e o financiamento, de reescrever um intérprete a partir do zero para os tempos de execução no desktop e no telemóvel.

O motor V8 permite novos conjuntos de funcionalidades para as aplicações web do Google, como o Gmail e o Google Maps. Os desenvolvedores de aplicativos web evitam adicionar recursos que atrasam visivelmente os navegadores ou causam pausas de processamento na sua experiência com aplicativos. A nova velocidade em novas áreas adiciona funcionalidade aos aplicativos existentes. Os programadores do Google devem criar códigos mais eficientes, testados contra vários intérpretes e otimizados para computadores modernos, como resultado do V8. Mesmo que o Google Chrome não ganhe uma quota de mercado significativa do navegador, ainda assim espero que seja o melhor navegador de um site para as aplicações web do Google.

Google Chrome adiciona funcionalidade JavaScript adicional através do Gears. O Gears está incluído em cada instalação do Chrome, adicionando novas funcionalidades ao navegador Web mais rapidamente do que os plugins anteriores. As bibliotecas Gears incluem suporte para novas estruturas de cache locais, bases de dados locais, dados de localização, tarefas em segundo plano e manipulação de arquivos. O Chrome aumenta a pegada do Gears disponível para desenvolvedores web, incluindo as próprias aplicações do Google, como o Google Reader e o Google Docs (e o meu blog). O actual código Gears incluído no Chrome replica o código V8 e sqlite já presente no navegador, um parafuso que se espera venha a ser integrado num futuro próximo.

Chrome, V8, e Gears será um novo campo de testes para os esforços HTML5 do Google, ganhando um novo lugar na mesa como implementador com grupos de padrões upstream como W3C.

Meet the Team

Questions with the Google Chrome leads

Eu estou acompanhando pelo menos 20 pessoas envolvidas no projeto Google Chrome através do Google. Tenho certeza que os registros de commit do Chromium revelarão ainda mais (atualização: lista mais completa aqui), mas abaixo está um resumo rápido da equipe do Chrome.

Brian Rakowski, Gerente de Produto Principal Brian foi o primeiro gerente de produto associado do Google em 2002, designado ao Gmail. Mais tarde, ele trabalhou no plugin do Google Browser Sync Firefox. Ben Goodger, Engenheiro de Software Ben é o antigo líder do projecto Firefox 1.0. Ele também é autor do sistema de extensões do Firefox. Ele entrou para o Google em 2005. Mike Pinkerton, líder técnico Mike é um dos membros da equipa do Google responsável por trazer o Chrome para o Mac. Mike trabalhou na Netscape e mais tarde no cliente AOL da Gecko, antes de ser co-fundador do projecto Camino. Mike juntou-se à Google em Setembro de 2005 e continua a liderar o desenvolvimento do Camino. Darin Fisher, Engenheiro de Software Darin foi um colaborador frequente da base de códigos Firefox. Ele se especializou em bibliotecas de rede, cookies e permissões, e no Netscape Portable Runtime. Darin entrou para o Google em 2005. Lars Bak, Engenheiro de Software, V8 Lars foi o principal desenvolvedor no Java HotSpot VM e Monty VM em J2ME para a Sun. Ele foi co-fundador de empresas de VM orientadas a objetos para dispositivos embarcados antes de se juntar ao Google. Lars trabalhou no V8 a partir de uma quinta em Århus, Dinamarca, antes de mudar a equipa para os escritórios da universidade. Kasper Lund, Engenheiro de Software, V8 Kasper partilha uma longa história com Lars Bak a trabalhar em máquinas virtuais. Brian Ryner, Engenheiro de Software Brian é um antigo colaborador do Firefox onde adicionou suporte a roda do rato, afinou o núcleo do motor de renderização Gecko, gestão de senhas, e instaladores de Linux. Pam Greene, Engenheiro de Software Pam é um colaborador de longa data do Firefox. Ela adicionou o OpenSearch ao navegador e contribuiu para a pesquisa de texto completo no Places/AwesomeBar. Ian Fette, Gerente de Produto Ian é um antigo colaborador do Firefox que trabalhou em anti-phishing, anti-malware, correção ortográfica, e na API de Navegação Segura. Arnaud Weber, Engenheiro de Software Arnaud é ex-Diretor de Pesquisa e Desenvolvimento da Netscape e Borland antes de se juntar ao Google para trabalhar em um “projeto secreto” em setembro de 2006. Brett Wilson, Engenheiro de Software Brett trabalhou anteriormente na Barra de Ferramentas do Google. Ele contribuiu para o histórico do Firefox e para a funcionalidade de marcadores. Mike Belshe, Engenheiro de Software Mike ajudou a escrever um add-on do Outlook chamado Chrome for Lookout Software antes de ser adquirido pela Microsoft. Mike também trabalhou anteriormente na Netscape e na Good Technology. Huan Ren, Engenheiro de Software Huan trabalha no controle de fluxo de rede, negociando as interações do navegador com os recursos da rede. Huan trabalhou anteriormente na Microsoft. Erik Kay, Engenheiro de Software Erik trabalhou anteriormente no navegador AvantGo, software anti-spam Qurb para Outlook e Outlook Express. Glen Murphy, Engenheiro de Software Glen é especialista em design de interface de usuário. Ele trabalhou anteriormente na interface com o usuário. Extensões do Firefox. Google Browser Sync, Google Blog Search Evan Martin, Engenheiro de Software Evan escreve ferramentas de teste automatizado para o Chrome e a Web. John Abd-El-Malek, Engenheiro de Software John faz parte da equipe de especialistas em Windows do Google trazendo o Google Desktop, Google Talk e Breakpad para o Windows XP e Windows Vista. Amanda Walker, Engenheira de Software Amanda é uma das pessoas responsáveis pela próxima versão do Chrome para Mac. Mark Mentovai, Engenheiro de Software Mark esteve fortemente envolvido na mudança do Firefox para Mac para sua arquitetura atual baseada em Intel. Ele trabalhou no projeto do Breakpad e em muitos níveis do código do Chrome. Carlos Pizano, Engenheiro de Software Carlos trabalhou anteriormente no GreenBorder e continua a trabalhar no Chrome sandboxing. Mark Larson, Gerente de Programas Mark é também anteriormente do GreenBorder e suas especialidades em sandboxing. Aaron Boodman, Engenheiro de Software, Gears Aaron melhora a experiência do usuário com JavaScript. Ele é mais conhecido pelo seu trabalho no Gmail, Greasemonkey e Gears.

Sumário

Google Chrome original logo

O negócio do Google depende da velocidade e disponibilidade do acesso Web à pesquisa, publicidade e aplicações. O Chrome é a segunda tentativa do Google para controlar melhor a porta da frente para o seu conteúdo com aplicações completas optimizadas para as suas aplicações pesadas. O Google Chrome é uma ferramenta que se baseia no trabalho do Android, adicionando aplicações individuais a sistemas operativos já populares. O Google tem flertado com a ideia do seu próprio navegador web por muitos anos, mas só recentemente lançou implementações funcionais das suas próprias aplicações de navegador completo.

Android, Chrome e Gears continuarão a crescer em uníssono e a estender as peças individuais aos sistemas operativos estabelecidos. O Google está construindo um novo conjunto de camadas de extração de aplicativos que devem ter forte alavancagem em Windows, Mac e Linux para controlar diretamente o destino da empresa nestas plataformas.

É um momento empolgante para novas tecnologias de navegador como Internet Explorer, Firefox e WebKit, cada uma competindo sobre implementações e desempenho padrão. A adição oficial do Google Chrome ao espaço do navegador só reforça a posição do Google, fortalecendo a futura web e oferecendo experiências fortes de navegação em um único site para suas principais aplicações web.