viernes, 17 de febrero de 2012

Cada vez que llamas a una característica propietaria "CSS3", un gatito muere

¿Y quién no sufre cuando un gatito muere?

Hace unos días escribí la entrada El dominio de Google y Apple, peor que con Microsoft, en la que comentaba que se debe evitar utilizar las propiedades de CSS específicas de un vendedor, las que comienzan con un prefijo como -webkit- o -moz-. Acabo de leer el artículo Every Time You Call a Propietary Feature "CSS3", a Kitten Dies (publicado en A List Apart, referencia en el desarrollo web y en defender el uso de los estándares), que incide sobre el mismo tema.

A continuación, la traducción de algunos de los párrafos más interesantes del artículo:
Anuncio de servicio público: Cada vez llamas a una característica propietaria "CSS3", un gatito muere. Cualquier característica -webkit- que no exista en una especificación (ni siquiera en el borrador del editor) no es de CSS3. Sí, normalmente son evangelizadas como tales, pero no son parte de CSS, absolutamente. Esta distinción no es excesivamente puntillosa. Es importante porque anima a ciertos vendedores(*ejem* Apple *ejem*) a eludir el proceso de estandarización, les anima a poner en práctica todo lo que venga con WebKit, y a continuación a evangelizarla a los desarrolladores como la mejor cosa desde el pan en rebanadas. Los juguetes nuevos y relucientes nos deslumbran y empezamos a promocionarlos, contribuiyendo a la cámara de resonancia.
En nuestro afán por utilizar la última novedad, a menudo nos olvidamos de cuánta gente luchó en la última década para que nosotros podamos escribir código sin bifurcaciones y trucos y esperar que sea interoperable. Si has estado en este campo más de unos pocos años, seguramente recordarás que no siempre fue así. La razón por la que ahora tenemos esta comodidad es gracias a los estándares web, duramente ganada en la guerra de los navegadores (Browser Wars). 
[...] 
Las características propietarias que no han pasado a través del proceso de normalización, por lo general sufren de un diseño pobre, aun cuando la idea general sea buena. Por ejemplo, los gradientes en CSS fueron una gran idea, pero -webkit-gradient() era un gran lío susceptible de numerosos errores. Los tipos de letra web son una gran idea, pero requerir el uso de los ficheros .eot no lo fue. El proceso de normalización no sólo ayuda a lograr la interoperabilidad, sino que también ayuda a mejorar el diseño de cada función, debido a la mayor cantidad y diversidad de opiniones. 
Así que, ¿cuáles son esas características infames? En CSS, algunas de las más populares son:
  • -webkit-box-reflect
  • -webkit-text-stroke
  • -webkit-mask
  • -webkit-background-clip
  • -webkit-text-size-adjust
  • -webkit-tap-highlight-color
  • -webkit-text-fill-color
No todas las características que lleven el prefijo del vendedor tienen que ser propietarias. Algunas de ellas son sólo las implementaciones experimentales de características incluidas en los borradores de las especificaciones. 
[...] 
La regla de oro es fácil: evita por completo las características propietarias. No las uses, no las evangelices, y sin duda alguna, no dependas de ellas.
Para finalizar, en el artículo The Future of CSS: Experimental CSS Properties, podemos encontrar una lista de características propietarias QUE NO DEBEMOS UTILIZAR (aunque en ese artículo nos inviten a ello). Además, en la mayoría de los casos, su utilidad es bien escasa.

3 comentarios:

alvaro domingo dijo...

en mi opinión o tragas o te comén las moscas, si un cliente vé que es bonito,ya le puedes decir misa,que al final tragas

Rogelio Lamas dijo...

Estoy con Álvaro, cuando el cliente dice lo quiero así tienes dos opciones: o ñapa a base imágenes (en la mayoría de casos) o uso de css no estandar.

Mi pregunta es: ¿por qué tardan tanto en estandarizar algo que por su simple uso y su demanda ya está "estandarizado" entre los desarrolladores?

Felix Zapata dijo...

Y como respuesta a ese artículo de A List Apart, se escribió este otro Every Time You Make a Good Business Decision, a Puppy Gets Cloned