Internet Explorer 9 : lo que viene...

lunes, 1 de marzo de 2010





En la conferencia de desarrolladores MIX 10 que celebró Microsoft el jueves en Las Vegas, Microsoft lanzó código preliminar del elemento más crítico de su navegador Internet Explorer 9: el motor de rendereo.

Las metas claves del nuevo motor del navegador son pocas y simples: velocidad mejorada y soporte para nuevos estándares web, sobre todo HTML 5 y SVG (Scalable Vector Graphics).

IE9 todavía no es una navegador web totalmente desarrollado; hasta ahora, se trata solamente de los subsistemas de rendereo en una interfaz simple que no hace nada más que permitir el ingreso de direcciones web, y que ofrece herramientas de desarrollo. Microsoft habló previamente de algunas capacidades de IE9 en la Professional Developers Conference en noviembre.

Dean Hachamovitch, director de IE9, le dijo la semana pasada a un grupo selecto de reporteros en el campus de Redmond, Washington, que las grandes modificaciones también se verían en la interfaz de usuario del navegador; pero que este lanzamiento iba dirigido a darles un blanco a los desarrolladores para el código de su website.

La nueva plataforma de IE9 soportará varios estándares nuevos, como algunas partes de la especificación HTML 5 y SVG, las cuales ha supervisado el W3C.

Internet Explorer ha sido un poco el objeto de burlas entre los navegadores cuando se trata de velocidad, y sobre todo en el desempeño JavaScript. Muchas veces se citan los resultados de la prueba SunSpider JavaScript Benchmark como prueba de esto; pero Microsoft sostiene desde hace mucho tiempo que ha puesto sus esfuerzos de desarrollo en otras partes necesarias para generar las páginas web. Esta versión de Internet Explorer atiende tanto la cuestión de JavaScript como otros cuellos de botella que merman su velocidad.



 
Velocidad a través de la aceleración con la GPU
Como mucho de lo que hace un navegador implica generar imágenes gráficas y proyectarlas, parece lógico que dichas operaciones se realicen en el hardware optimizado para ellas: la tarjeta de gráficos. Sin embargo, los navegadores actuales solamente utilizan el CPU para estas operaciones. IE9 lleva el procesamiento de gráficos a la GPU (la unidad de procesamiento de gráficos, por sus siglas en inglés).

IE9 no nada más utilizará la tarjeta de gráficos de una máquina cara para videojugar, sino hasta las de máquinas de menor capacidad. Aunque el desempeño JavaScript juega un papel en el rendimiento del navegador web, también hay otros factores: conexión de redes, HTML parsing, CSS, colecciones de datos, DOM (Document Object Model), COM marshalling, organización y proyección. El equipo de desarrollo de IE ha esbozado los patrones de desempeño más comunes entre miles de los sitios más populares del mundo, y descubrió que en realidad la generación de las imágenes representaba una mayor parte de la “tubería” que JavaScript. Está claro que controlar los pasos de generación de las páginas en pantalla tendrá un impacto positivo significativo en el desempeño web.

La velocidad de JavaScript a través de la compilación en un segundo núcleo
Los navegadores manejan JavaScript a través de la interpretación inmediata, lo que, al igual que la interpretación del lenguaje humano, requiere pasos entre el código y la ejecución en el CPU. Para ser justos, lo que utilizan Firefox, Chrome y Opera es un poco mejor que la mera interpretación; todos ellos recurren a un compilador JIT (Just-In-Time) para JavaScript, y con esto se alcanza mayor velocidad respecto de interpretar el código.

Pero IE9 irá más allá de la idea del JIT, y aprovechará el hecho de que casi todas las PC compradas en los últimos años tienen en efecto más de un CPU –normalmente se trata de máquinas de dos o de cuatro núcleos-, y utilizará un núcleo para generar el JavaScript a la antigüita, y un segundo para compilarlo realmente para la ejecución directa en código de la máquina en el hardware, sin necesidad de interpretación. Todo programador sabe que la diferencia de velocidad entre el código compilado y el interpretado es enorme, así que se deduce que, en ciertos casos, la ganancia de rendimiento hará una gran diferencia.

Jason Weber mostró un demo de íconos 3D giratorios que ilustraron dramáticamente la diferencia que pueden crear la compilación de JavaScript y la aceleración de gráficos mediante GPU. Conforme se añadían íconos y giraban más deprisa, todos los navegadores actuales alcanzaron el máximo en el CPU y el demo se enlenteció hasta la horrorosa cifra de 5 cuadros por segundo o menos, mientras una docena de íconos giraba lentamente. Pero con 256 íconos a gran velocidad en IE9, el núcleo principal del CPU se quedó con tiempo de procesamiento restante.

“Nada más estamos ocupando un cuarto del primer núcleo del CPU”, dijo Weber. “Esto les permite a los desarrolladores crear una clase completamente nueva de aplicaciones en la web.”



La prueba SunSpider solamente evalúa un elemento del desempeño del navegador, y en realidad ni siquiera somete a prueba algunas de las instrucciones JavaScript usadas con mayor frecuencia. Microsoft ha establecido una prueba de las más ocupadas en el sitio de prueba de la nueva plataforma de navegación, y, aunque los ingenieros no tardaron en negar el término “prueba comparativa de desempeño”, los resultados fueron impresionantes. En el caso de estas 15 acciones JavaScript, IE9 resultó el doble de rápido que el navegador Opera, el actuar líder de la SunSpider. Claro que necesitaremos hacer nuestras propias pruebas para validar los resultados de Microsoft; pero, de todos modos, resultó ser una demostración efectiva.

Soporte para HTML 5
IE tiene toda una historia de frustrar a los desarrolladores debido a la necesidad de dividir el código paralelo, sobre todo para las versiones anteriores. Hachamovich quería mandar el mensaje de que los sitios deberían ofrecer un código base para todos los navegadores que se adhieran a los estándares reales. Esto responde a lo que por años ha sido el Santo Grial de los programadores: el concepto de escribir una vez y ejecutar dondequiera que sea. Uno de los temas recurrentes en la demostración de prensa fue la meta de IE9 de alcanzar la “interoperabilidad de los navegadores”.

IE no ha estado solo en la necesidad de contar con código especial: Firefox ha tenido el prefijo “moz” para ciertas instrucciones que solamente funcionan en ese navegador, y también Webkitt ha requerido un prefijo “Webkit” para algunas.

Tony Ross, gerente de programas de Microsoft, demostró cómo dos simples líneas de código para producir esquinas redondeadas en un rectángulo pronto se hacían más engorrosas cuando se añadía todo el código alternativo para diferentes navegadores. “A final de cuentas, ejecutar el mismo markup y contar con interoperabilidad plena es una ruta de dos vías: está la parte que tiene que jugar el navegador, y la parte que tienen que desempeñar los desarrolladores”, dijo Ross. “Los alentamos a detectar capacidades, no navegadores.”

Ross y otros ingenieros de Microsoft han estado muy activos en el cuerpo de estándares oficiales de Internet, el W3C. Aunque pruebas como Acid3 han tenido el propósito de indicar el soporte de estándares, resulta que muchas de las capacidades que evalúa no son especificaciones oficiales del W3C. Hachamovitch sí señaló que “conforme soportemos más del markup que utilizan los sitios web, aumentará nuestra puntuación en la prueba Acid.” Pero negó la afirmación de que la prueba representa estándares auténticos, pues “a medida que cambian los estándares y los navegadores, se ve mucha variancia”, aseguró.

Sin embargo, el resultado en la Acid3 del nuevo motor del navegador pasó de 20 a 55 de 100 en la prueba, y eso aún podría aumentar cuando veamos una versión beta.



Aunque Firefox espera que los proveedores de contenido adopten los formatos Ogg de código abierto, IE9 soportarán MPEG-4 y H.264 en el caso del video, y AAC y MP3 en el del audio.

Nuevo soporte para SVG
SVG es un estándar del W3C para gráficos animados e interactivos basados en rutas, no en bitmaps. No importa cuánto acerques la vista en una imagen SVG, los bordes se siguen viendo afilados, a diferencia de los formatos de imagen de bitmaps como JPEG, que muestran degradación conforme los agrandas. Esto también se aplica para el texto.

De hecho, John Hrvatin, gerente de programas sénior de Internet Explorer, comentó ante los periodistas que IE9 es el primer navegador que soporta de manera nativa SVG inline con HTML; antes se requería XHTML. SVG desciende de VML, que salió de la herramienta Visio.

¿Tendrá suerte Microsoft con IE9?
Después de años de críticas por la falta de soporte de estándares y tiempos más prolongados de generación de páginas web en IE que los de la competencia, parece que por fin Microsoft toma pasos concretos y drásticos para resolver esos problemas.

Sólo el tiempo lo dirá, pero la solicitud de Hachamovitch de que los desarrolladores dejen de codificar por separado para IE es buena señal, lo mismo que las iniciativas de velocidad. Aprovechar los múltiples núcleos ubicuos del CPU y el hardware de los gráficos discretos es un paso tanto radical como lógico, que podría cambiar del todo las cosas en cuestión de generación de páginas. Será interesante ver si otros fabricantes de navegadores siguen el ejemplo e implementan estas técnicas.

No obstante, un factor es el calendario de lanzamiento. Los representantes de Microsoft eludieron definir cuándo se lanzará el navegador, tanto en versión beta como la final. Dada la frecuencia de los lanzamientos de Chrome y Firefox, es posible pensar que llegará otro navegador con aceleración del hardware antes de IE9.

Por ahora, puedes probar la plataforma si llevas tu navegador actual al sitio http://ie.microsoft.com/testdrive. –Michael Muchmore .

0 comentarios:

Publicar un comentario