Firefox para Android pode abandonar o XUL e ficar mais rápido
Via info.abril.com.br:
O diretor de engenharia do Firefox, Johnathan Nightingale, revelou em uma lista de e-mails que o navegador da Mozilla irá convergir para a interface nativa do Android.
A mudança enterra a tecnologia XUL, que é utilizada pela Mozilla muito antes de existir o Firefox. Utilizar a interface nativa do sistema pode acarretar em início mais rápido, menos uso de memória e movimentos mais inteligentes para zoou e navegação, afirmou Nightingale.
• Publicado por Augusto Campos em
2011-10-17
Zoou? Zoou quem? O quê? rs
O XUL já é pesadão no desktop, imagina em dispositivos mais limitados…
No mais, a maneira que o Android permite que se organize o layout, é bem mais fácil de mexer (é quase CSS).
Minha humilde opinião é que a Mozilla já deveria ter abandonado o XUL e qualquer outro tipo de linguagem interpretada a séculos.
Usando linguagens interpretadas, como o XUL, por um lado, temos uma tecnologia multiplataforma se a mesma máquina virtual for portada para outras plataformas, mas por outro lado, nunca será tão rápido nem consumirá o mínimo de memória quanto a mesma versão da aplicação, com os mesmos algoritmos, usando uma linguagem que gere código nativo, ou seja, linguagem de máquina, como faz algumas linguagens como C/C++ e Pascal (Delphi, FPC, Lazarus, GPC, etc…).
Posso estar redondamente errado, mas se migrarem o Firefox para C/C++, por exemplo, o ganho de performance junto com a redução de consumo de memória vai dar a idéia de seguir o mesmo caminho nas outras plataformas, ou seja, nas versões do Firefox para PC.
Estou rezando por isso.
@Sandro Souza, Não sei se você pode chamar o XUL de “linguagem interpretada”. O XUL é só uma especificação de XML para interfaces gráficas, então é só uma linguagem de estruturação de dados, não de código. Muitos toolkits gráficos usam coisas parecidas com o XUL, por exemplo, no Gtk há o formato do Glade (também em XML) que muitos aplicativos abrem em tempo de execução em vez de “compilar” em C, apesar de ser possível. O Qt também tem um esquema parecido, com aquele formato .ui, e agora com o QML. Não acho que o fato de usar XUL, por si só, seja um gargalo de performance, parece-me mais uma falha de design do sistema como um todo. Porque veja, nada impede de “compilar” o XUL para C++ ou mesmo para um formato Binary XML.
O José Ricardo pontuou bem. Só pra complementar, a MS tem algo equivalente ao XUL, que é o XAML, com os mesmos benefícios e desvantagens do ‘irmão’ da Mozilla.
@Sandro, o firefox (gecko, spidermonkey, etc.) atualmente é escrito em C++. O problema dele não é a linguagem, mas sim a maneira como foi escrito. Provavelmente cara que transforma XUL em interface é mal escrito e não possua um bom desempenho. Isso pq o arquivo xul é transformado em interface em tempo de execução do programa que a utiliza, o que é custoso, muito mais do que fazer isso em tempo de compilação.
Considerando a parte negativa que já foi colocada, estou surpreso em ver como o Fx ainda funciona bem, mesmo assim (!)
De fato o XUL não é “interpretado”: é uma língua de marcação.
Pra mim essa é uma das melhores notícias do Firefox a tempos. Ele tem sido um dos mais lentos navegadores no Android por causa do porte da UI. Com o sucesso nessa plataforma, quem sabe não tiram o XUL (ou melhoram o suporte a ele no quesito performance) na versão desktop também?
Conforme tenho estudado, as UIs para Android tb são feitas em XML, num formato no entanto mais sucinto do que o XUL e esse XML é compilado para binário junto com a aplicação, o que dá um desempenho comparável a uma UI feita de forma imperativa.
Quando o FF roda sobre o XUL no Android, seria uma UI em XML (otimizada) que inicia outra UI em XML (XUL) de forma não otimizada. O pior dos mundos.
Talvez a Mozilla pudesse se inspirar no modelo de UI do Android e passar a utilizar alguma coisa parecida no Firefox para Desktop. Só teria a ganhar.