Mozilla está desarrollando impresionantes mejoras de performance en su motor de JavaScript para Firefox, el cual hoy pasó a formar parte de los builds de desarrollo del browser (aunque todavía no está activado de forma predeterminada). Se espera que este nuevo motor esté disponible para Firefox 3.1, que saldrá en unos meses.
Ya sabemos que Firefox 3 es uno de los navegadores con un motor JavaScript más rápidos (y en algunas pruebas incluso superando a Safari). Entonces, ¿qué tan más veloz va a ser? Estamos hablando de mejoras en performance de hasta 40 veces más rápido que el motor de Firefox 3. Si, leyeron bien.
El objetivo del equipo de Mozilla es lograr que Javascript sea tan rápido como el código nativo, y están desarrollando distintas optimizaciones y tecnologías para lograrlo. Esperan así redefinir los límites de las capacidades de los clientes, permitiendo toda una nueva generación de aplicaciones. Apuestan a Javascript como toda una plataforma de aplicaciones, y apuestan fuerte.
Optimización de trazas
Este nuevo motor está basado en optimizaciones de trazas, las cuales ya están mostrando mejoras de entre 20 y 40 veces más rápido que el motor de Firefox 3. Los ingenieros esperan lograr aún mejores resultados a medida que vayan evolucionando la tecnología.
La teoría de optimización de trazas fue planteada por los doctores Michael Franz y Andreas Gal, investigadores de la Universidad de California. El mecanismo de trazas "graba" el camino de ejecución al momento de ejecutarse el código, y genera código compilado que puede ser utilizado cada vez que se llega a ese punto. De esta manera es posible "aplanar" a bucles y llamadas anidadas, conviertiéndolos en un único flujo de instrucciones al cual es más simple aplicarle técnicas comunes de optimización. La optimización de trazas es particularmente efectiva para los lenguajes dinámicos, y a la vez tiene un muy bajo uso de memoria.
Mozilla incorporó la optimización de trazas a Tamarin, el motor de Javascript para la próxima generación de navegadores. Sin embargo, Tamarin todavía está en desarrollo y no es lo suficientemente maduro como para ser utilizado. Tamarin es un proyecto a largo plazo que recién estará listo junto a Firefox 4.
Para lograr mejoras más inmediatas, Mozilla adaptó la tecnología de optimización de trazas de forma de poder integrarla a SpiderMonkey, el interprete Javascript que utiliza Firefox 3. El resultado es una impresionante mejora en velocidad que incluso supero a lo que Tamarin puede lograr hoy en día. Además de mejorar la experiencia de aplicaciones web, esta adaptación mejora la performance general de Firefox, ya que muchos de sus componentes y agregados se programan en JavaScript.
JavaScript como plataforma de aplicaciones
En Mozilla cada vez más apuestan a lograr que JavaScript pueda ser un lenguaje multi-propósito, y toda una plataforma para desarrollar aplicaciones.
Por otro lado, Apple también está desarrollando importantes mejoras de performance para SquirrelFish, el interprete que utilizará Safari 4. Al igual que Mozilla, Apple dice que las mejoras de performance que se están logrando con estas tecnologías son sólo el inicio de lo que se podrá lograr.
Evidentemente, este tipo de tecnologías permiten toda una nueva área de posibilidades para las aplicaciones web, pudiendo crear lógica y componentes antes imposibles. Hace ya un tiempo que JavaScript dejó de ser un lenguaje simple que sólo sirve para hacer validaciones tontas. Con estas mejoras, la estandarización y mejoras en la sintaxis, este lenguaje promete cada día más como una plataforma de aplicaciones para la web.