DOCTYPE es un mito?

Estaba leyendo un artículo sobre la salida de Internet Explorer 8; el que por fín (según Microsoft) va a ser ACID2 y va a cumplir todos los estándares (a costa de llevarse por los cachos a los diseñadores de páginas “solo compatible Internet Explorer”)

DOCTYPE significa Document Type y viene de una forma de “describir” las posibles combinaciones de “tags” que se encuentran en un documento; un ejemplo de DOCTYPE es la siguiente regla:

<!ELEMENT body %Block;>
<!ATTLIST body
%attrs;
onload %Script; #IMPLIED
onunload %Script; #IMPLIED
>

Dicha regla (Extraída del DTD xhtml 1.0 estricto) indica que el elemento BODY es de tipo Bloque (renderiza de manera completa con saltos al inicio y al final; posee margenes y padding y puede contener otros objetos) además sus posibles atributos son onload (al cargar) y onunload (al descargar); esos atributos “WINDOZEROS” de bgcolor, vlink y cosas de esas NO EXISTEN y solamente existen “compatibilidades” entre algunos browsers porque Microsoft mal acostumbró a los usuarios a modelar mal sus páginas web. (es como el dar atributos de estilo “valign”, “align”, “bgcolor” usando atributos o etiquetas, cuando para ello existe CSS).

Siguiendo los enlaces del artículo anterior, llego a la página de un tal Joel Spolsky; quien dice ser un gurú del diseño web y que además indica que “IE8 debería incumplir estándares para evitar el conflicto con las millones de webs acostumbradas a “Solo para Internet Explorer”; pero lo que más me preocupó es leer cosas como esta:

“DOCTYPE is a myth”

“A mortal web designer who attaches a DOCTYPE tag to their web page saying, “this is standard HTML,” is committing an act of hubris”

Un acto de orgullo desmedido?; se supone que estoy cumpliendo los estándares que el comité que lleva los documentos para la web, la W3C ha creado; confunde con el hecho que eso es Sinónimo de ser “testeado” en IE, Firefox, Opera, Safari, Camino, Epiphany, etc y realmente nada más lejos de la realidad; la presencia de un DOCTYPE indica que sigo las reglas y estructuraciones de la W3C; no que “me veo bien en todos los browsers”; son los browsers los que deben “adaptarse” a los estándares y no el usuario sus páginas.

Pone como ejemplo que para poner un parrafo en minúsculas se debe hacer lo siguiente:

<p><small>

Pero la gente allá afuera hace:

<small><p>

y alega que IE hace lo que “deberia” (poner las letras en minúsculas) porque “es lo que se espera”; sin embargo, si leyeran un poco de DTD se darían cuenta que:

<!ELEMENT small %Inline;> <!– smaller font –>

SMALL es un elemento INLINE; por ende, “no puede contener objetos de tipo bloque” (es como querer meter un DIV dentro de un SPAN); claro, según el autor, este es un error que “debe ser perdonado”; pero a mi las reglas y los estándares me dicen que “antes de SMALL, se escribe P” …

Es como nos enseñaban en ortografía y gramática “Antes P y B se escribe M”; ¿voy a diseñar un editor de texto que omita los errores ortográficos solo porque la gente los comete? … increíble conclusión la del autor.

La culpa es de la vaca …

Vean el siguiente escenario:

“You’re going to tell your friends, “Don’t upgrade to IE 8. It messes up every page, and Google Maps doesn’t work at all.” Are you going to View Source to determine that website X is using nonstandard HTML, and Google Maps doesn’t work because it is using non-standard JavaScript objects from old versions of IE that were never accepted by the standards committee? Of course not. You’re going to uninstall IE 8. (Those websites are out of your control. Some of them were developed by people who are now dead. The only thing you can do is go back to IE 7).”

Ahora bien; Google Maps diseña un codigo javascript “cross-browsing” solo porque el resto del mundo está peleado con IE; IE8 es IE (pero supuestamente sin los bugs de IE7); ahora bien, al detectar que es un IE, entonces asume y apica un “non-standard broken javascript” (que realmente no funciona en ningún otro browser salvo IE) y por ende, ahora en IE8; las páginas se ven horribles; según el autor; esto simplemente es CULPA DE GOOGLE MAPS!; o sea, ahora a IE8 le da por “lavarse la cara” y todo el planeta es culpable de su anterior “mala fama”.

Viendo mal las cosas:

Almost every web site I visited with IE8 is broken in some way. Websites that use a lot of JavaScript are generally completely dead. A lot of pages simply have visual problems: things in the wrong place, popup menus that pop under, mysterious scrollbars in the middle. Some sites have more subtle problems: they look ok but as you go further you find that critical form won’t submit or leads to a blank page.

These are not web pages with errors. They are usually websites which were carefully constructed to conform to web standards. But IE 6 and IE 7 didn’t really conform to the specs, so these sites have little hacks in them that say, “on Internet Explorer… move this thing 17 pixels to the right to compensate for IE’s bug.”

And IE 8 is IE, but it no longer has the IE 7 bug where it moved that thing 17 pixels left of where it was supposed to be according to web standards. So now code that was written that was completely reasonable no longer works.”

Ok, casi “TODA” web que ha visitado tiene algún “hack” para hacerla verla bien en IE; razonablemente, IE8 es un IE; pero renderiza mal todas las páginas; alega que “Cada sitio web revisado ha sido construido principalmente cumpliendo los estandares web, pero IE6 e IE7 no cumplen esas especificaciones; entonces la gente terminaba agregando un par de hacks como “mueve ese div 17 pixels a la derecha para compensar el bug de rendering de IE”; ¿Es eso según el autor, culpa del diseñador?, ¿Culpa del Estandard? o ¿Culpa de Microsoft por acostumbrar a los developers que sus herramientas todas están broken? …

No es culpa de los estándares que una página se vea mal; un estándar DTD me dice a mi que un DIV no debe tener width y height o mucho menos alineación via tags o atributos (como <center> o <div align=”center”); pero ¿Qué pueden hacer los developers cuando se encuentran que los atributos de CSS min-width, min-height, vertical-align, text-align o float IE los renderiza como le sale del forro? … eso entonces es culpa de la W3C? …

El estandar me dice a mi como debo construir mi página; si pongo las ventanas pegadas arriba y la puerta la pinto de rosa con paredes en fugsia; no es culpa de la w3c que la página simplemente se vea mal; no es culpa del estándar que IE quiera aplicarle overflow a todo OBJECT o DIV que no posea explicitamente un “overflow: hidden” y cause las extrañas “scrollbars flotantes” dentro de muchas páginas en IE8 …

No estaba muerto, estaba de parranda! …

Hay miles de páginas en CD-ROM, autores que se han muerto, o realmente están de parranda; como no podemos pedirle a millones de diseñadores que cambien su codigo para “ahora si” ser compatibles y estándares y verse bien en IE8 y como “purista y pragmático” es malo llenar de hacks (como ocurrió con Windows 95 y XP) y validaciones a IE8 para que determine el tipo de página y renderizarla “adecuadamente”; entonces simplemente, “DEJEMOS A IE8 Buggy! y con los errores del pasado”; muy a lo de perpetuar los errores como ocurre con el “error de las fechas” en Excel que ha sido perpetuado en su ECMA OOXML

“The consumer is not an idiot. She’s your wife. So stop laughing. 98% of the world will install IE8 and say, “It has bugs and I can’t see my sites.” They don’t give a flicking flick about your stupid religious enthusiasm for making web browsers which conform to some mythical, platonic “standard” that is not actually implemented anywhere. They don’t want to hear your stories about messy hacks. They want web browsers that work with actual web sites.” …

Por tanto, como la gente realmente “si es idiota” y no va a andar preguntando ¿Por qué se vé mal esta página web o por qué la página web de mi banco no funciona en IE8? simplemente se va a cambiar a otro browser (gracias al cielo existe Mozilla Firefox!) o volver al viejito (si Winbugs Vista se los deja); ¿Es esta la excusa para no llenar de hacks a IE8 y dejarlo tal cual y como está IE6/IE7 lleno de bugs? … increíble! …

Web Designers Rojos Rojitos … :p

Para colmo de males según el autor; los estándares son algún tipo de imposición maligna!; y compara a los puristas de los estándares con “alguna clase de Comunista Troskista” donde arrestaremos a todos los que incumplan los estándares ya que “La ley es la ley”; y yo pregunto, ¿Y por qué no?; realmente han existido estándares desde tiempos inmemoriales; Bloques y casas cuadradas, pantalones con bolsillos, gasolina del mismo octanaje, tubos del mismo diámetro y hasta Microsoft ha postulado un “estandar” para sus documentos de Oficina y este sujeto viene y dice que ¿Eso está mal?; Qué todos los que defendemos los Estándares somos una especie de cuasi-religiosos fanáticos talibanes que adoramos unos “míticos y platónicos” estándares? …

Ya que la página del autor está hecha con .NET y realmente no pasa ni el estándar más básico y laxo que es HTML 4.01 transitional; entonces simplemente nos damos cuenta de su preocupación por “no querer utilizar estándares” …

Bueno, si de verdad soy taliban; con este artículo, voy a empezar a encender una hoguera …

La terrible verdad …

No podemos seguir en este juego donde la gente no solamente no sigue los estándares sino que debe agregar a los aplicaciones “hacks” y “bugs” para poder hacerlas funcionar o hasta simplemente diseñarlas con las herramientas de una compañia; no puede ser que los usuarios tengan que cometer errores para tapar toda una serie de errores que de fábrica, traen los programas de una empresa; hay algo demasiado mal en el diseño de software dentro de Microsoft, evidentemente demasiado mal…

Un caso patético demostrativo ocurrió cuando el gran gurú del XML Daniel Robbins (y creador del proyecto Gentoo Linux) se fué a trabajar para Microsoft para “ayudarlos a entender XML”; cuando este les dijo que debian re-escribir ese motor XML (de donde se basa trident, el motor de Internet Explorer; o los schemas XML de .NET); simplemente le dijeron que “razones de marketing y económicas impedían esto” y simplemente fue removido a los 3 meses de contratado; ¿Como argumentos de mercado o económicos van a privar sobre la eficiencia técnica de una aplicación?, esto es como reducir la cantidad de miligramos del envasado de una medicina para vender más, asi esta cure menos … simplemente patético …

Yo siempre pongo como ejemplo clásico el siguiente:

SVG:
<ellipse cx="80" cy="80" rx="50" ry="50" style="fill:rgb(255,229,242); stroke:rgb(242,0,125); stroke-width:5"/>
Ahora en XAML:
<Ellipse CenterX="80" CenterY="80" RadiusX="50" RadiusY="50" Fill="PaleGreen" Stroke="DarkBlue" StrokeThickness="5"/>

Se ven iguales no?; son una elipse idéntica, la de arriba es creada con un estándar de la W3C, se llama SVG, la otra con XAML, es un lenguaje de marcado de vectores “creado desde cero” por Microsoft; pero que simplemente es una “gran copia” de SVG; ¿las diferencias?, que Microsoft no “interactua” con otros estándares (como CSS) ni tampoco “cree abiertamente en la interoperatibilidad que tanto pregona” y simplemente se dignaron a copiar SVG y sustituir CSS por atributos (que és lo que el XML Schema base de Microsoft reconoce); los XML generados por las aplicaciones de Microsoft son heredados de copias de finales de los 90; ninguno pasa las reglas más básicas de la W3C como validaciones por DTD o las reglas de XML schemas; ¿Entonces van a seguir usando y hasta “copiando” las tecnologías dañadas de Microsoft? …

Conclusiones:

Creo que hay una increíble pugna dentro de las filas de Microsoft; quienes quieren abrazar el OSI (Open Source Initiative) y adoptar estándares para sus aplicaciones y los directivos dinosaurio (como Steve Ballmer) que simplemente piensan en el mercado, la economía, el dinero y seguir con la funesta tradición que “antes”  les generaba dinero; crear aplicaciones rotas para obligar al usuario a comprar siempre nuevas versiones, cada una con tantos fallos como la anterior.

Celebramos con beneplácito que el grupo de desarrolladores de IE desee abrazar los estándares de la W3C y del ECMA y se disponga a solamente aceptar DOM, CSS 3 o EMCA Javascript 2.5 (en vez de MS Jscript) y nos permita a los developers crear aplicaciones “universales” y “para todas las plataformas y browsers” sin tener que preocuparnos por “cuantos pixeles moveremos ese div para que se vea bien en IE?”; espero que los pre-históricos como Steve Ballmer pierdan la pelea y condenen a IE8 a una vida alejada de la realidad y de los estándares …

Aunque conociendo a MS Spectra, ya sabemos cual puede ser el veredicto final …

Acerca de phenobarbital

http://about.me/phenobarbital

Publicado el 21 marzo 2008 en Cultura Libre, Linux, PlanetaLinux. Añade a favoritos el enlace permanente. 2 comentarios.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: