El futuro de JavaScript ya está aquí­

26 agosto, 2008 23:02 por

Si pensabas que JavaScript tení­a los dí­as contados por su poca eficiencia y optimización, estabas equivocado. El desarrollo del futuro navegador Firefox 4, basado en el nuevo motor Gecko o Mozilla 2, lo demostrará. Gracias a que Mozilla es una organización que proporciona el código fuente, podemos ver qué es lo que está pasando con el código ahora mismo.

Y es muy interesante. Vamos a hablar de las mejoras en JavaScript en la rama de desarrollo principal, esto es: Firefox 3.1 (basado en Gecko 1.9.1).

En primer lugar tenemos la inclusión de querySelectorAll. Si te suena a chino, explicarte que cuando trabajas con JavaScript es habitual el utilizar / modificar elementos de la página, la herramienta que te permite esto es el DOM, lo que ocurre que es bastante tedioso a la hora de moverte por el documento. La forma de hacerlo es: ve a tus hermanos, selecciona el tercero y busca sus hijos…

Para ahorrar lí­neas de código surgieron bibliotecas como jQuery, Prototype o Dojo, que permiten seleccionar partes del documento utilizando selectores como lo harí­as con CSS (“#menu a.seleccionado” te trae los enlaces con class=”seleccionado” que son descendientes de una etiqueta con id=”menu”), con esta sintaxis con muy poco código consigues lo mismo que con las decenas de lí­neas que se utilizaban con DOM, pero estas bibliotecas internamente utilizan DOM para lograrlo.

Firefox 3.1 incluirá una nueva funcionalidad querySelectorAll que realizará este trabajo de manera nativa con lo que la velocidad se verá enormemente mejorada.

Lo malo es que la implementación de esta nueva funcionalidad por parte de las bibliotecas no es tan sencilla como pudiese parecer a primera vista, ya que las bibliotecas han ampliado el juego de selectores posibles, y en caso de que algo falle en la llamada querySelectorAll habrá que reprocesarlo, pero a pesar de esto el rendimiento será superior a lo que tenemos actualmente.

Además la buena noticia es que querySelectorAll será funcional en otros navegadores, como los basados en WebKit, Opera e incluso dicen que Explorer 8 lo incuirá.

La otra gran inclusión ha sido el nuevo motor de JavaScript, conocido como Tracemonkey. Tracemonkey es un motor de JavaScript que difiere en el actual Spidermonkey en varias cuestiones. La primera de ellas es que intenta llevar un código compilado de las funciones más usadas en JavaScript al navegador. Actualmente JavaScript es un lenguaje interpretado, lo que significa que el intérprete va generando la salida según le llega el código a través del navegador, es decir, lo va compilando según le lleva (traduciéndolo al lenguaje máquina de 1 y 0), mientras que lo que intenta Tracemonkey es que según lo que le llegue, en vez de interpretarlo, ya esté compilado de base, lo que implica una sustancial mejora de velocidad al ya tener compiladas funciones, por lo que se lee mucho más rápido por parte del ordenador. Es intentar llevar a JavaScript a un nivel superior, como si fuera un lenguaje compilado, como C++.

http://weblogs.mozillazine.org/roadmap/assorted-benchmarks.png

En primer lugar, la mejora de velocidad que hay al hacer el test SunSpider, y una manipulación de imagen dinámicamente (mostrada en el video de más abajo).

http://weblogs.mozillazine.org/roadmap/micro-benchmarks.png

En esta vemos diferentes funciones en Firefox 3, y en el futuro Firefox 3.1 con el motor JIT (Tracemonkey) activado.

http://weblogs.mozillazine.org/roadmap/sunspider-part-1.png

Más funciones que han mejorado muy notablemente su velocidad gracias a este motor.

You need Flash — get the latest version from here.

Si quieres saber más, tienes varios artí­culos en el Planet de Mozilla, aunque todos ellos en inglés (1, 2, 3, 4, 5, 6, 7, 8), unos simplemente haciendo referencia, y otros explicando cómo se ha implementado (recomendamos éste).

Beneficios:

  • Velocidad, como se ha visto en los gráficos y en el video.
  • Funciona en cualquier plataforma: x86, x86_64 y en ARM por lo que estará preparado para Firefox Mobile (Fennec).
  • Poder escribir más parte de Mozilla 2 en JavaScript ya que tendrá un rendimiento muy similar al de C++.

Para poder usarlo, descarga una de las últimas compilaciones nocturnas de Firefox desde aquí­. Abre una nueva pestaña y entra en la configuración avanzada escribiendo about:config. Ahora filtra por la palabra clave “jit” y activa la opción javascript.options.jit.content. Y diviértete.

The following two tabs change content below.

willyaranda

Miembro pasivo at Mozilla Hispano
Empecé con Mozilla cuando tenía 17 años, traduciendo NVu, ahora, con unos cuantos más, y tras haber pasado por asistencia, administración técnica, más traducción, dar charlas de Mozilla, haber aprendido mucho par ala web, estoy involucrado en FirefoxOS, tanto con mi gorra Mozillera de siempre como una nueva como empleado de Telefónica I+D. La web es la plataforma.

Compartir artículo:

  • ¡Participa!

    Firefox Flicks »
    Crear un vídeo sobre Firefox ahora tiene premio.
    Firefox Affiliates »
    Agrega botones de Firefox en tu sitio web y comparte tu amor por Mozilla Firefox.
    Armada alucinante »
    Ayuda a otros usuarios en Twitter.
    Desafío para desarrolladores »
    Envía tu demo y gana muchos premios.
    Colabora con la comunidad »
    En Mozilla lo importante son las personas. Descubre cómo puedes colaborar.

    Boletín Firefox

    Suscríbete al boletín de novedades de Firefox.

  • Descargas

    Descarga los programas de mozilla.

    Destacado

    cc-by-sa