
Nesta última terça feira (20/12/2011) a Mozilla lançou a última versão estável do seu navegador, o Firefox 9. A nova versão conta com melhorias na renderização de páginas e no consumo de memória, colocando o navegador mais uma vez em nível de competição com o Chrome e Opera.
Você pode Baixar a última versão aqui (A página está em inglês, mas o download é da versão Brasileira do navegador). Para quem já usa o Firefox ele será atualizado automaticamente.
Essa melhoria se deve ao fato da nova versão do navegador suportar a “Inferência de Tipo” (Type Inference) e ter seus esforços voltados para redução no consumo de memória. Para entender melhor o que isso quer dizer, e verificar mais duas novidades do Firefox, acompanhe abaixo:
Inferência de Tipo: Já que o JavaScript é uma linguagem de tipagem dinâmica, o que significa que suas variáveis não tem tipo declarado na hora da codificação, o compilador precisa gerar códigos que suportem todas possibilidades para cada variável. Esse é um dos principais motivos pela lentidão no carregamento de páginas que usam JavaScript, e é muito difícil encontrar uma página que, na web de hoje, não o utilize. A Inferência de Tipo surge justamente para resolver esse problema, pois gera informações úteis sobre a aplicação analizando o código e monitorando os tipos de valores que são usados. Ela foi proposta e implementada num projeto chamado SpiderMonkey (Projeto que a Mozilla vem desenvolvendo a cerca de 1 ano). Isso faz com que o compilador gere código muito mais eficiente, e otimize os resultados em até 30% nos principais testes de BenchMark, como Kraken e V8 (Cuidado, seu navegador pode ficar lento e/ou travar ao abrir o V8). Sem contar que também passa a carregar muito mais rápidamente sites que utilizam bastante JavaScript. A Mozilla já tem projetos para a criação de compiladores ainda mais eficientes que serão usados nas novas versões do Firefox. Uma explicação mais detalhada sobre algoritmos e técnicas usadas na Inferência de Tipo podem ser encontradas neste PDF.
Redução no Consumo de Memória: Através de um projeto estratégico, o MemShrink Project, a Mozilla visa três benefícios em potencial para o Firefox: Velocidade, Estabilidade e Reputação. O alto uso da memória era um grande problema do navegador, fazendo com que as pessoas optassem pelos concorrentes. A equipe do PensoTI realizou um pequeno teste para verificar a veracidade dessa constatação. Abrimos 10 abas no Firefox (com 5 extensões instaladas) e no Opera (Que até então era o navegador mais eficiente nesse quesito). Ao final do teste obtivemos um resultado surpreendente: o Firefox consumiu 361MBs de memória contra 386MBs do Opera. Porém, esse teste não deve ser levado como definitivo, uma vez que o consumo de memória do navegador vai mudar de acordo com o sistema operacional, abas abertas e extensões instaladas. De qualquer forma, podemos notar ganhos significativos de performance em relação as versões anteriores.
Escureça as luzes (Dim The Lights): Recurso feito para ser utilizado com o elemento vídeo do HTML5, sobrepondo o fundo do navegador com uma camada de cinza escuro, o que permite o foco no vídeo em questão. Acompanhe uma demonstração nesse link.
Elementos em Tela Cheia: Esse recurso foi feito para potencializar o HTML5 dentro do navegador. Ele permite que qualquer elemento HTML consiga ocupar toda a janela de navegação. Para enteder o que é isso, basta lembrar dos players de vídeo que conseguem se expandir por toda tela. Acontece que hoje já existem situações em que outros elementos (além do vídeo) devem tomar a página, como, por exemplo, jogos desenvolvidos com técnologias HTML5. Veja a documentação dessa propriedade (Em Inglês).
Podemos concluir que atualizar o Firefox para a nova versão é essencial. Se você parou de utilizar o navegador por questões de performance, certamente vai querer dar uma conferida para ver as mudanças. Para as pessoas que utilizam (e/ou trabalham) com complementos e extensões, pode ser uma boa idéia esperar um pouco antes de atualizar o navegador, visando evitar problemas de incompatibilidade. A Mozilla já tem planejada a solução para esse problema também, mas virá apenas no Firefox 10, que será lançado em 31/01/2012.