Lo que han aprendido los desarrolladores en los últimos 10 años

Lecciones que los desarrolladores web y empresas creadoras de navegadores han aprendido, desde el lanzamiento de IE6 y hasta la creación del estándar del HTML5.
Ahora que hasta Microsoft está de acuerdo en que ya es hora de que Internet Explorer 6 pase a mejor vida, ¿qué podríamos decir que hemos aprendido como resultado en estos 10 años de trayectoria memorable? En 2002, IE6 se convertía en el navegador de referencia de facto. En 2011, las instalaciones que aún subsisten son una cruz para los desarrolladores Web y un auténtico obstáculo para la innovación.

Tres generaciones más tarde, Internet Explorer 9 prácticamente hace tabla rasa. Como otros navegadores modernos del estilo de Firefox o Chrome, IE9 adopta nuevas tecnologías, como HTML5 que prometen una web más interesante, interactiva e interoperable. Pero IE9 demuestra en muchos aspectos lo que se ha aprendido de la experiencia de IE6. IE9 parece que corrige aquello que IE6 no hacía bien, incluyendo la implementación de nuevas tecnologías basadas en estándares.

Si quisiéramos resumir brevemente lo que no funcionó bien con IE6, el relato sería más o menos este. IE6 incluía tecnologías como CSS2 en un momento en que la especificación aún estaba evolucionando, sin un grado de consenso suficiente sobre el cómo –o incluso qué- elementos de la especificación deberían implementarse (y las dudas persistieron hasta la presentación de CSS 2.1 en el año 2002). Más tarde, como navegador por defecto de Windows XP, IE6 se atrincheró en la Web y, sobre todo, en las grandes compañías. Dada la lentitud con que los usuarios de la Web actualizaban sus entornos, IE6 mantuvo una cuota de mercado muy importante durante varios años, de modo que los desarrolladores Web no podían ignorar o pasar por alto sus peculiaridades.

Ahora nadie –y menos aún los desarrolladores Web- quieren que vuelva a repetirse esta historia con la nueva generación de navegadores.

Regulación de los estándares

Resulta especialmente interesante la comparación de los primeros tiempos de IE6 con estos de ahora, de los navegadores de última generación, ya que la Web muestra cierta ansia por migrar cuanto antes hacia una nueva familia de tecnologías comunes en 2011, de forma muy parecida a como ocurría allá por 2001. En 2001 el salto era desde presentaciones basadas en tablas a CSS. Hoy en día todos esperamos con gran interés la posibilidad de crear aplicaciones Web ricas, dinámicas, basadas HTML5 y CSS3.

Las etiquetas de audio y vídeo de HTML5 van a permitir embeber contenidos multimedia avanzados en las páginas, que se podrán reproducir directamente desde el navegador sin necesidad de plugins. La etiqueta canvas de HTML5 soporta gráficos de mapa de bits y SVG soporta gráficos vectoriales, todo ello, de nuevo, desde el propio navegador. Estas novedades, junto con los avances en los estilos de CSS3 y un motor de Javascript común, significan que los desarrolladores Web por fin podrán crear sitios emocionantes, interactivos, con una expectativa razonable de que se van a poder ver y utilizar de forma correcta en cualquier navegador moderno.

Con CSS2, IE6 hizo una apuesta decidida por una especificación que aún no estaba completa. Aquellas implementaciones quedaron petrificadas y ello condujo a permanentes quebraderos de cabeza para los desarrolladores, que se han mantenido durante todo este tiempo en la medida en que el número de usuarios que tenían instalado este navegador era bastante elevado. Aunque la mayor parte de los navegadores actuales se basa en estándares, cada fabricante tiene una opinión propia al respecto de cuándo implementarlos. la historia de IE6 es claramente un ejemplo en contra de una adopción e implementación prematura.

La actualización automática no es un sustituto

Una vez que el navegador está en la calle, ya no se puede retirar. Los navegadores (y las tecnologías Web) se congelan. Se conservan en las grandes organizaciones donde los administradores quieren controlar el software que se ejecuta. Los fabricantes de dispositivos pueden también optar por no distribuir software actualizado. Un buen ejemplo es el teléfono Android. Google ya ha publicado su versión 3.0, pero la inmensa mayoría de usuarios siguen con las versiones 2.1 y 2.2 y no está claro si esos usuarios van a poder actualizar. A medida que HTML5 se extienda a más dispositivos (por ejemplo TVs, teléfonos, autorradios y appliances) con ciclos de actualización más largos, el problema se agudizará. Las expectativas de los consumidores hacen recaer el esfuerzo sobre los desarrolladores, que han de dar soporte a una amplia familia de implementaciones.

Hacer avanzar a la Web

El navegador y el sitio web, cada uno juega su papel en el ciclo evolutivo del “huevo y la gallina” de las nuevas tecnologías Web, pero si un navegador muy popular comienza dando un paso en falso, el impacto se siente en todos los sitios web. Cuanto más amplio es el uso del navegador, más conservador ha de ser a la hora de adoptar nuevas tecnologías.

HTML5, que promete contenidos avanzados sin necesidad de plugins ni extensiones, va ganando terreno, pero sigue siendo una compilación de especificaciones. HTML5 y sus especificaciones anexas cubren un montón de aspectos, aportando directrices para tecnologías que van desde los gráficos vectoriales a los gráficos de mapa de bits, el audio y el almacenamiento interno en el navegador. No todas estas secciones tienen el mismo grado de maduración: algunas son estables ya pero otras tienen muchas probabilidades de verse alteradas a medida que HTML5 va avanzando en el proceso de definición de la recomendación completa del W3C.

En el caso de IE9, Microsoft ha renunciado a seguir el camino de implementar primero y preguntar después. En vez de esto, la empresa ha sido más bien selectiva a la hora de elegir las tecnologías de HTML5 que se incorporan en IE9, optando únicamente por las que cree que están suficientemente probadas y son estables. Entre ellas están el canvas, SVG, la geolocalización y los elementos de audio y vídeo. IE9 incluye además soporte para diversas características de CSS3.

Los fabricantes de navegadores pueden también optar por incluir algunas especificaciones no tan estables, como FileAPI, IndexedDB y WebSockets. Es un tanto comprometido, porque les permitiría presumir con razón de ser los primeros en implementarlas, pero esto también supone poner en la calle tales implementaciones con el riesgo de que echen raíces en las instalaciones de las empresas y en un creciente número de dispositivos de consumidor aparte de los PC , como es el caso de teléfonos y tablets.

Los consumidores disfrutan de estándares con IE9, pero los desarrolladores Web siguen necesitando acceder a las implementaciones iniciales de Microsoft basadas en los borradores de los estándares. Microsoft pone a su disposición diversos prototipos en el sitio web HTML5 Labs, para fines de test y demostración de especificaciones aún inestables o inmaduras. Existen dos prototipos de HTML5 a la fecha de esta publicación, que son IndexedDB y WebSockets, pero la empresa espera poder ofrecer prototipos con otros estándares en este mismo sitio web. También ofrece más información en MSDN.

Esta clara diferenciación entre implementaciones estables (las que ya se han integrado en el navegador) y las menos estables (en prototipos), puede funcionar bien, pero solamente si las nuevas tecnologías dan el salto desde el prototipo al navegador comercial al poco de convertirse en estables. Esperar mucho tiempo para implementar tecnologías desde los prototipos a los navegadores puede limitar el potencial de la Web, sin duda. Sólo el tiempo podrá decirnos cómo puede acabar todo esto.

Lo que aprendimos de IE6

Echando la vista atrás sobre la trayectoria de IE6 los fabricantes de navegadores como Google, Mozilla y Microsoft pueden obtener unas cuantas lecciones muy valiosas:
  • Lección 1: los navegadores se quedan obsoletos (incluso aplicándoles actualizaciones. automáticas)
  • Lección 2: los navegadores están obligados a adherirse a los estándares de la Web,
  • Lección 3: los navegadores deben conseguir un equilibrio correcto entre tecnologías estables e inestables teniendo en mente al consumidor.
Los desarrolladores Web deberán elegir el momento adecuado para incorporar nuevas tecnologías en sus sitios web teniendo presentes estas lecciones. Los estándares de HTML5 tienen capacidad para crear experiencias web realmente impresionantes, pero al mismo tiempo que pueden confiar en las especificaciones estables, también deben evaluar y experimentar antes de publicar sus creaciones basadas en otras no tan consolidadas.

Puedes encontrar más información sobre las tecnologías HTML5 en la web de W3C. Si deseas trabajar con estas tecnologías emergentes de HTML, te recomiendo que visites el sitio HTML5 Labs.