sábado, 9 de mayo de 2009

Estándares web

Mis inicios como desarrollador web fueron bastante penosos: terminaba mis estudios de ingeniería en la universidad, vivía entre casa de mis padres y el piso compartido de estudiantes de mi novia y sus compañeras, y curraba en una "empresa" haciendo lo necesario; Photoshop, 3dStudio, Premier, AutoCad...

La "empresa" se llamaba Valenciana de Servicios Completos. Os podéis imaginar que hacíamos prácticamente cualquier cosa que se pudiera vender (no penséis mal, no tan completos...).

Así que cuando mi jefe me dijo: "Ahora vas a hacer webs. Aquí tienes un libro (era algo así como html para torpes) y aquí el programa para hacerlas (FrontPage). Al tajo!", pues me puse a ello.

Por cómo me habían modelado el cerebro en la universidad, cabezón y cuadriculado, la forma de hacer webs de la herramienta me venía al pelo: tablas para la maquetación, tablas para texto, tablas para imágenes, para espacios en blanco, para contener botones y menús, para contener tablas que a su vez contenían más tablas...

Usando esa táctica constructiva desarrollé muchísimas webs durante muchos años, y cobraba por ello.

A lo largo de esos años intenté formarme continuamente; hice cursos de Flash, de DreamWeaver, de ASP, y básicamente me autoformé leyendo sin cesar libros y páginas y más páginas en internet sobre el tema web (aún no existían los blogs!!!).

Al principio las webs eran poco más que texto e imágenes gif, luego la cosa se fue complicando con javascript, actionscript, frames, sonido, animaciones, vídeo, etc, y a la vez crecían en tamaño y complejidad.

Por entonces ya sentía que algo no andaba bien, ya que trabajar en webs grandes utilizando plantillas de página que se repetían en cada página no me parecía una forma eficiente de realizar el trabajo, y menos de mantenerlo, ya que cada cambio de diseño implicaba recorrer todas y cada una de las páginas para aplicarlo. Las plantillas no eran dinámicas.

El descubrir DreamWeaver MX que podía conectar la web a una base de datos supuso un gran avance en este aspecto, ya que con una página base podía mostrar infinitas páginas tirando de tablas de la bd.

Por aquel entonces empecé a conocer algo que llamaban CSS y básicamente servía para definir tipos de letra, tamaños y colores en un archivo único externo que permitía mantener esos aspectos de forma muy cómoda, pero eso sólo era la cáscara superficial.

El día que descubrí el modelo de cajas y el posicionamiento por CSS cambió mi vida: eso era!. Mi sentimiento inicial había encontrado la respuesta definitiva.

Lo tenía todo:
  • una base de datos para proporcionarme los contenidos
  • una forma de estructurar esos contenidos (html)
  • una forma de mostrarlos (el css)

Ahora sólo faltaba comprender y dominar el css, la herramienta definitiva.

Desde entonces llevo estudiando todos y cada uno de los días css sin parar.

Qué tiene que ver esto con los estándares web? Creo que bastante.

Los estándares web los dictan una comisiones de expertos del World Wide Web Consortium (W3C), y cuando digo expertos quiero decir expertos: son los autores originales de la web y sus alumnos aventajados, la gente que inventó y diseñó los protocolos de comunicaciones de redes, la gente que inventó internet, los lenguajes que organizan la información en la web.

Ellos estudian y dicen (recomiendan) cómo es y cómo será la web, dicen cómo hay que construir los navegadores de internet para que puedan leer e interpretar correctamente la información que se transmite por la red.

Crean estándares que todos deberíamos utilizar y respetar: tú, yo, el vecino, Internet Explorer, Firefox, Opera...

Lo que al principio son recomendaciones, terminan siendo al final estándares que aplican los desarrolladores de software para internet, y si desarrollas webs sería muy interesante conocer esas recomendaciones y aplicarlas para que así tus contenidos web puedan ser mostrados en la mayoría de navegadores web y llegar a más y más gente.

El aplicar estándares al desarrollo web tiene muchas ventajas, la primera es la eficiencia: los estándares recomiendan separar el contenido (html) de la forma (css) y los comportamientos (javascript), y el tener organizadas de esta forma las cosas te permitirá reutilizar mucho código, y así aumentar tu eficiencia.

La segunda ventaja es la facilidad de mantenimiento. Teniendo así separadas las cosas es muy fácil hacer un cambio global en toda la web tocando sólo el css o la estructura html.

La tercera gran ventaja es la compatibilidad con diferentes dispositivos. Usando estándares es mucho más fácil hacer que mi web sea accesible a diferentes navegadores en diferentes sistemas operativos y diferentes dispositivos; pc's, teléfonos móviles, pda's, etc.

La cuarta ventaja yo la consideraría casi como una verdadera obligación por parte de todos y cada uno de nosotros: accesibilidad.

La Constitución Española no lo dice así pero casi: nadie será discriminado por su condición. Así que no hacer una web accesible a todos debería ser casi considerado como un ejercicio de irresponsabilidad democrática.

Hay gente que no puede dominar un ratón, así que porqué no facilitarle la navegación a través del teclado? Hay gente con dificultades visuales, así que porqué no proporcionar contenido alternativo textual que explique las imágenes, las tablas, los menús? Hay gente que no puede ver tu web y usa lectores de voz para ello, así que porqué no facilitarles el acceso a tus contenidos?

Hay gente que navega sin javascript activado, sin poder reproducir flash, sin css. Piensa en los teléfonos móviles.

Decirle a un usuario "Este sitio usa frames y tu navegador no los soporta" o "Este sitio está diseñado para 1024x768" es casi como decirle a alguien "Lo siento, con silla de ruedas no pasas".

Si todo esto no te convence, seguro que hay un usuario ciego al que no le quieres negar la entrada a tu sitio web: Google.

Piensa en cómo "ve" Google tu sitio y te darás cuenta de que es ciego. No quieres hacer tus contenidos accesibles a Google? Seguro que sí. Pues los estándares web nos ayudan a hacer nuestros sitios accesibles a más usuarios.

La última ventaja de usar estándares es que es mucho más fácil aplicar técnicas SEO (optimización para motores de búsqueda) a nuestros sitios con todas las ventajas que ello conlleva.

A pesar de todas estas ventajas habrá gente que quiera argumentar:

  • No tengo medios. Falso! En internet hay miles de sitios ofreciendo recursos formativos gratuitos de la mejor calidad.
  • Es por la política de empresa. Mal vamos si la empresa no quiere llegar a cada vez más usuarios.
  • No lo necesito, sigo haciendo las cosas como siempre y me siguen pagando. No quieres ser más eficiente? No quieres facilitarte el mantenimiento de tus sitios web? No quieres ganar lo mismo en menos tiempo? No quieres ganar más en el mismo tiempo? Afortunadamente ya hay muchas empresas buscando desarrolladores web formados en estándares. Te quieres cerrar las puertas?
  • Los navegadores web no soportan los estándares. Ese tiempo ya pasó. Afortunadamente todos los navegadores soportan cada vez en mayor medida los estándares.

Llegados a este punto espero haber conseguido explicar la importancia de los estándares, su uso y ventajas, y espero haber despertado ese gusanillo en vosotros para que empecéis a aprender y aplicar estándares web en vuestros desarrollos.

Un saludo,

3 comentarios:

  1. Interesantísimo artículo Domk (como todos), aunque en este veo que abogas ciegamente por la utilización de estándares. Bravo!!
    Estoy seguro que esta aportación abrirá los ojos a todos los que te seguimos.
    Un abrazo muy fuerte, amigo.

    ResponderEliminar
  2. Domk :

    Me has dejado con un mar de dudas aunque a tu articulo no le falta denada ,enhorabuena eres un acha , lo que digo que me has dejado un mar de dudas es por mi ignorancia en web y css pero prometo intentar segir tus consejos.....gracias por tus aportaciones

    ResponderEliminar
  3. Domk :
    Adolfo Roque
    Me has dejado con un mar de dudas aunque a tu articulo no le falta denada ,enhorabuena eres un acha , lo que digo que me has dejado un mar de dudas es por mi ignorancia en web y css pero prometo intentar segir tus consejos.....gracias por tus aportaciones

    ResponderEliminar