July 1, 2010 11:21 am

HTML5 y nativa: la tercera versión preliminar de la plataforma IE9 ya está disponible para los desarrolladores

Publicado originalmente en el IEBlog por Dean Hachamovitch, Gerente General de Internet Explorer

A medida que los desarrolladores experimenten y comiencen la transición de escribir sitios web a crear aplicaciones HTML5 probarán los límites de los navegadores. Por ejemplo, la enorme diferencia entre el video HTML5 acelerado por hardware y el soporte para video HTML5 normal en un navegador resultó muy clara en el demo que mostramos en MIX.

Debido a que muchos navegadores se pueden utilizar en diferentes sistemas operativos, puede surgir la tendencia de utilizar un enfoque de “denominador menos común” en la implementación de HTML5. Puesto que utiliza más del sistema operativo subyacente y aprovecha el poder de toda la PC, IE9 permite a los desarrolladores hacer más con HTML5. Operar a través de Windows, en lugar de sólo en Windows, representa una gran diferencia, ya que el web opera más como una aplicación nativa. Esto es consistente con nuestra estrategia de desarrollar soporte HTML5 integrado desde cero, en vez de sólo incorporar algunas características HTML5.

La tercera versión preliminar de la plataforma Internet Explorer 9, ya disponible, continúa con el duro trabajo en torno a la aceleración de hardware para permitir que el mismo markup basado en estándares corra más rápido. Ésta es la etapa más reciente del proceso que iniciamos en marzo, el cual consiste en entregar versiones preliminares de la plataforma aproximadamente cada ocho semanas y en escuchar a los desarrolladores. Con esta versión verán más desempeño, el mismo markup, y HTML5 acelerado por hardware.

Este video del mismo markup corriendo en IE9 y en otros navegadores muestra lo que significa la aceleración por hardware para los nuevos sitios web HTML5 interactivos y ricos en gráficos que los desarrolladores crearán:

 

Desempeño a través del poder de toda la PC

En la actualidad, la gente espera menos de un sitio web que de las aplicaciones nativas en términos de poder, respuesta e interactividad. Con la tercera versión preliminar, continuamos cumpliendo la promesa de ofrecer un navegador completamente acelerado por hardware donde todo el soporte para texto, gráficos y medios utiliza el hardware subyacente a través de Windows, lo que hace que todo el poder de la PC esté disponible para el web. Utilizar el poder de la toda la PC elimina los obstáculos anteriores que limitaban a los sitios web.

JavaScript es un componente del desempeño del navegador, y Webkit Sunspider mide el desempeño de la secuencia de comandos. La versión preliminar más reciente de la plataforma muestra la manera en que el motor JavaScript de IE9 sigue cobrando velocidad. Vea la gráfica:

clip_image002

El progreso se ve en esta gráfica amplificada, que muestra sólo las versiones preliminares de la plataforma IE9 y las versiones preliminares de otros navegadores:

clip_image004

Si observamos las diferencias entre el desempeño de los motores de secuencias de comandos, se puede ver que los vacíos de desempeño entre los motores de secuencias de comandos más rápidos ahora son de menos de 50 milisegundos —y eso sucede al ejecutar varios millones de instrucciones de secuencias de comandos durante la prueba de desempeño—. Esta diferencia se encuentra por debajo del umbral de la percepción humana, y eso que todavía no hemos terminado.

Muchos sitios dedican una gran cantidad de tiempo a otros subsistemas además de JavaScript. Si el desempeño del navegador se atribuyera por completo a JavaScript, el desempeño en las muestras del sitio de evaluación sería similar a la gráfica de Webkit Sunspider; pero ese no es el caso. Deben saber que continuaremos enfocándonos en el desempeño de mundo real y no en optimización para una prueba de desempeño específica.

Presentamos Canvas, video y sonido acelerados por hardware

Con la tercera versión preliminar presentamos soporte para el elemento Canvas del HTML5. Como ya saben, nuestra estrategia de soporte de estándares se basa en la información recibida por parte de los desarrolladores y en los patrones de uso del mundo real, así como en el rumbo que está tomando el Internet. Muchos desarrolladores web nos han pedido que soportemos esta parte del HTML5 y, desde luego, tomamos en cuenta esa petición en las prioridades de nuestro trabajo.

Al igual que todos los gráficos en IE9, el elemento Canvas está acelerado por hardware a través de Windows y de la Unidad de Procesamiento Gráfico (GPU). El soporte para el Canvas acelerado por hardware en IE9 ilustra el poder del HTML5 nativo en un navegador. Hemos rediseñado el navegador con el objetivo de que aproveche el poder de toda la PC para navegar por el Internet. Estos cambios mayores a IE9 significan que los sitios web ahora pueden aprovechar toda la innovación de hardware en la industria de las PCs.

clip_image006

Pruebe la muestra de Asteroid Belt y la de Fish Tank en el sitio de evaluación para ver el Canvas acelerado por hardware en acción. Nos unimos con Amazon para juntos desarrollar una muestra de librero que ofrece la posibilidad de integrar la riqueza del Canvas acelerado por hardware en una experiencia de comercio electrónico interactiva.

De manera similar, nos asociamos con la Internet Movie Database (IMDB) para crear la muestra de Video Panorama con el fin de demostrar la posibilidad de combinar video HTML5 acelerado por hardware e interactividad de gráficos para crear nuevas aplicaciones y experiencias. Nuestra estrategia consiste en proporcionar una implementación completa y sumamente interoperable de Canvas, video y sonido que saque el mayor provecho de todo el poder de la PC.

Para ayudarlos a comprender mejor la forma en que funcionan estas muestras, creamos videos que explican a detalle los componentes de Fish Tank, Amazon Shelf y Video Panorama. Debido a que el navegador utiliza más del hardware, la experiencia del usuario depende, como siempre, del hardware que utilice. Con los gráficos acelerados por hardware, la combinación entre la tarjeta gráfica y el controlador desempeña un papel importante en cómo se experimentan los diferentes ejemplos y pruebas de desempeño.

El ecosistema de hardware para PC ha tenido avances gigantescos en los últimos años. Las GPUs actuales ofrecen hasta 10 veces más poder de computación de los CPUs, una clara tendencia en el poder de procesamiento de las GPUs respecto a los CPUs en los últimos años. Dada la importancia del Internet, nos estamos enfocando en proporcionar ese poder a los desarrolladores web. Con IE9, los desarrolladores pueden ejecutar el mismo markup basado en los estándares del W3C que se utiliza en otros navegadores —sólo que más rápido— para aprovechar los componentes subyacentes del hardware. El resultado de utilizar el poder de toda la PC para navegar es una nueva clase de aplicación web sin muchos de los límites que tienen los sitios actuales.

Las primeras dos versiones preliminares de la plataforma demostraron la aceleración por hardware de texto, imágenes y gráficos de vector. En la tercera versión preliminar se completa el panorama de los medios para los sitios web modernos con video, sonido y Canvas acelerados por hardware. Los desarrolladores ahora cuentan con una plataforma integral para crear aplicaciones HTML5 aceleradas por hardware. Éste es el primer navegador en utilizar, de manera predeterminada, aceleración por hardware para todos los elementos en una página web y es el primero en estar disponible para que los desarrolladores comiencen a utilizarlo en el desarrollo de sitios modernos.

Mismo markup

Como ya lo comentamos, los navegadores web deben interpretar el mismo markup, es decir, el mismo HTML, el mismo CSS y la misma secuencia de comandos, en la misma manera. Sin embargo, eso no sucede actualmente en muchos navegadores ni en muchos elementos del markup. Lograr que el mismo markup funcione en la misma manera en los diferentes navegadores es crucial para el éxito y el buen desempeño de HTML5. Cuando los desarrolladores dedican menos tiempo a reescribir sus sitios para que funcionen en todos los navegadores tienen más tiempo para crear experiencias asombrosas en el Internet.

La tercera versión preliminar de la plataforma continúa soportando más de los estándares DOM y CSS3 que los desarrolladores desean. Algunos ejemplos son DOM Traversal, eventos DOM L2 y L3 completos, getComputedStyle de DOM Style, Valores y Unidades de CSS3, y múltiples fondos de CSS3. Y al igual que con las versiones preliminares anteriores, la Guía para Desarrolladores incluye una lista de todas las características disponibles. Continuamos trabajando con los mismos organismos de estandarización y la comunidad de navegadores para proporcionar el mismo markup.

Mismo markup: video, sonido y WOFF

En MIX demostramos el potencial del video acelerado por hardware en el Internet. En el sitio de evaluación se pueden probar varios ejemplos del soporte de IE9 para video HTML5 y para etiquetas de sonido. Ustedes mismos pueden ver la forma en que los sitios como YouTube para HTML5 trabajan con la reproducción de video a través de la GPU. He aquí un ejemplo:

clip_image008

Observen que a pesar de que el elemento de video en el estándar HTML5 no describe el soporte para los codecs específicos, los desarrolladores aún pueden utilizar el mismo markup para obtener los resultados deseados. Las prácticas de codificación deben enfocarse en evaluar las capacidades, no los navegadores, y en proporcionar alternativas adecuadas para los navegadores más antiguos.

La tercera versión preliminar de la plataforma también incluye soporte para utilizar Web Open Font Format (WOFF) a través de las fuentes de CSS3. Nos entusiasmó trabajar con Mozilla y Opera para presentar el formato de archivo WOFF ante el W3C e introducirlo en IE9 para brindar soporte de fuentes de alta calidad en el Internet en una manera sencilla para los diseñadores web, los diseñadores de fuentes y los usuarios finales. Como industria, aún queda mucho por hacer para obtener un mismo markup con los mismos resultados de soporte de fuentes.

Al igual que todo el texto representado en IE9, el soporte para WOFF aprovecha al máximo el hardware subyacente y el Windows DirectWrite para una representación de alta calidad con precisión de subpixel, lo que produce texto claro en todos los tipos de fuentes y niveles de amplificación del navegador. En un artículo reciente, Richard Fink de A List Apart escribió: “La representación de fuentes en IE9 es sumamente distinta a lo que todos esperábamos”.

Desde luego, la importancia del soporte para WOFF yace en lograr que el mismo markup produzca los mismos resultados para texto y tipografía —resultados de los cuales los desarrolladores y los diseñados pueden depender—. Aquí se incluye un ejemplo del sitio de evaluación que muestra una selección de fuentes WOFF en IE9 y en las versiones más recientes de Firefox y Chrome. Algunas de las diferencias que exhibe este ejemplo son una distribución más precisa del texto y caracteres más nítidos en tamaños de fuentes más grandes y en amplificaciones.

clip_image010clip_image012clip_image014
Mismo markup: JavaScript y ES5

El mismo markup consiste en ejecutar el mismo código de JavaScript con los mismos resultados. El motor Chakra JavaScript en IE9 mejora de manera significativa para el estándar ECMA-262: ECMAScript Language Specification, incluyendo las características nuevas incorporadas a la recién concluida Quinta Edición de ECMA-262 (mejor conocida con el diminutivo ES5). Este soporte para ES5 incluye nuevos métodos de arreglos y objetos, así como otras mejoras de idiomas para funcionar con cadenas de caracteres y fechas. El sitio de evaluación ofrece muestras donde se pueden probar los nuevos métodos de arreglos y jugar un juego desarrollado con las capacidades de ES5. Puede conocer más acerca de cómo utilizamos los arreglos de ES5 a través de un video que muestra el diseño detallado del juego Tile Switch.

Para poder tener el mismo markup en todo el Internet se requiere realizar pruebas completas y consistentes. A diferencia del organismo de estandarización detrás de CSS y HTML, el organismo de estandarización de JavaScript nunca ha contado con un lugar donde la comunidad pueda contribuir pruebas. Estamos trabajando con Ecma como parte de la “comunidad TC-39” para crear un paquete de evaluación oficial para ECMAScript patrocinado por Ecma. Mientras el sitio queda listo, estamos proporcionado las pruebas en el IE Testing Center para recibir retroalimentación por medio de Connect.

Mismo markup: IE Testing Center y otras pruebas

Algunas personas utilizan Acid3 como técnica para estándares. Acid3 evalúa unos 100 fragmentos de una docena de tecnologías diferentes. Algunas de las pruebas aún se encuentran “en construcción”. Ciertos patrones, como las animaciones SMIL, son inconsistentes con otros, como las animaciones CSS3, y necesitan conciliarse. Conforme continuamos implementando los estándares de mayor valor para los desarrolladores, la calificación en la prueba Acid3 sigue elevándose, y eso que aún no terminamos. A continuación se muestra una imagen de cómo la versión preliminar de la plataforma IE9 se ejecuta en la prueba Acid3, yendo de 68 en la pasada versión preliminar de la plataforma a 83 en la versión preliminar actual:

clip_image016

Con la actualización de este día a la versión preliminar de la plataforma también actualizamos el IE Testing Center, lo que suma 118 casos de pruebas más con los que estamos contribuyendo a los grupos de trabajo de estándares web en el W3C. Además, hemos escrito 1309 casos de pruebas de JavaScript, mismos que estamos proporcionando a la comunidad de desarrollo web. En otro comentario de blog se brinda más detalles sobre ellos.

Medición de desempeño en páginas web

Permitir a los desarrolladores medir con exactitud el desempeño de los sitios web es importante para ofrecer buenas aplicaciones HTML5. En la actualidad, los desarrolladores pueden medir diferentes aspectos de desempeño en sus propias máquinas con las Herramientas de Desarrollo; sin embargo, no pueden medir el desempeño que sus usuarios experimentan. Hoy día, muchos sitios desarrollan sus propias bibliotecas, que intentan medir el desempeño en vivo de las páginas web. El problema consiste en que dichas bibliotecas disminuyen la velocidad de las páginas para los consumidores y realizan una medición inexacta, lo que ocasiona que los desarrolladores obtengan datos erróneos.

Consideramos que la especificación WebTiming es una buena base conceptual para resolver este problema. Nos encontramos en pláticas con el organismo de estandarización HTML5 del W3C y con la gente de Google y de Mozilla para decidir cómo trabajar juntos para lograr que el WebTiming funcione en forma interoperable y estandarizada lo antes posible. Trabajaremos de cerca con el W3C y sus miembros en los próximos meses para presentar esta iniciativa ante un grupo de trabajo oficial y crear consenso para una especificación propuesta, al tiempo que continuaremos trabajando juntos para asegurar que el mismo markup funcione en todos los navegadores.

Con el fin de seguir progresando mientras eso sucede, hemos incluido soporte anticipado para estas ideas en la versión preliminar de IE9. Sin duda, el trabajo es anticipado y, conforme a los procesos convencionales, IE utiliza un prefijo de proveedor (-ms) en su nombre porque la especificación realmente se encuentra en construcción activa. Pueden ver la manera en que esto funciona en la muestra de WebTiming en el sito de evaluación. Hablaremos más de este tema en el futuro en otro comentario de blog.

Evalúe hoy mismo la versión preliminar de la plataforma IE9

Agradecemos la retroalimentación continúa sobre lo que necesitamos corregir (en Connect, en la lista de pruebas de HTML5), así como su retroalimentación sobre lo que hemos hecho bien.

Les pedimos que descarguen la versión preliminar más reciente, prueben las muestras en el sitio de evaluación, y prueben sus propios sitios. Envíen a IE9 el mismo markup que asignan a otros navegadores. La vista de compatibilidad IE7 integrada en IE9, que algunos sitios pueden encontrar a su paso, no brinda el mejor desempeño posible. Si aún tienen sitios que corren en el modo de compatibilidad IE7, les recomendamos moverlos al modo estándar de IE9. Queremos que los sitios reciban todos los beneficios de desempeño de IE9 que se ofrecen con el modo estándar de IE9. También nos gustaría recibir su retroalimentación respecto al hecho de otorgar a IE9 el mismo markup que otorgan a otros navegadores.

La versión preliminar de la plataforma se instala contiguamente a Internet Explorer 8 para que puedan probarlo sin tener que remplazar la versión completa de Internet Explorer que se incluye con Windows. La tercera versión preliminar de la plataforma Internet Explorer 9 se instalará sobre las versiones anteriores. No hay necesidad de desinstalar las versiones anteriores para instalar la tercera. Asimismo, pueden consultar las Notas de la Versión para obtener información adicional sobre lo que contiene esta versión preliminar de la plataforma, incluyendo problemas conocidos y resueltos.