Los estándares no valen para nada

Los estándares, en informática, son lentos de especificación, tardíos de publicación, ineficaces e insuficientes.

Unas cuantas muestras:

  • WCAG: estándar de accesibilidad web, la versión 1.0 data del 99 y desde entonces no han sido capaces de ponerse de acuerdo en uno actual y viable.
  • SQL: ni siquiera soporta realmente algo tan elemental como jerarquías padre-hijo (lo que Oracle implementa mediante "connect by"). Eso hace que el SQL de Oracle sea incompatible con el de MySQL, que es incompatible con PostgreSQL... Las implementaciones en las BBDD ni siquiera son capaces de ponerse de acuerdo en los limitadores de cadena.
  • ANSI C: tres cuartos de lo mismo, en cuanto intentas hacer algo, el compilador estricto se queja.
  • JSF: estándar orientado a sustituir la programación de HTML por otra orientada a componentes, y en su versión 1.0 ni siquiera era capaz de hacer todo lo que éste hacía (¡y además era incompatible con él!). En la 1.2 algo ha mejorado, pero los componentes estándar son irrisorios, requiriendo usar múltiples librerías para tareas habituales (en el último proyecto acumulo ya MyFaces + Tomahawk + Sandbox + Facelets + Ajax4JSF + RichFaces, y suma y sigue).
  • JCR 1.0: ¿¡nadie se dio cuenta de que no había un mecanismo para asignar permisos!?
  • (x)HTML, CSS, Javascript...: cada navegador es un mundo aparte. Un buen desarrollador web se ve obligado (además de a acudir a terapia) a aprender hacks para afinar el resultado y que funcione al menos en los mayoritarios.
  • XML: destinado a ser un santo grial de la informática, constantemente aparecen incompatibilidades entre los parsers. Es raro que ni siquiera un fichero de configuración algo grande funcione correctamente en varios motores. Iba a ser adecuado para procesamiento automático, pero en la práctica es lento. También era apto para lectura humana, pero es engorroso (quien haya programado Ajax a capella, que compare trabajar con JSON y con XML).
  • Servicios Web: lo que debía ser una forma sencilla de conectar aplicaciones saltándose cortafuegos, se convierte en una colección de siglas (¿habéis leído introducciones a servicios web mediante Java?) difícil de comprender y de poner en práctica de forma productiva. A menudo, con incompatibilidades entre implementaciones. Y sorprendentemente (la web era ya madura) cuando se especificaron se dejó para más tarde la seguridad...
Los únicos que de verdad han funcionado, los mpeg (mpeg4, video, y mp3, audio), debidos a una limitación: si te sales del estándar, el reproductor casero o portátil deja de funcionar. Igual pasa con ethernet...

Moraleja: si pretendes hacer funcionar un estándar, vende implementaciones de sus algoritmos programadas en circuitos. Ellos no entienden de excepciones. Ójala se hiciese ya un "navegador hardware".

Corolario: Microsoft triunfa porque impone "estándares". Hibernate triunfa porque abstrae de SQL. Spring triunfa porque no se ciñe a ningún estándar. Struts triunfó porque solucionaba todo lo que J2EE no solucionaba... Be propietary, my friend...

Posted by Juan Ignacio Sánchez Lara 21:53  

0 Comments:

Post a Comment