22 de enero de 2008

Los planes de MS para el soporte de estándares en IE

Como bien saben ustedes, el motor de renderizado de IE es una mierdecilla, o siendo más objetivos, una antigualla que en su día estaba muy bien pero ya no lo está hoy. Su lamentable estado de soporte de estándares es vergonzoso para la que presume de ser la aplicación informática más utilizada del mundo. En IE7 la presión les forzó a que mejoraran un par de cosas, pero tan mejoraron eso, un par de cosas, pues entre otras razones, estaban y están muy limitados por el miedo a que todas las páginas del mundo, que están diseñadas para IE 6, dejaran de verse bien. Para bien o mal, y a pesar del aire fresco que ha traido Firefox a las consideraciones de los webmasters a la hora de diseñar webs (¿recuerdan cuando uno de los principales inconvenientes de Linux como equipo de escritorio era, simple y crudamente, que "hay muchas webs que no se pueden ver"?), el mundo depende de ser compatible con IE 6.

Pero ahora, de repente, Microsoft ha visto la luz. Asi que ha aparecido este post en el blog de IE diciendo que IE8 añadirá un modo de soporte de estándares estricto, lo cual está muy bien...pero que se activará cuando el diseñador web incluya en su página una línea determinada, en concreto esta: <meta equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4">. Las páginas que no lo incluyan seguirán siendo procesadas según los estándares soportados en IE 6 y 7.

¿A cuantas personas ha consultado Microsoft para tomar esta decisión? Si estás pensando en "ninguna", has acertado de pleno, aunque como pueden ver en el ejemplo, lo han pensado para que otros navegadores tambien puedan añadir sus navegadores a la lista de "X-UA-COMPATIBLE", porque se han creido o han dado por supuesto que los demás navegadores quieren esto. Acaban de decidir como ha de renderizarse la web del futuro y lo han decidido a su antojo y como más les conviene a ellos. Nuestro motor de renderizado no se adapta a la realidad. ¿Solución? Modifiquemos la realidad. ¡Typical Microsoft!

Los demás navegadores han reaccionado negativamente a lo largo de la blogocosa. Tienen razones para hacerlo: La primera y más importante, que no hace más que perpetuar el caos actual en el que el webmaster tiene que programar código distinto para cada navegador. Si hay que avanzar hacia algún lado, es hacia el contrario: Que los webmasters implementen una sola página, y que todos los navegadores lo renderizen sin problemas. Y va Microsoft y propone una solución mediante la cual la página especifique que funciona en tal navegador, es decir, hagamos que el modelo de referencia de las páginas sea un navegador en vez de un estándar. Segundo, que en la práctica lo que pretenden es lo mismo que han hecho los de Microsoft en toda puta su historia: joder a la competencia. Firefox tendrá que acabar renderizando las páginas que traigan un "IE=8"...porque los webmasters implementarán solo una página que cumpla correctamente los estándares. Es decir, vuelta a los 90: Utilizamos el monopolio para marcar lo que los demás deben hacer. Si este invento de Microsoft se pone de moda, el resto de navegadores tendrá que dedicarse a imitar a IE, un poder que Microsoft había perdido pero que por lo que se ve, trata activamente de recuperar.

En realidad, y esto es lo realmente cómico del asunto, las especificaciones web actuales ya soportan modos de especificar lo mucho o poco que se aferra una página a los estándares, mediante el doctype. Se puede pedir que se renderize una página estrictamente en cuanto a interpretación de estándares se refiere. ¿Cual es el problema? ¡Que IE 6 empezó hace tiempo a aceptar ese modo estricto, pero sin implementar en realidad los estándares! Es decir, existen páginas que piden al navegador una interpretación "estricta", pero en realidad están diseñadas para IE6, es decir, cualquier cosa menos ser "estricto". Como consecuencia, Microsoft no pueden implementar un modo de interpretación "estricto" en IE, pues ese modo ya está ocupado, en la práctica, por miles de páginas web que no cumplen estándares. En el propio post donde han anunciado por primera vez al público lo que van a hacer, escriben:

IE6's rendering behavior was not updated for five years, leading many developers to assume its rendering was both accurate and unlikely to change.

Esto lo escriben en un párrafo titulado "doctype is broken". O sea, que hacen una chapuza en el IE6 que ha provocado que miles de sitios utilizen un doctype erroneo, y ahora van y se inventan una cosa nueva para poder salir de la situación, aunque sea a costa de joder a los demás. Como dicen en un blog de los enlazados: If anything, we want less differences between quirks and standards mode.. No más, como propone Microsoft.

No es que el doctype sea perfecto, la evolución de la web ha sido más bien chapucera en todos los frentes, mozilla/firefox incluido. Pero si hay algo que hacer, sería "arreglar" el doctype, que exigiría ceñir el diseño de la web a un estándar de la web...no lo que propone microsoft, que es ceñir el diseño de la web a lo que hace IE. Reconozco que debe ser una putada estar atrapados como están los de IE, pero en gran parte ese es su problema, que se lo han creado ellos, que los demás no tienen y que deben resolver ellos por su cuenta. O al menos, que pidan a la W3C que se añada otro doctype, joder...

6 comentarios:

  1. Viandante5:47 a. m.

    "el mundo depende de ser compatible con IE 6", tu mismo lo estás diciendo. El estándar de facto es de Microsoft. ¿Cuál es la queja?

    ResponderEliminar
  2. ¿Cuál es la queja? Pues muy sencillo, que ahora mismo eso solo significa un 50% de los navegadores, y la cifra va disminuyendo. Pero ¿que tenemos detrás? IE7, que renderiza de otra forma las webs, y viene IE8, que según esto, tendrá otra renderización también distinta. Yo en mi web (y no me refiero al blog) tengo tres partes en mi CSS. Una estandard, una con arreglos para IE6, y una modificación de esta para IE7. Que mundo más maravilloso, ¿verdad? Me parece vergonzoso que Microsoft pretenda solucionar las cosas así. Que hagan una buena implementación de los estandares, que para eso están.

    P.D.- Que conste que no pretendo crear mal rollo con viandante, solo trato de mostrar una realidad que me pone de los nervios.

    ResponderEliminar
  3. Totalmente de acuerdo contigo, Diego.

    Quiero agregar: No sería más sencillo para Microsoft publicar IE8 con otro nombre, por ejemplo "Windows Live Explorer", que únicamente soporte los estándares al nivel de Firefox, Webkit (Safari) y Opera, y manteniendo aparte (sólo por compatibilidad, accesible con un botón de la toolbar, un una aplicación separada), el IE 7?

    Con la máquina de marketing que tiene Microsoft, sólo con poner "nuevo y mejorado", le agregan un par de cositas al "nuevo y mejorado" navegador, y listo, en 1 año tenés la gran mayoría de sitios "IE6 only" migrados. Algo así hicieron con .NET (porque su modelo COM/DCOM era pésimo), y mal no les fue.

    Ahora, suponiendo que se les ocurrió esta opción, y que es "good enough", sólo haberla descartado me hace pensar que siguen siendo los mismos de siempre...

    No sé, es mi opinión, maten al IE. Por favor. :-)

    Saludos!
    Marcelo

    ResponderEliminar
  4. viandante: Pues no se, ¿quizás que hace que la web no pueda evolucionar? ¿Que Internet no es propiedad de Microsoft?

    ResponderEliminar
  5. Anónimo5:43 p. m.

    Realmente ninguno de los 2 principales navegadores actuales, me refiero al iexplorer en todas sus versiones y al firefox, es capaz de renderizar correctamente webs basadas en estandares actuales (ya no digo CSS3, solo CSS2 por nombrar un ejemplo)... y por encima son los 2 navegadoers más lentos que hay...

    Y lo peor, los 2 navegadores alternativos, Opera y Safari/Konqueror, que si cumplen los estandares actuales desde hace muchos años, es que al final tienen que renderizar páginas como lo harían navegadores no suficientemente estandares...

    Por cierto marcelo, si el modelo COM de MS erá tan malo, ¿por qué tantos proyectos de Linux intentaron copiarlo? eso si si exito, el único con exito parcial es el auspiciado por KDE (Kparts)... O porque hay tantos proyectos para copiar .NET (Mono, DotGnu -aunque este es el código de Mono cambiado de nombre-...)...

    Un Saludo

    ResponderEliminar
  6. Anónimo, yo no dije que .NET sea malo; todo lo contrario, es copia de Java (más unas cuantas cosas interesantes), lo cual lo fortaleció como solución (en cuanto a infraestructura) bastante y le está dando resultados: bien por ellos!

    Y Mono existe por una sola razón: lo buena que es la tecnología (aunque no la conozco, entiendo que está bastante bien), y la negativa de Microsoft en hacer .NET multiplataforma. El tema de la "libertad" es un valor agregado importante para muchos y sin valor para otros, por eso lo dejo fuera de la afirmación.

    Por otra parte, no conozco las "copias" de COM "de Linux" (?), quizás podrías dejar alguos links sobre algunas. KPart no es copia de COM/DCOM que yo sepa; es un modelo de componentes reutilizables, nada más (habría que definir qué es "copia", quizás tengamos conceptos diferentes). Por otra parte, Bonobo (lo que en un momento intentó desarrollar Gnome), está más orientado al concepto de CORBA...

    Por último, te cambio la pregunta: si COM/DCOM era "tan bueno", por qué Microsoft lo reemplazó de cuajo por .NET sin darle soporte?

    Bueno, son opiniones, nada más...

    Saludos
    Marcelo

    ResponderEliminar