JUE, 17 / FEB / 2011

Desde las entrañas de Microsoft: Cómo IE9 implementa HTML5

¡Hola! Cómo comenté al presentarme, compartiré en este espacio algunas noticias sobre la plataforma Microsoft. En esta oportunidad, quiero comentar sobre un punto específico relacionado a Internet Explorer 9: Su implementación de HTML 5. Como anunció RedUSERS, Microsoft lanzó la versión ReleaseCandidate de Internet Explorer 9. Este es un hito muy importante, y marca el fin de una fase Beta muy exitosa: Internet Explorer 9 Beta fuédescargado más de 25 millones de veces, convirtiéndose en la Beta más descargada de un navegador. Esto permitió que el grupo de producto reciba más de 17000 reportes de feedback a través del sitio Connect, lo cual refleja la apertura que ha tenido el equipo, escuchando a la comunidad y sus necesidades. Si te interesan los detalles técnicos, te recomiendo leer el post del blog oficial de Internet Explorer, donde se comparten detalles de las mejoras de Performance y Estándares, las mejoras en la Experiencia de Usuario, y el trabajo realizado en Seguridad y Privacidad, este último tal vez el punto de mayor importancia a considerar en un navegador. Además, el día de ayer se anunció laintegración de IE9 en Windows Phone, programada para la segunda mitad del 2011. Cada uno de estos titulares merecen su post aparte, pero hoy me enfocaré en uno de los estándares que incorpora IE9: HTML5. Me gusta decir que HTML5 no es sólo una frase de Marketing, sino que realmente propone capacidades muy interesantes y necesarias para el futuro de la Web, sin embargo plantea un desafío a la hora de su implementación. El punto de partida a la hora de evaluar estándares Web, son los grupos de personas o consorcios que se conforman para la definición de los mismos. En el caso de HTML5, el estándar es definido por la World Wide Web Consortium, o W3C. Los estándares publicados por la W3C transicionan por diferentes etapas: FirstPublicWorkingDraft, WorkingDraft, CandidateRecommendation, ProposedRecommendation y Recommendation. En general, cuando un documento del estándard se encuentra en la etapa de WorkingDraft, éste aún puede cambiar, modificarse, o incluso retirarse del estándard. HTML5 es un estándard muy grande, compuesto por diversas tecnologías, y muchas de ellas aún se encuentran en WorkingDraft. Les comparto un mapa del estandard, donde se puede ver el grado de desarrollo de cada tecnología: Así podemos distinguir tecnologías “listas”, de aquellas que aún son “experimentales”. ¿Qué ocurre cuando una tecnología “experimental”, es incluida en un producto? Voy a describir esto por medio de un ejemplo: WebSockets. WebSockets es un conjunto de tecnologías y estándares, que normalmente son parte de la discusión de HTML5, y que habilitan escenarios de comunicación bidireccional entre cliente y servidor muy interesantes para un navegador. WebSockets aún está en discusión, y no conforma un estandard terminado. Hoy, iPhone yiPad 4.2 soportan WebSockets. Firefox y Opera también lo hacían, pero decidieron dar marcha atrás, debido a (entre otras cosas) problemas de seguridad y compatibilidad reportados. ¿Cuál es el riesgo de que existan implementaciones de estandares aún no definidos? Los desarrolladores de sitios Web no siempre leen un estandard para determinar como desarrollar sus sitios, sino que muchas veces basan sus desarrollos en las funcionalidades que implementa un navegador. Si un navegador implementa una funcionalidad de forma temprana y un sitio la utiliza, es muy probable que dicha funcionalidad cambie, al definirse finalmente el estandard.El desarrollador entonces se vé obligado a actualizar el código de su sitio. Si cada navegador sigue este patrón, entonces será necesario mantener diferentes implementaciones para cada uno de los navegadores disponibles, en lugar de hacerlo siguiendo un único estándard. Todo desarrollador Web sabe que esto ya ha ocurrido en el pasado. Con la definición de HTML5, los creadores de navegadores tienen la oportunidad y la responsabilidad de implementar correctamente el estándard, por lo cual es muy importante que éste sea correctamente definido, sin lugar a diferentes interpretaciones. ¿Cómo implementa entonces IE9, HTML5? El equipo de Internet Explorer 9, decidió adoptar dos prácticas. La primera de ellas propone implementar aquellas tecnologías definidas en el estandard HTML5, que hayan llegado a la fase de “LastCall”. Este punto indica que el documento ha dejado de ser un workingdraft (contando con menos de 20 issues reportados). Esto permite incorporar aquellas tecnologías que hayan alcanzado el grado de madurez adecuado, sin caer en problemas como el ocurrido con WebSockets. El lunes pasado, la W3C anunció que el período de LastCall definitivo está propuesto para Mayo del 2011, esperándose la fase de Recommendation para el 2014. La segunda práctica busca lograr asegurar que no existan múltiples interpretaciones del estándard. En este sentido se ha provisto a la W3C con más de 4000 casos de Test conformes al estándard, que permiten verificar la correcta implementación del mismo. Estos esfuerzos están dirigidos en lograr un ecosistema donde los desarrolladores deban escribir su código una sola vez, y que su ejecución sea la misma en todos los navegadores. Es un compromiso adoptado por el equipo de Internet Explorer 9, que profundiza el trabajo realizado en IE8 en cuanto al soporte de estándares, apoyando y participando en la W3C. Cerrando este post los invito a descargar el ReleaseCandidate de Internet Explorer 9, y probar una de las demos del Test Drive que me gustó mucho: la API de Geolocation: Saludos! Miguel http://twitter.com/masaez http://blogs.msdn.com/masaez Todos los post de Miguel Angel Saez en RedUSERS CES 2011: Microsoft lo vive con la intensidad de siempre Una intro a WebMatrix: Open Source, Desarrollo Web y la plataforma Microsoft

¡Hola! Cómo comenté al presentarme, compartiré en este espacio algunas noticias sobre la plataforma Microsoft. En esta oportunidad, quiero comentar sobre un punto específico relacionado a Internet Explorer 9: Su implementación de HTML 5.

Como anunció RedUSERS, Microsoft lanzó la versión ReleaseCandidate de Internet Explorer 9. Este es un hito muy importante, y marca el fin de una fase Beta muy exitosa: Internet Explorer 9 Beta fuédescargado más de 25 millones de veces, convirtiéndose en la Beta más descargada de un navegador. Esto permitió que el grupo de producto reciba más de 17000 reportes de feedback a través del sitio Connect, lo cual refleja la apertura que ha tenido el equipo, escuchando a la comunidad y sus necesidades.

Si te interesan los detalles técnicos, te recomiendo leer el post del blog oficial de Internet Explorer, donde se comparten detalles de las mejoras de Performance y Estándares, las mejoras en la Experiencia de Usuario, y el trabajo realizado en Seguridad y Privacidad, este último tal vez el punto de mayor importancia a considerar en un navegador. Además, el día de ayer se anunció laintegración de IE9 en Windows Phone, programada para la segunda mitad del 2011.

Cada uno de estos titulares merecen su post aparte, pero hoy me enfocaré en uno de los estándares que incorpora IE9: HTML5. Me gusta decir que HTML5 no es sólo una frase de Marketing, sino que realmente propone capacidades muy interesantes y necesarias para el futuro de la Web, sin embargo plantea un desafío a la hora de su implementación.

El punto de partida a la hora de evaluar estándares Web, son los grupos de personas o consorcios que se conforman para la definición de los mismos. En el caso de HTML5, el estándar es definido por la World Wide Web Consortium, o W3C.

Los estándares publicados por la W3C transicionan por diferentes etapas: FirstPublicWorkingDraft, WorkingDraft, CandidateRecommendation, ProposedRecommendation y Recommendation. En general, cuando un documento del estándard se encuentra en la etapa de WorkingDraft, éste aún puede cambiar, modificarse, o incluso retirarse del estándard. HTML5 es un estándard muy grande, compuesto por diversas tecnologías, y muchas de ellas aún se encuentran en WorkingDraft. Les comparto un mapa del estandard, donde se puede ver el grado de desarrollo de cada tecnología:

Así podemos distinguir tecnologías “listas”, de aquellas que aún son “experimentales”.

¿Qué ocurre cuando una tecnología “experimental”, es incluida en un producto?

Voy a describir esto por medio de un ejemplo: WebSockets. WebSockets es un conjunto de tecnologías y estándares, que normalmente son parte de la discusión de HTML5, y que habilitan escenarios de comunicación bidireccional entre cliente y servidor muy interesantes para un navegador. WebSockets aún está en discusión, y no conforma un estandard terminado. Hoy, iPhone yiPad 4.2 soportan WebSockets. Firefox y Opera también lo hacían, pero decidieron dar marcha atrás, debido a (entre otras cosas) problemas de seguridad y compatibilidad reportados.

¿Cuál es el riesgo de que existan implementaciones de estandares aún no definidos?

Los desarrolladores de sitios Web no siempre leen un estandard para determinar como desarrollar sus sitios, sino que muchas veces basan sus desarrollos en las funcionalidades que implementa un navegador. Si un navegador implementa una funcionalidad de forma temprana y un sitio la utiliza, es muy probable que dicha funcionalidad cambie, al definirse finalmente el estandard.El desarrollador entonces se vé obligado a actualizar el código de su sitio.

Si cada navegador sigue este patrón, entonces será necesario mantener diferentes implementaciones para cada uno de los navegadores disponibles, en lugar de hacerlo siguiendo un único estándard.

Todo desarrollador Web sabe que esto ya ha ocurrido en el pasado. Con la definición de HTML5, los creadores de navegadores tienen la oportunidad y la responsabilidad de implementar correctamente el estándard, por lo cual es muy importante que éste sea correctamente definido, sin lugar a diferentes interpretaciones.

¿Cómo implementa entonces IE9, HTML5?

El equipo de Internet Explorer 9, decidió adoptar dos prácticas. La primera de ellas propone implementar aquellas tecnologías definidas en el estandard HTML5, que hayan llegado a la fase de “LastCall”. Este punto indica que el documento ha dejado de ser un workingdraft (contando con menos de 20 issues reportados). Esto permite incorporar aquellas tecnologías que hayan alcanzado el grado de madurez adecuado, sin caer en problemas como el ocurrido con WebSockets. El lunes pasado, la W3C anunció que el período de LastCall definitivo está propuesto para Mayo del 2011, esperándose la fase de Recommendation para el 2014.

La segunda práctica busca lograr asegurar que no existan múltiples interpretaciones del estándard. En este sentido se ha provisto a la W3C con más de 4000 casos de Test conformes al estándard, que permiten verificar la correcta implementación del mismo.

Estos esfuerzos están dirigidos en lograr un ecosistema donde los desarrolladores deban escribir su código una sola vez, y que su ejecución sea la misma en todos los navegadores. Es un compromiso adoptado por el equipo de Internet Explorer 9, que profundiza el trabajo realizado en IE8 en cuanto al soporte de estándares, apoyando y participando en la W3C.

Cerrando este post los invito a descargar el ReleaseCandidate de Internet Explorer 9, y probar una de las demos del Test Drive que me gustó mucho: la API de Geolocation:

Saludos!

Miguel

http://twitter.com/masaez

http://blogs.msdn.com/masaez

Todos los post de Miguel Angel Saez en RedUSERS

CES 2011: Microsoft lo vive con la intensidad de siempre

Una intro a WebMatrix: Open Source, Desarrollo Web y la plataforma Microsoft

¡Comparte esta noticia!