Estávamos ansiosos para saber o que anda acontecendo com o Firefox. Mike Beltzner, o diretor do navegador de código aberto, nos contou mais sobre isso. A seguir, o que ele tem a dizer sobre futuras funções, competição com o Google Chrome e como ele coordena o trabalho de todos os colaboradores do Firefox.

Quando Beltzner se formou na Queen’s University no Canadá, com título de bacharel de Educação em computação e matemática e BSc em ciência cognitiva, ainda faltavam três anos para surgir o Firefox, resultado da insatisfação com o excesso de funções no Mozilla Suite. Ele descobriu rápido que "não tinha paciência com alunos de ensino médio, nem sindicatos", mas um recrutador achou que os estudos dele, junto a seu tenure como um webmaster autônomo e como diretor de layout para o jornal semanal Golden Words, o tornavam a escolha certa para a equipe de design de experiência do usuário da IBM.

O trabalho na IBM envolveu, em parte, ver trabalhadores usar programas B2B por trás de uma lupa — vendo seus clientes mas não sendo visto — mas também foi onde Beltzner descobriu o gosto por desenvolvimento em código aberto, no projeto Eclipse. Depois de chegar na Mozilla e trabalhar como líder de experiência ao usuário por três anos, ele assumiu a função de diretor em julho de 2008. Hoje em dia, quase todo o trabalho de Beltzner, decisões e conversas com as equipes são feitas de forma aberta, discutidas e analisadas constantemente em vários canais de tecnologia — uma espécie de lupa que amplia dos dois lados.

O Lifehacker conversou com Mike Beltzner por telefone na semana passada sobre o trabalho como diretor do Firefox, como o Firefox pode crescer para ajudar os usuários a realizar mais coisas e de formas mais eficientes, e como e onde a equipe do Firefox se encaixa na concorrência entre navegadores, cada vez mais acirrada.

Lifehacker: Como é um dia típico de um diretor do Firefox? Como você distribui seu tempo entre diferentes tarefas, ao longo do dia?

Mike Beltzner: Depende, apesar de eu não querer dar uma resposta "Depende". Eu diria que 50% do meu dia é comunicação. Como diretor do Firefox, meu trabalho envolve coordenar as atividades de milhares que contribuem para o programa que nós produzimos. Eu ajudo as pessoas a entender a coisa mais importante na qual poderiam estar trabalhando hoje. Estamos trabalhando hoje na versão 3.5.2 por exemplo, então surgem problemas com builds, e eu estou coordenando a equipe de lançamentos finais, a equipe de engenheiros, e muito disso depende de comunicação (de forma) clara. … (Com) as conferências por telefone semanais da Mozilla sobre planejamento, eu ajudo na moderação e procuro garantir que todo mundo entenda onde despender esforços para obter maior valor.

Outros 25% do meu dia são gastos colhendo feedback sobre o produto, e a partir daí, descobrindo o que é importante, e descobrindo para onde ir. Aí nos perguntamos quais são as coisas mais importantes que devem sair na próxima versão, então eu diria que "planejamento futuro" ocupariam 25% do meu dia.

Os outros 25% podem ser considerados como supervisão, o tipo tradicional de supervisão. A equipe de supervisão do Firefox garante que os desenvolvedores não tenham que se preocupar com gastos e ajuda aqueles que têm problemas em obter acesso a certos sistemas. E isso não conta as coisas extra que eu faço. Eu sou um designer de software de coração, então eu ainda passo algum tempo trabalhando em designs com a equipe de usuários.

LH: Que ferramentas, sejam programas ou não, você usa para realizar tarefas e gerenciar tudo?

MB: Eu vivo minha vida pelo calendário Zimbra. Eu recebo muitos pedidos de reunião, então para garantir que eu não me atrase para ligações como esta, todos os meus compromissos ficam no meu calendário (compartilhado), então as pessoas sabem quando podem falar comigo. Estou usando o Things no OS X para gerenciar tarefas, em grande parte porque eu uso um iPhone, e eu tento me convencer que o programa de email do iPhone é bom o bastante (risos).

O que eu mais preciso é que, quando eu anote uma tarefa, eu não a perca. Eu uso muitos wikis e ferramentas na web, e uso bastante até pastebin. O wiki.mozilla.org é de fato perfeito para meu trabalho, porque muitas vezes eu estou em uma reunião (onde) as pessoas compartilham ótimas ideias, mas quando eu peço a eles que tornem essas ideias realidade, eles já esqueceram o que disseram. Então mesmo que sejam palavras anotadas rapidamente, eu procuro levar um bloco de notas para toda reunião que eu participo, e acho que (essas notas) são mais úteis em um wiki. Quando eu decido que não posso eu mesmo fazer algo, eu posso apontar o wiki para alguém com as notas já prontas para ela.

Meu trabalho, mais que (o trabalho dos outros), é estar disponível para ajudar as pessoas a estarem mais capazes para realizar seu trabalho. Então eu estou disponível por mensagem instantânea e IRC o tempo todo, e eu acompanho o Twitter… eu tenho uma sensação do zeitgeist da tecnologia [vejo o que é mais importante neste momento no mundo da tecnologia], tenho algumas buscas salvas, e sigo todo mundo com quem trabalho.

Acima de tudo, os desenvolvedores da Mozilla twittam bastante sobre o que acontece no mundo da web e do software, então isso ajuda bastante.

LH: O Firefox é um tipo de sucesso raro no mundo de código aberto. Há mais pessoas que contribuem para o código fora da Mozilla do que dentro — cerca de 1.000 "coders" contribuíram para o Firefox 3.5, enquanto menos de 200 trabalham na Mozilla. Supervisionar o trabalho de todos esses "coders" é muita responsabilidade, dá muita dor de cabeça? Cada "coder" com certeza tem uma visão diferente da forma certa e eficiente de fazer algo…

MB: Eu começo dizendo que, por um lado, acho que comparado com muitas outras empresas de programa de código aberto nos vemos um pouco diferente. A Mozilla começou com 6-8 pessoas, e não havia tanto interesse em trabalhar com (o navegador Mozilla) no início. As pessoas gostam de dizer que o Mozilla saiu do Netscape, claro, mas quando o Mozilla começou, a Netscape havia perdido a guerra dos navegadores, eram poucas as pessoas interessadas em desenvolver navegadores, e não havia muito dinheiro para fazer isso.

Então, por necessidade, as pessoas que trabalhavam oficialmente para a Mozilla decidiram se considerar iguais a qualquer outro que trabalhe neste projeto — elas só tinham o privilégio de passar o tempo todo no projeto… Quando contratamos um desenvolvedor, por exemplo, inicialmente ele não tem direito de acessar a base de códigos. Ele passa pelo mesmo processo que qualquer outro. O código dele é examinado, e não necessariamente por alguém de dentro da empresa: pode ser alguém de fora, que já contribuiu. Então falando sobre lidar com egos e dores de cabeça, já existe um sistema para isso…

… No livro "No Fundo do Poço no Reino Encantado", de Cory Doctorow, existe o "whuffie", basicamente a ideia de uma moeda social, como o "karma" no Slashdot. Quem tem um histórico de tomar decisões inteligentes e produtivas ganha capital social no projeto. O legal é que permitimos que qualquer um com boas ideias entre na comunidade para que possa ver seu trabalho implementado… As pessoas estão sempre trabalhando para o bem maior do navegador. Não é problemático ou muito sujeito a opiniões, exceto quando se trata da interface do usuário.

LH: Como as discussões de interface são moderadas? É um assunto que muita gente pode dar opinião.

MB: É bem mais fácil para as pessoas se sentirem emocionais, e apaixonadas, sobre o design do navegador. Talvez me afete muito, por exemplo, a discussão se devemos ter uma barra de favoritos. Eu uso muito a minha, então sentiria falta… (Mas) o Firefox ocupa mais espaço vertical que qualquer outro navegador hoje, e isso é um problema que temos de resolver. Eu acho que a solução provavelmente vai chatear muita gente, mas eu acho… que o Firefox provou que a web é a coisa mais importante a se ter em um navegador, ele inspirou o design de outros navegadores, e essa é uma boa discussão de se ter.

O modo como eu uso meu navegador é bem diferente do jeito que minha mulher usa meu navegador. Eu não coloco nada no menu de favoritos. Tudo o que eu preciso para depois, para realizar alguma ação, eu coloco em uma lista dropdown chamada "A Pilha". Eu tenho outra pasta com bookmarklets, como o Readability e um redutor de URLs, o is.gd. Minha esposa não tem nada na barra de favoritos, mas os favoritos dela são rigorosamente organizados. E existem muitas pessoas com padrões de uso bimodal. Passamos tanto tempo e esforço tornando o Firefox personalizável por esse motivo — não só por API, mas de forma que o usuário final pode pegá-lo e fazer o que quiser com ele. Eu não acho que seja possível fazer o navegador perfeito para todos, mas você pode dar às pessoas os meios para torná-lo perfeito.

LH: Como você aloca o tempo de desenvolvimento entre consertar e melhorar funções que o navegador já tem, inovar com mais funções, e ver funções de outros navegadores para implementar (no Firefox)?

MB: Não fazemos uma alocação direta, mas, em certos momentos, nossas energias são levadas completamente pela fase de desenvolvimento em que estamos. De março a junho deste ano, por exemplo, estivemos basicamente arrumando a versão 3.5 para ser lançada. Consertar bugs, arrumar coisas pequenas, e (para alguns desenvolvedores) 200 probleminhas chatos com um pixel de dimensão. Passamos muito mais tempo trabalhando em novas funções quando não estamos rumo a um grande lançamento.

… Você talvez ouça que (desenvolvedores da Mozilla) falam sobre uma métrica de tempo de carregamento. Nós sabemos que nosso tempo de carregamento é um problema, e o nosso não é tão bom quanto o de outros navegadores. Estamos trabalhando nesse problema, mas queremos ter certeza de que nossos consertos para os problemas são soluções, algo baseado em inovação, o que requer um pouco de tempo.

LH: O problema/"bug" mais comum do Firefox parece ser o consumo de memória à medida que se navega na web. O Firefox não usa muita memória ao iniciar, mas depois de usá-lo um pouco, abrindo e fechando abas, os usuários veem que ele usa muita memória, e às vezes precisam reiniciar o navegador para recuperar memória RAM. Isso é um problema conhecido entre os desenvolvedores? É difícil saber os motivos disso, de usuário para usuário?

MB (por email): O feedback sobre consumo de memória é definitivamente algo que ouvimos frequentemente de nossos usuários, e sem querer culpar sempre os mesmos, com frequência o problema está na verdade relacionado a plug-ins, extensões e páginas da web mal-codificadas. Nós trabalhamos muito no Firefox 3 para tornar nossa alocação de memória mais eficiente, e também para criar uma tecnologia que conserte problemas comuns criados por plug-ins, extensões e páginas, mas a verdade é que a maioria das páginas da web criam elementos renderizados por plug-ins que geram vazamento de memória com o tempo. Quanto mais tempo você deixar a página aberta, mas memória vai vazar.

Nós realizamos um teste bastante meticuloso, no qual nós:

– Abrimos 30 abas, cada uma com uma página diferente do Alexa 500;

– Fechamos uma aba e abrimos outra, também do Alexa 500 — fazemos isso para as 30 abas;

– Fechamos todas as abas, exceto uma.

O gráfico que resulta mostra como o Firefox aloca e libera memória ao longo do tempo. Eu ainda não publiquei os resultados para o Firefox 3.5 em um post do meu blog, mas eles são basicamente os mesmos do Firefox 3.0, que mostra que o Firefox não só mantém uma quantidade estável de memória enquanto abrimos e fechamos as abas, como libera quase toda a memória depois que fechamos todas as abas.

… Então é uma resposta longa, mas sim, os desenvolvedores sabem desse problema, e enquanto continuamos a trabalhar nisso, eu acho que de muitas formas nós ganhamos uma reputação que um dia já foi correta, mas que, com as versões mais recentes do Firefox, não condiz mais com a realidade.

LH: No wiki sobre o Firefox 3.6, existe uma "área de interesse" feita para navegação baseada em tarefas. O que isso quer dizer hoje? A administração de tarefas deve ser feita para caber em um navegador?

MB: Eu acho que isso é identificar um problema que está se tornando aparente. A metáfora do "navegador web" foi criada quando a web iria ser (tipo) um livro HyperCard criado por Tim Berners-Lee… As pessoas não leem mais na web, link após link. Hoje as pessoas interagem, criam coisas no Facebook, consomem mídia, e organizam a vida na web. Eu não acho que isso deva desaparecer, então o que (a navegação baseada em tarefas) quer dizer é: se quero pagar contas com o Firefox, ele deveria ser mais organizado para a tarefa de pagar contas. Eu deveria ser capaz de dizer "Eu quero pagar contas agora", e o navegador deveria me ajudar a fazer isso.

O Taskfox e o Ubiquity são decididamente parte disso… Algo como busca por palavras-chave é o que estamos procurando agora. Já vimos muitas extensões legais nessa área, na verdade, algumas vindo de alguém que precisava de maior acessibilidade. O Chickenfoot, feito no MIT, está caminhando para se tornar uma linguagem de script natural para a web. Usar banco pela internet sempre requer que eu encontre o site do banco, faça login, e chegue à página que quero acessar. Por que o Firefox não poderia saber que meu banco é o Scotiabank, e então lembrar a sequência de eventos que eu passo para pagar uma conta ou ver o saldo? Nossa intenção é descobrir qual a intenção por trás desses padrões, e descobrir meios melhores para se chegar lá.

LH: O Google Chrome recebe muita atenção da mídia por cada nova função, por sua velocidade, atenção em geral. Em quanto o Chrome e as funções dele pesam nas discussões dos desenvolvedores?

MB: O Google é sexy. Está na boca de todo mundo. A primeira vez que ouvi o verbo "googlar", eu pensei "Nossa, o mundo ficou um pouco mais nerd, que legal".

Mais pessoas já tocaram o Google, e entendem o que ele faz. Muito menos pessoas conseguem perceber o que o Firefox faz, exatamente. Dito isso, é extraordinariamente animador ver pessoas trabalhando em um navegador tão alinhado com o que fazemos. Nós vemos a lista de desenvolvimento deles, e eles veem a nossa. É bom que haja outras pessoas pensando sobre funções para o usuário final que as pessoas vão querer. Mas o Chrome se beneficia do fato de que, quando você cria algo do zero, é mais fácil jogar tudo pro alto sem se preocupar com as consequências.

Todos nós tentamos usar vários navegadores diferentes, e o Chrome surge mais nas discussões, ferramentas e construção de tecnologias (que outros navegadores). É bom para checar nossas próprias convicções sobre o que pode ou não ser incluído em um navegador. E é recompensador ver, ecoada em outros navegadores, a ênfase do Firefox em simplesmente apresentar uma web padronizada e sair da frente (do usuário).

LH: Quando o Chrome ou qualquer outro navegador solta uma versão nova, a velocidade acaba sendo uma grande parte das discussões hoje em dia. Fazemos testes de velocidade, outros sites também, e cada empresa divulga seus testes mais favoráveis. Qual a importância da velocidade e de benchmarks nos navegadores modernos?

MB: Velocidade é importante. Não só da perspectiva de esperar o navegador fazer algo, mas também da perspectiva de desenvolvimento de aplicativos. A velocidade das engines de JavaScript modernas são completamente diferentes do que se poderia fazer antes. Meus programas de e-mail e calendário, usando os compiladores de JavaScript antigos, seria simplesmente insuportável… Agora usamos engines 10 vezes mais rápidas que as primeiras engines, então ir tirando 100 milissegundos aqui e acolá é questão de excelência do engenheiro. A capacidade de realizar isso, o modo como o JavaScript é reportado para uma engine de teste, isso não importa.

LH: Então você está sugerindo que as suítes de teste são escritas e adaptadas por quem faz engines de JavaScript, para que se saiam melhor nas próprias engines?

MB: Eu tenho certeza absoluta que isso acontece. O SunSpider foi feito por engenheiros da Apple, e apesar de ser bom e nós o usarmos e falarmos sobre ele, o SunSpider dá desvantagens sistemáticas para nossas engines. Às vezes tudo bem, em alguns casos, e nós podemos otimizar (nossas engines) para isso tão bem quanto qualquer outro.

O problema é quando você prioriza esse trabalho em relação ao resto. Se isso vira uma escolha de garantir que tenhamos o melhor JavaScript para o SunSpider, ou garantir que tenhamos o melhor JavaScript para usuários, é uma escolha óbvia… O SunSpider, e outros testes de JavaScript, são como um teste de potência do motor de um carro. De certa forma, ele mostra a performance do motor, mas não diz tudo sobre a performance do seu carro.

Uma das coisas que dá (ao Firefox) a percepção de ser mais lento que outros navegadores é o tempo de abertura pela primeira vez (cold start). Se você usar o (build mais recente) do Firefox, o tempo de carregamento já é melhor que o 3.5. Isso é importante, pois quando você clica para iniciar o navegador, se você está acostumado a esperar que ele carregue, você vai fazer outras coisas enquanto ele abre. O tempo que leva para você voltar e usar o navegador é a percepção que você tem de quanto tempo (o navegador) leva para carregar.