Geek & Roll - Blog Archive » El legado de Internet Explorer

El legado de Internet Explorer

O cómo años de cochinada te aplican la ley de Herodes: o te chingas, o te jodes.

El día de hoy se publicó la versión 8 del navegador más utilizado en el mundo: Internet Explorer. Más utilizado no necesariamente significa mejor, aunque en este caso definitivamente es una versión superior a su antecesor en muchos aspectos. IE8 es más seguro, más rápido y más respetuoso de los estándares; y tiene que serlo, años de negligencia y una creciente inconformidad con la oferta de Microsoft provocaron que Firefox se convirtiera en una seria amenaza y navegadores alternativos se colocaran en el ojo del público en general (Opera, Safari), además de Chrome, el nuevo navegador de Google, todo un trendsetter. En Ars Technica hacen una excelente reseña de las nuevas características de IE8.

Pero años y años de ignorar estándares, o inventarse los propios, puso a los ingenieros de Microsoft en una terrible disyuntiva: o arreglamos nuestro cochinero y en el proceso nos cargamos a todos los desarrolladores Web que pasaron incontables horas depurando para IE, o seguimos manteniendo el cochinero y de alguna manera tratamos de que no suceda más. Eligieron lo segundo (para sorpresa de nadie, creo yo, si la historia de compatibilidad de Windows ha servido de algo).

La mecánica que siguieron es la siguiente (muy simplificada): hacemos a IE8 lo más apegado a estándares que se pueda (muy bueno), y proporcionamos a los usuarios la posibilidad de renderear el sitio en modo compatibilidad por si rompemos algo (so so). Pero rápidamente se dieron cuenta que pedirle a los usuarios presionar un botón para que un sitio se vea bien, siendo que con la versión anterior no tenían problema, y especialmente tomando en cuenta que fueron ellos mismos (Microsoft) los que provocaron que esos sitios estuvieran llenos de parches, hacks y workarounds para funcionar bien con IE, no era suficiente.

En respuesta a esto, y para tratar de aliviar la situación, proporcionaron un mecanismo para indicarle al navegador cómo renderear el sitio sin necesidad de presionar botón alguno. Completamente transparente para el usuario. La solución es enviar un encabezado HTTP especial en la respuesta, de esta manera el navegador sabe que hacer.

Ahora, la solución puede parecer relativamente fácil, pero el trabajo lo llevan los desarrolladores Web. En primera, son ellos los que año tras año, y versión tras versión han tenido que sacarle la vuelta a los modos irrespetuosos de IE. Ahora IE viene y te dice “Ok, ahora sí funciono como se supone, pero tienes que hacerme este último favorsito…”. Y la ironía no sería tan graciosamente torcida de no ser que IE deja por fuera la etiqueta canvas, al mismo tiempo que discontinúa VML y le da un certero golpe a muchos sitios y librerías que implementan cosas como esquinas redondeadas con VML cuando el usuario usa IE (y canvas o SVG cuando no).

En lo personal el problema me pegó al probar averalcine.com en IE8. Lightbox no funciona, tan solo en modo de compatibilidad. Y ni modo, a mandar un encabezado HTTP que no tendría porque.

12 Comentarios

bobby

March 19th, 2009

Como de costumbre, hechenle la culpa a Microsoft.

http://www.joelonsoftware.com/items/2008/03/17.html

Hechale una miradita a esto, haber que te parece. :)

Cesar

March 20th, 2009

Muy interesante lectura, gracias por el link. Estoy de acuerdo 100% con lo que dice y concluyo lo mismo que en el post. En esta ocasión (y no como de costumbre) la culpa es de Microsoft.

No me malentiendan, yo entiendo que se cometen errores y no hay navegador que respete los estándares completamente. Entiendo también que los estándares son difíciles de interpretar. Lo que no justifico es bloquear el avance de los estándares y solo apegarse a ellos cuando la pelea se está perdiendo.

Recordemos que esos sitios que ahora no funcionan, funcionarían si las cosas se hubieran hecho bien hace mucho tiempo, cuando el cambiar de actitud y respetar estándares no hubiera “roto” gran parte de la Web. Pero claro, en aquel tiempo la pelea no se estaba perdiendo y IE6 se puso sentar en sus laureles a descansar.

Los ingenieros de IE dijeron que no podían liberar IE8 solo con modo estándar porque muchísimos sitios no funcionan. La parte que omiten es por qué no funcionan: porque fueron parchados para funcionar en IE.

Axel

March 20th, 2009

La cuestión era:

1. Liberamos IE8 sólo con modo estándar, y empezamos a hacer las cosas bien de una vez. Los que saben hablan bien de nosotros, la gente “común” encuentra que sus sitios “se rompen” en internet explorer y porsupuesto para ellos la culpa es del navegador.

2. Liberamos IE8 en modo selectivo, los desarrolladores tienen que “pedir” que su sitio se renderée en modo estándar, y todos los sitios llenos de parches y hacks siguen funcionando. La gente “común” no nota cambios sino para bien.

Obviamente la opción de “hacer las cosas bien” al final no les conviene y la elección lógica se vuelve lo segundo. No hacer las cosas bien por evitarse la pena. Ni por aliviar un poco de karma.

Y, Bobby: lo siento si tu microsoftero interno patalea, pero el problema con los hacks, el cochinero que se hace actualmente para mantener sitios que se vean bien en ie, es culpa de Microsoft, punto.

bobby

March 20th, 2009

No es mi Microsoftero interno. Hasta ahorita que me estan sorprendiendo con sus ultimos lanzamientos (Win7 para ser mas preciso) uso su producto en mi maquina que uso para todo.

Nunca he sido Microsoft advocate, y si alguna vez fui defensor de algo fue de las tecnologias open source.

El caso es que llega un punto, en el que tienes que dar un paso atras y ver las cosas desde otra perspectiva y ser un poquito mas… objetivos, acerca de lo que esta pasando.

Lo siento si tu revolucionario anti microsoft interno se patalea. :)

Axel

March 20th, 2009

Pues no podrías estar más equivocado con lo de “revolucionario antimicrosoft”.

De hecho no podría estar más contento con windows 7 (mi principal OS desde hace más de dos meses), y con la estrategia que ha adoptado Microsoft en los últimos meses, de volverse un poco más abierto y de empezar a escuchar a sus usuarios.

Este tema no se trata de ser abogado de ninguna causa, sino, precisamente, de lo que mencionas, ser objetivos.

No hace falta ser muy lúcido para darse cuenta de que en los últimos 10 años microsoft no ha hecho mucho por permitir el avance en la web si esto implica perder por lo menos un poquito de market share. Es natural, es obvio, como ya lo mencionaba en mi comentario anterior, pero eso lo ha llevado (y a nosotros entre sus monopólicas patas) a estar dando soporte a muchas, muchas cochinadas que hay que hacer para emular cosas como transparencia PNG, min-width, max-width, y una infinidad de etcéteras. Incluso IE7 soporta a medias muchas cosas que otros browsers soportan desde hace mucho tiempo, lo que le suma una tonelada más de hacks a cualquier sitio serio que deba ser visto en cualquier navegador.

Por todo esto, y por lo mismo de escuchar, y de sacar productos de mejor calidad, se esperaría que IE8 por lo menos hiciera el render por default en modo de estándares suponiendo que tengamos un doctype definido correctamente y que cayera en quirks mode si no es así. Con algo tan sencillo como esto, se le abren las puertas al avance en la web por parte del vendor con mayor participación en el mercado, y de paso sube un poco de puntos en prestigio, cosa que le hace mucha falta en estos tiempos.

Así que después de esto no me vengas a vender lo que eres o no eres, y sobre todo con eso de “ser objetivos”. Hay que ver las cosas como son.

bobby

March 20th, 2009

Disculpe usted señor integridad :)

boynacoras de la sierra

March 20th, 2009

Mejor vamos a hablar de cual es la mejor mayonesa… Asi nadie se peleya…
“No se peleyensen”

Bueno, yo si quiero tirarle mierda a microsoft… solo porque mientras que todo mundo a tratado de ser practicos y hacer aplicaciones web, que muchas veces son “mission critical” para muchas compañias… ahi viene microsoft cada determinado lapso de tiempo a chingarse en toooodo mundo.

No es que me queje, porque gracias a eso los ITs tenemos un poco mas de seguridad de trabajo. Osea que hay que darle gracias a microsoft por darnos de comer arreglando sus estupideces.

Les gusta esta objetividad???

Si no les gusto, avisenmen para montarme en mi macho y seguir haciendo domentarios estupidos, defendiendo mi primer postura mientras la gente me hace cagada!

Rafyta

March 20th, 2009

QUE WEBA lo que están haciendo, o sea no es un último favorcito lo que piden. Desde mi punto de vista, las personas que se están esforzando en construir sitios apegados a estándares ahora son penalizados y hay que ir aún más allá de esos estándares (poniendo el header roñoso de MS) para que el sitio se vea correctamente.

Dicho de otra forma, los consentidos son los que hacen un cochinero de código y los “bien portados” tienen que aclarar “hey wey, esta página está bien hecha, ok? no la hagas cuacha, aquí está mi identificación de standarista”.

No estoy de acuerdo en “dar un paso atrás” y tener que buscar una “nueva perspectiva” por culpa de la basuraque programó MS y porque no quieren “decepcionar” a sus fanboys o a los que se pasaron horas y horas bastardizando código para correr en un navegador obsoleto.

Creo que disculpar todo el cochinero de Microsoft y que aún nos obligue a adaptar el código especialmente para su navegador es absurdo, estúpido y arrogante a más no poder. ¿Porqué no obligan a los chafacoders MSeros? de todos modos el código de ellos ya está hecho giras. Ah, no pues, los señores no pueden ser molestados; mejor hay que hacérselas de agua a los que usan estándares.

Qué pena la neta.

Elyager

March 24th, 2009

Desde la perspectiva que lo mires yo creo que sea como sea es una avance, de IE8 a los anteriores IE, Microsoft esta avanzando y con las soluciones que plantea Rafyta en en el siguiente post http://www.geekandroll.com/2009/03/internet-explorer-8-que-no-te-preocupe/
creo que no hay mayores problemas.

Rafyta

March 24th, 2009

La neta sí es avance (relativo), lo que no nos parece a muchos es el excusar a MS por fallas que podrían haberse corregido muy fácilmente.

Cesar

March 25th, 2009

No no, por favor RTFA (y para que no existan excusas, significa Read The Fucking Article)

No se esta debatiendo si hubo avances o no, eso es clarísimo. Inclusive al inicio del post se indica que definivamente IE8 mejora mucho sobre sus versiones anteriores. Que versiones anteriores tengan fallas también se entiende, ningún software no trivial está libre de bugs, más si se trata de algo tan complejo como un navegador moderno.

El propósito del post es debatir sobre cómo MS dejó una versión incompetente (IE6) por mucho tiempo en el mercado, y cómo gracias a su posición monopólica pudo hacerlo sin sufrir demasiado en su quota de mercado. Después llega la competencia y saca otra versión, IE7, un poco menos incompetente, pero igual de irrespetuosa con los estándares.

El resultado de tantos años de navegadores incompetentes y posiciones monopólicas? millones de sitios parchados para IE. Y ahora que sacan IE8 deciden que respetar estándares es lo correcto, cargándose a todos estos sitios que precisamente fueron parchados por culpa de su navegador incompetente. La “solución” que dices con la que no hay mayor problema no es realmente solución, por lo menos no definitiva. La única solución real es rehacer esas páginas, eliminando esos parches.

Si te parece que injustamente se le acorrala a MS en una posición de “malo si lo haces, malo si no lo haces” entonces no entiendes las implicaciones de la negligencia del pasado, completamente deliberada por su parte. Ellos mismos crearon esa posición, y los que la pagan son los webdevs.

Rafyta

March 25th, 2009

@Boynacoras: Aún no me decido entre McCornick y Bestfoods, últimamente me gusta más la McCornick porque trae limón. xD

Haz un comentario:

Es necesario que dejes tu nombre y correo electrónico (no se publicarán).

Si dejas un comentario anónimo, con insultos o ajeno al tema, iremos hasta tu casa y le diremos a tu mamá la cantidad de porno que hay en tu computadora. Si, lo sabemos.