In defense of Firefox
Autor original: Jonathan Corbet
Publicado originalmente no: https://lwn.net/
Tradução: Roberto Bechtlufft
Em condições normais, não se espera que um post sobre um bug relacionado ao desempenho em um pré-lançamento de software gere muito interesse. Mas quando o LWN apontou um post que descrevia o bug do fsync() no Firefox 3, o resultado foram mais de 90 comentários (da última vez que contamos). Certamente há algo curioso acontecendo aqui para atrair esse nível de interesse. Mas parece que nem todos os participantes da discussão estão tirando as conclusões corretas.
O Firefox 3, como muitos outros aplicativos, usa o banco de dados sqlite. No caso do Firefox, o banco de dados é usado para armazenar o histórico de navegação do usuário; um usuário ativo pode gerar bastante tráfego no banco de dados em pouco tempo. Para atualizar o banco de dados, o sqlite chama o fsync() para garantir que os dados cheguem ao disco. Coisa básica, nada que devesse causar muito problema.
Só que causa problema, pois (1) as chamadas ao fsync() são freqüentes e (2) os sistemas de arquivos Linux não lidam com o fsync() tão bem quanto deveriam. O resultado é que o uso pesado do Firefox 3 no Linux pode arruinar a performance do sistema inteiro. Obviamente é um problema a ser resolvido pelos desenvolvedores do Firefox, mesmo que não seja exatamente culpa deles. E parece que eles pretendem mesmo resolver o problema.
Pode-se argumentar que o Firefox 3 nunca poderia ter chegado a um release candidate com um bug desses ainda por resolver. O problema foi relatado pela primeira vez no início de março, mas a conversa só engatou mesmo no final de abril. Por isso não sobrou muito tempo para resolver o problema antes do release candidate.
Seria mais justificável dizer que o fato dos desenvolvedores considerarem lançar a versão final com esse problema pendente seria de grande insensibilidade às necessidades dos usuários do Linux. A idéia de que eles dariam sua aprovação aos distribuidores que criassem patches para resolver a situação por conta própria não ajuda muito. Esse quadro levanta algumas questões interessantes: o que aconteceria se a Mozilla não aprovasse o patch, e negasse o uso da marca “Firefox” aos distribuidores que tivessem resolvido o problema? Mas isso é apenas uma suposição; parece que os desenvolvedores do Firefox decidiram lançar um segundo release candidate incluindo uma correção para o problema.
Outra reclamação comum é o fato do Firefox estar usando um banco de dados relacional. Isso, supostamente, acrescenta um peso razoável a uma aplicativo que já é bem pesado. Os desenvolvedores retrucam que um banco de dados de verdade é necessário para oferecer os recursos que os usuários do Firefox desejam. Como mostrou a discussão no LWN, realmente existem usuários que querem ter acesso rápido a dados em históricos bem grandes. Até agora, ainda não me empolguei muito com a “incrível barra” – a barra de endereços “turbinada” do Firefox 3 – mas parece que outros usuários estão bem animados.
É importante acrescentar recursos que os usuários vão achar “incríveis”. Também é importante, obviamente, criar um aplicativo pequeno e rápido. Os desenvolvedores do Firefox têm que trilhar um caminho entre o acréscimo de novos recursos e a manutenção de um aplicativo de tamanho geral razoável, e acabam recebendo pedradas dos dois lados pelas decisões tomadas. O que é pesado e desnecessário para um usuário é indispensável para o outro; é difícil agradar a todos. Mas geralmente se mantém mais usuários satisfeitos dando a eles os recursos que pedem.
Apesar de tudo isso, o Firefox 3 exibe o resultado de muita atenção dada ao desempenho e ao uso de memória. Ainda não fiz benchmarks formais, mas alguns meses usando as versões beta me fizeram concluir que o Firefox 3 é mais rápido que seu antecessor, e que a maioria dos problemas mais graves de uso de memória foram corrigidos. Já faz um tempo desde a época em que era preciso reiniciar o Firefox de tempos em tempos para combater os efeitos do vazamento de memória. O Firefox nunca vai ser um programa leve – nem mesmo mediano – mas parece que, por enquanto, o crescimento do monstro foi contido.
O Firefox 3 também inclui melhor integração ao GTK, o que também já gerou reclamações. Mas uma melhor integração com o Linux é algo que os usuários vêm pedindo há tempos. Não é fácil culpar os desenvolvedores por tentarem atender a esse pedido.
No fim das contas, parece que a comunidade do Firefox está mesmo tentando cumprir a promessa de oferecer um melhor suporte aos usuários do Linux. Eles parecem estar fazendo aquilo que se espera deles. Dessa forma, produziram um grande lançamento que, com todos os seus defeitos, é um grande avanço sobre a versão anterior. O processo de desenvolvimento que ajudou a resgatar a internet dos softwares e padrões proprietários continua a todo vapor. Não há dúvidas de que não faltarão críticas aos desenvolvedores do Firefox no futuro. Mas antes de criticar, é bom dar uma relaxada, deixar eles soltarem a versão 3.0 e dar os parabéns a eles por um trabalho verdadeiramente bem feito.
Créditos a Jonathan Corbet – https://lwn.net/
Tradução por Roberto Bechtlufft <robertobech at gmail.com>