Os browsers actuais são capazes de executar instruções em JavaScript muito mais rapidamente do que alguns anos atrás. Mas apesar das páginas web actuais se parecem mais com aplicações de desktop, o desempenho do JavaScript é ainda muito longe do que você pode esperar de um programa nativo. Para ajudar a diminuir esta diferença, a Mozilla começou a incorporar o OdinMonkey no Firefox.
A Mozilla lançou há algum tempo atrás o projecto asm.js. Este projecto foi criado pela Mozilla de modo a experimentar com algumas tecnologias que lhe poderiam permitir diminuir a diferença entre aplicações web e nativas. O projecto parece ter cumprido as expectativas da Mozilla, já que foi recentemente integrado, com a designação de OdinMonkey, no Firefox Nightly – a versão de desenvolvimento do Firefox.
Na prática o OdinMonkey, é o nome do módulo de otimização asm.js do Firefox, que permite a programadores desenvolver o seu código em C ou C + +, e traduzi-lo para JavaScript e executá-lo a uma velocidade mais aproximada do desempenho nativo. Esta abordagem tem as suas semelhanças com a tecnologia Native client que a Google incorporou no seu browser Chrome.
Contudo, enquanto no Native Client da Google os programadores desenvolvem aplicações (em C/C++) que são compiladas em executáveis nativos a abordagem do OdinMonkey é diferente. Na prática os programadores desenvolvem em C/C++ mas o código depois é convertido para javascript e compilado para ser executado. Mas então porque a Mozilla não adopta a mesma estratégia da Google?
A principal razão é que na prática o javascript é a linguagem script da Web e devido a ser um standard, é de domínio e código aberto. Com este mecanismo a Mozilla assegura que uma aplicação Web que tire partido do asm.js, vai executar de forma adequada em qualquer browser. A abordagem da Google baseia-se numa quebra na compatibilidade dos standards da web e baseia-se numa estratégia de distribuição desses arquivos compilados em C++ (no formato binário) na sua Chrome Store. Trata-se portanto de uma estratégia menos amiga da interoperabilidade embora seja mais optimizada no campo da velocidade.
Mas qual o real benefício do OdinMonkey para os usuários?
Primeiro de tudo poderá esperar que o seu browser execute tarefas mais rápidas em tudo em todas as aplicações que utilizarem massivamente o Javascript. Mas estamos a falar em que diferenças mais ou menos? Alon Zakai da Mozilla fez os testes e apresentou o seguinte gráfico.
No geral, pode-se observar que o tempo necessário para executar qualquer tarefa optimizada pelo OdinMonkey (representado a verde) está mais próximo do tempo necessário para executar o mesmo processo de forma nativa (representado a amarelo).
Isto significa que, de uma perspectiva dos usuários, poderemos ver em breve jogos significativamente melhores e mais complexos no seu Browser. A maioria dos jogos são desenvolvidos em C e/ou C++ logo o OdinMonkey é um recurso precioso para a maioria dos programadores a trabalhar na indústria de desenvolvimento. Poderá também esperar aplicações web bastante mais rápidas, assumindo que os seus autores comecem a adaptar o asm.js.
Contudo, esta actualização não é inocente do ponto de vista das ambições que a Mozilla tem no mercado móvel. De certeza que esta tecnologia vai chegar ao Firefox OS, e se assim acontecer a Mozilla terá aqui a infraestrutura ideal para atrair várias aplicações para o seu sistema operativo móvel. Isto significa que os autores de aplicações e jogos, podem trazer as suas criações ao Firefox OS com um mínimo de esforço de conversão do C/C++ para Javascript.
A não ser que o desenvolvimento atinja um obstáculo, a Mozilla prevê que o OdinMonkey seja incluído na versão estável do Firefox 22 (para Windows, Mac e Linux) que está previsto para ser lançada em Junho. Caso tenha curiosidade em ver as diferenças de velocidade da nova tecnologia, siga as instruções neste link, para ter acesso a demos da nova tecnologia.
Comentários