quarta-feira, setembro 03, 2008

Google Chrome: Uma Análise

O anúncio do browser da Google (Google Chrome) está gerando bastante barulho, aqui está a minha contribuição para esta cacofonia.

O Aspecto de Marketing

Na virada do século eu trabalhei por um ano em Marketing de Produto, o que incluiu um curto curso sobre o assunto. Uma das coisas que aprendi é que a tendência natural dos mercados ditos maduros é ser dominado por duas empresas: a líder e a desafiante (aspirante a líder). Um cololário disto é que a pior coisa para uma empresa é ficar na terceiro posição (ou abaixo). Quem está nesta situação tem duas estratégicas básicas: forçar uma mudança de paradígma (criando algo revolucionário e voltando o jogo para o zero-a-zero) ou fracionar o mercado criando uma nova categoria em que seja líder.

Atualmente o mercado de browser tem como lider o IE e como desafiante o Firefox (considerações de merecimento à parte). Google é hoje uma marca extremamente forte e, salvo pisadas na bola fenomenais, irá entrar nesta briga. No "gibi-anúncio" do Chrome fica evidente que a Google está tentando posicioná-lo como revolucionário (considerações de mercimento também á parte).

O Aspecto Econômico I

Porque a Google resolveu criar o seu browser? Existem pelo menos dois grandes motivos, um de curto prazo e outro de média/longo prazo.

No curto prazo, a Microsoft declarou guerra ao Google no mercado de busca. O passado mostra que a Microsoft não hesita em usar os seus produtos estabelecidos como armas para ganhar novos mercados (e em algumas ocasiões a justiça americana julgou que ela passou dos limites). Prevalecendo o domínio do IE a Google fica vulnerável.

No médio/longo prazo, existe o velho conceito do browser como sistema operacional. A teoria é que com as aplicações rodando dentro de um browser padrão o S.O. sob o qual o browser roda passa a ser irrelevante. Oracle e Sun tentaram usar isto no passado para derrubar o domíno do Windows. Não tiveram sucesso, mas as aplicações Web continuam ficando mais sofisticadas.

O Aspecto Econômico II

Numa outra faceta, cada vez mais pessoas se preocupam com o avanço da Google. O medo de um monopólio das aplicações intenet é cada vez maior. Dominando o browser, a Google ocupa mais um pedaço do teritório e proteje um pouco mais a parte já conquistada.

Da mesma forma que no passado os desenvolvedores reclamavam que a equipe de desenvolvimento do Windows passava informações privelegiadas para os desenvolvedores das outras outras aplicações Microsoft, surge a preocupação das aplicações Google estarem prontas para aproveitar novos recursos do Chrome antes das outras.

O Aspecto Técnico

Esta minha análise se baseia principalmente no gibi-anúncio. É claro que ele foi concebido mais pelo departamento de Marketing que pela Engenharia, portanto é preciso dar algum desconto.

De uma forma geral não existem idéias revolucionárias no Chrome. Fãs dos outros browser certamente irão dizer que características do Chrome já existem ou estão em desenvolvimento no seu favorito. Sigo abaixo a ordem do gibi-anúncio.

Logo na primeira página, fala-se em "partir do zero". Embora grande parte possivelmente seja nova, partes importantes vem de código já existente (como já é dito logo na página seguinte) e é claro que o Chrome precisa seguir os padrões já existentes e suportar as aplicações que já estão aí.

Tenho minhas dúvidas sobre até que ponto os browsers são single-threaded. O Firefox onde estou digitando este texto possui 18 threads no momento. O uso de múltiplos processo é uma idéia intrigante. Certamente aumenta o isolamento porém segue o caminho inverso do mundo *nix (o Unix tinha inicialmente somente processos, threads foram introduzidos para melhorar a performance). Uma das novidades anunciadas no IE8 é uma maior resistência à "morte" de uma aba, que é uma das vantagens apontadas para o modelo multi-processo. A vantagem de liberar tudo quando uma aba é fechada ou quando se navega para outro domínio é relativa. Um botão "back" rápido é essencial e uma das características aplaudidas no IE8 (e já existente no Firefox há anos) é reabrir rapidamente uma aba que tinha sido fechada.

A idéia de um task manager no browser parece ótima, porém não ficaria muito otimista quanto a isto permitir identificar o culpado por travadas (a Microsoft luta com drivers hostís há décadas e continuam culpando somente ela).

Os procedimentos de testes são interessantes, mas nada de supreendente. Ousaria dizer que é o mínimo que se espera dos vários desenvolvedores de browser (testes unitários, testes automáticos, testes aleatórios, etc).

Uma parte crítica em um browser é a rending engine e o Chrome utiliza a webkit, que é a mesma usada no Safari da Apple. Um destaque da webkit é gabaritar nos testes Acid2 e Acid3. Por outro lado, passar em testes de aderência a padrões não é um quesito necessário nem suficiente para um browser (basta ver que o IE é quem sai pior nestes testes).

JavaScript é hoje a base da chamada "Web 2.0" e abusada para limites nunca sonhados inicialmente. É um dos pontos em que a Google decidiu investir mais, criando um novo interpretador (V8). Como outros interpretadores modernos, o V8 dispõe (ou disporá?) de compilação JIT e garbage collection eficiente. Não por acaso, o Firefox também tem um novo interpretador de JavaScript em desenvolvimento.

A interface com operador será a parte mais notada pelos usuários. Seguindo a linha dos demais browser, a área no topo é reduzida, ampliando a área útil. As caixas de endereço e busca foram juntadas em uma só, o tempo dirá se isto facilita ou complica. Um recurso que me fará falta é a facilidade de mudança de máquina de busca (eu mudo toda hora entre o Google e a Wikipedia).

As abas recém abertas apresentarão miniaturas das nove páginas mais visitadas. Este é mais um recurso já existente em outros browsers. Eu uso em casa o plugin fast dial do Firefox; por outro lado prefiro uma página fixa no trabalho.

O Chrome vai incluir um modo de maior privacidade, que já existe em alguns browser e causou algum barulho no beta do IE8. Basicamente este modo tenta evitar registrar no micro as páginas acessadas, para permitir "escolher presentes" (interessante, é o mesmo eufemismo da Microsoft, o uso real deste recurso é obvio). Não custa lembrar que nos dois casos registros da navegação podem estar sendo registrados externamente (por exemplo no proxy de acesso à internet na rede da empresa) ou mesmo no próprio micro em locais acessíveis por um investigador persistente.

Como todo browser moderno, o Chrome terá recursos para bloquear pop-ups. É claro que continuará existindo gente tentando burlar e pop-ups legitimos sendo bloqueados.

A parte de segurança também não me parece ter nada revolucionário. Existe a promessa de um maior bloqueio a ações indevidas e uma excessão já criada para os plugins.

Por último temos o Gears que é uma expansão do browser para fornecer funções locais mais avançadas (o que poderíamos dizer ter sido a mesma motivação para os controles ActiveX da Microsoft).

Como Será a Briga?

Para quem pensa que o Chrome vai triunfar fácil desde o começo, um dos primeiros relatos de testes mostra que a versão liberada hoje ainda não está totalmente ao nível do hype. Além de achar lento, o reporter conseguiu travar todas as abas ao tentar ver um vídeo em uma delas. Nada inesperado numa primeira versão beta, mas vale como uma lembrança das dificuldades pela frente.

Não há dúvida que a Microsoft irá reagir fortemente ao Chrome, investindo ainda mais no IE8 (tanto em aspectos técnicos como de marketing).

Meu palpite é que quem vai sofrer mais com a entrada do Google vão ser os menores, particularmente o Firefox, que não terão fôlego para enfrentar mais este desafiante.

Uma coisa é certa: os desenvolvedores web vão sofrer mais no curto e médio prazo, tendo mais um browser para suportar.

4 comentários:

Luca Bastos disse...

Do zero, zero mesmo é claro que não foi. Senão o Google não teria contratado em 2005 um dos principais desenvolvedores do Firefox. Ver Google hires Firefox lead developer

Uma opinião que posso estar enganado: o Gears tem pouco ou nada a ver com ActiveX. E funciona sem apoio do S.O.

Estou usando desde que saiu e até acho que sou um "heavy user". Até agora só reclamo de ser mais difícil organizar os favoritos. Muitos usuários do GUJ também já estão usando e ninguém encontrou erros. A impressão é das melhores.

Por fim, foi perfeita sua observação sobre a dificuldade dos desenvolvedores web com mais um browser para testar.

Anônimo disse...

Excelente postagem amigo! Estou testando o Chrome, e por enquanto até agora tem me agradado. Senti falta de alguns recursos, mas acredito que o Google já já os implantará.

Abraço!

Daniel Quadros disse...

Luca,

Do ponto de vista de implementação o Gears é bem diferente do ActiveX mas o problema que tentam resolver é (na minha opinião) o mesmo: como dar acesso aos recursos locais a uma aplicação Web. O Gears interage sim com o S.O., na lista de requisitos para compilar está o plataform SDK.

Rico Soares disse...

Artigo muito bem articulado, excelente. Testei o Chrome imediatamente ao anúncio do seu lançamento oficial e "revolucionariamente" não encontrei absolutamente nada especial. Minha expectativa ao ver uma reportagem no noticiário era encontrar algo totalmente inusitado, funcional, fora dos padroes. Mas o que encontro? Mais um browser alternativo e fraco em inovações. A minha dúvida é se esse briga será realmente Google X Microsoft ou simplesmente Google Chrome X Google Firefox.