martes, 21 de febrero de 2012

El proceso de estandarización del W3C

Ayer escribí la entrada De los estándares, normas, recomendaciones y otras "tonterías" en la que quise explicar lo importante que son los estándares en nuestras vidas y los beneficios que nos aportan. Aunque no nos demos cuenta, estamos rodeados de estándares por todas partes: el tamaño del papel que tengo encima de mi mesa, el casquillo de la bombilla que ilumina mi oficina, el conector USB del teclado y del ratón que estoy usando ahora mismo, la disposición de las teclas en el teclado que estoy usando ahora mismo para escribir este texto, etc., todo eso y mucho más está basado en estándares internacionales que nos hacen la vida un poco más sencilla. Sin los estándares, la vida podría ser un auténtico caos.

Y por supuesto, el lenguaje HTML, CSS, DOM y JavaScript con el que está creado Blogger y que me permite usarlo con cualquier navegador, lo que me evita el tener que tener un navegador concreto que me exija Google para poder usar Blogger. Mejor no imaginemos qué pasaría si no hubiese estándares en el desarrollo web...

Los estándares (también llamados normas) se pueden clasificar de diferentes formas. Así, por ejemplo, podemos hablar de:
  • Estándar cerrado, abierto o libre.
  • Estándar legal (de iure) o de hecho (de facto).
  • Estándar nacional, internacional o industrial.
Los estándares normalmente son creados por organizaciones, públicas o privadas, como puede ser AENOR en España, DIN en Alemania, ANSI en Estados Unidos o ISO a nivel internacional. Estos estándares pueden estar oficialmente respaldados en el ordenamiento jurídico de un país, es decir, son de obligado cumplimiento por ley.

El World Wide Web Consortium (W3C) es un consorcio internacional e independiente que fue fundado en octubre de 1994. Está formado por empresas, organizaciones gubernamentales y no gubernamentales, que tiene como misión guiar la Web hacia su máximo potencial. Para ello, el W3C promueve la evolución e interoperatividad de la Web desarrollando especificaciones, protocolos y recomendaciones.

En la actualidad, el W3C no tiene el mismo peso legal que tiene, por ejemplo, ISO. Supongo que por ello, las especificaciones y protocolos que crea el W3C se llaman "recomendaciones", aunque en el mundo del desarrollo web reciben la misma consideración que cualquier estándar en otra industria. Las recomendaciones del W3C son estándares de hecho: estándares no oficiales, pero que debido a su enorme penetración y aceptación en el mercado, tienen el mismo peso que un estándar oficial.

Desgraciadamente, un estándar no es siempre la mejor opción posible entre todas las existentes, y muchas veces se tarda mucho en desarrollar un estándar porque hay que encontrar un consenso entre muchas partes, cada una con sus propios intereses (no creamos que W3C es una organización tan independiente como se pueda pensar, ya que está formada principalmente por personas de las empresas y organizaciones que más intereses tienen en el tema, como Microsoft, Google, Apple, Opera y Mozilla). Es el precio que hay que pagar para luego poder tener una serie de beneficios.

Para lograr el consenso entre todas las partes implicadas, el W3C tiene definido un proceso (World Wide Web Consortium Process Document). Este proceso consta de siete pasos:
  1. Submission: un miembro del W3C puede enviar una propuesta de estándar al W3C.
  2. Note: a menudo, la propuesta se convierte en una nota que se hace pública. Una nota es simplemente la exposición pública de una propuesta. No supone en ningún modo que tenga el apoyo del W3C, no supone que se haya iniciado ningún trabajo de estandarización y el único propósito es crear un foro de discusión.
  3. Working Group: cuando el W3C reconoce que una propuesta tiene interés y se debe desarrollar, se establece un grupo de trabajo. El grupo de trabajo establece un calendario de trabajo y publica un primer borrador con la propuesta que se quiere estandarizar.
  4. Working Draft: un borrador de trabajo es un documento que se expone públicamente para mostrar el progreso en el desarrollo de una nueva recomendación. Junto con su publicación se establece un calendario para que el público pueda participar y enviar comentarios y correcciones. Un borrador de trabajo nunca se debería emplear como material de referencia, porque puede ser actualizado, reemplazado o incluso declarado como obsoleto en cualquier momento.
  5. Candidate Recommendation: una recomendación candidata es un borrador de trabajo que ha alcanzado un alto nivel de madurez, pero que también puede ser actualizado, reemplazado o incluso declarado como obsoleto en cualquier momento, como cualquier otro borrador de trabajo. El propósito de la recomendación candidata es que sea implementada y probada para comprobar que su uso es factible.
  6. Proposed Recommendation: después de que todas las características de la recomendación candidata hayan sido implementadas, se publica la propuesta de recomendación que representa la última etapa previa a la publicación definitiva de la recomendación.
  7. Recommendation: una vez que la propuesta de recomendación haya recibido el apoyo suficiente, se publica la recomendación, que ya tiene el carácter de documento estable. A partir de ese momento, el W3C sí que apoya y fomenta su uso y difusión.
Posteriormente, una recomendación puede ser actualizada para corregir errores y clarificar algunos aspectos que puedan ser confusos o ambiguos. Pero esto no se convierte en una nueva recomendación, sino que es una nueva edición de la recomendación ya existente. Por ejemplo, XML 1.0 ya va por su quinta edición (26 de noviembre de 2008), aunque la primera edición fue publicada el 10 de febrero de 1998.

Evidentemente, algunas especificaciones son más complejas que otras, y pueden requerir más tiempo, más pruebas y la participación de más gente. Por ejemplo, WCAG 2.0 fue publicada el 11 de diciembre de 2008. Pero podemos encontrar un borrador de trabajo del 25 de enero de 2001.

Y algunas no llegan nunca a ser recomendación. Por ejemplo, el W3C estuvo trabajando en XHTML 2.0 más de ocho años (existe un borrador de trabajo del 5 de agosto de 2002) para nada, ya que su desarrollo fue cerrado el 17 de diciembre de 2010 en favor de HTML5.

Por tanto, como podemos intuir por todo lo anterior, crear una recomendación dentro del W3C no es el resultado de "cinco amiguetes que se reúnen dos tardes y escriben un documento". Es el resultado de un largo y laborioso proceso.

2 comentarios:

J Benatar dijo...

Muy bueno este artículo, muy interesante y ameno :-)

Felix Zapata dijo...

Está claro que el proceso de creación de un estándar no puede ser algo de "5 minutos" pero a veces el W3C creo que es demasiado burocrático y el día a día en ocasiones supera a sus plazos.

Recuerdo ya en el 2005 cuando se preguntaba siempre cuándo iban a salir ya oficiales las WCAG 2.0 porque ya se veía que las 1.0 estaban obsoletas pero aún hubo que pasar varios años más.

El caso que comentas de XHTML es de nota; 8 años para que luego al final hubiese una "reunion" paralela para la creación de un estandar de marcado nuevo y real acorde con el día a día de los sitios webs (HTML5).

Es decir, preferiría algún término medio en cuanto a plazos y publicaciones...