čtvrtek 25. září 2008

Proměnné v CSS - lesk a bída standardizace

Řada webdesignerů se těší na brzké zavedení proměnných do CSS. Návrh specifikace vznikl velice rychle, WebKit je již implementoval a ačkoliv někteří s jejich zavedením nesouhlasí, vše se zdálo být na rychlé a bezproblémové cestě (což je ve světě webových standardů dosti neobvyklé!).

K jejich rychlému zavedení je třeba, aby byla včas specifikace prohlášena za stabilní, a aby prohlížeče CSS promněnné implementovaly. Obojí spolu souvisí. Čím dříve bude specifikace hotová, tím dříve se může objevit v prohlížečích a naopak čím dříve se objeví v některých prohlížečích, tím dříve může být hotova. (Že by kruh? Ale tak to prostě je.)

Ovšem od úterý probíhá v diskusní skupině CSS WG debata, ze které vyplývá, že nic není tak růžové. Dave Hyatt píše, že implementaci z WebKitu odstranil, protože ačkoliv všichni proměnné v CSS chtějí, nedaří se dohodnout, jak má jejich implementace vypadat:
It's off pending a decision of any kind. :) The feature works well, but it seems everyone has his/her own idea of how this feature should work, and nobody has the same opinion. I'm basically disgusted at this point and giving up on the whole feature.
A dodává, že nechce, aby se do ostré verze Safari (nebo Google Chrome) dostaly CSS proměnné v podobě, která není dosud jistá, protože tak dlouho očekávaná novinka by se začala rychle používat a WebKit by ji pak musel podporovat navěky, i přestože by oficiální implementace vypada úplně jinak:
The problem with leaving CSS variables turned on in WebKit is that if the feature ships, it is going to be hugely popular. We know this. Whatever we ship, we will have to support on OS X forever, because apps on the platform will scramble to use this feature.
Já sice chápu Davevovu opatrnost, ale myslím si, že přesně takovéhle nejisté oblasti jsou doménou vendor prefixů. Je to vlastně jeden z důvodů, proč se vendor prefixy používají a Dave toho (dle mě zbytečně) odmítá použít.

Na druhou stranu i ostatní prohlížeče obsahují vlastnosti, které sice jsou naprogramované, ale z nějakých důvodů se do veřejných verzí nedostávají (ať již nejsou dost otestované nebo by mohly být kontroverzní, případně se čeká na specifikaci), takže Davův postup není nijak výjimečný.

Pro designery to znamená jediné: CSS proměnných se sice dočkáme, ale možná přijdou ještě o něco později.

Pro zájemce celé vlákno [Css Variables] Variable Declaration Blocks.

Lesk a bída standardizace

Standardizace je pomalý proces. Sejde se vám kupa odborníků, každý má na věc jiný názor, no a teď standardizujte. Hlavně ale nepočítejte s tím, že se během pár měsíců na něčem dohodnete! Dejte si raději rezervu jednoho roku. Minimálně! Jen několik měsíců může trvat výběr správného názvu jednotlivých funkcí!

V HTML5 funguje (ano, skutečně to funguje!) metoda osvíceného diktátora. Všichni se pár týdnů o podobě nové vlastnosti hádají, pak si Ian Hickson sedne, sepíše návrh specifikace a zveřejní ji (tedy de facto rozhodne sám a za sebe, byť na základě návrhů ostatních). Následně se všichni hádají o jeho návrhu a objeví se pár blogpostů, že Hickson celou skupinou manipuluje a nikdo kromě něj nemá na specifikaci vliv, nebo někdo ze skupiny protestně odejde.

Hickson ty nadávky igronuje a podívá se na kritiku návrhu, vybere z ní nejlepší myšlenky a svůj návrh podle nich přepíše. Tohle kolečko se ještě dvakrát zopakuje a ve výsledku tu je specifikace, se kterou naprostá většina zúčastněných souhlasí a je s ní spokojená.

Existuje i další "standardizační" proces, kdy se výrobci jednoho prohlížeče pro něco rozhodnou, rychle to naimplementují a vydají. Druhý prohlížeč to naimplementuje taky (někdy trochu jinak, protože ten první prohlížeč k tomu nedal pořádnou specifikaci) a než se nadějeme, používáme to všichni. Je to sice plné problémů, je to návrh, za který se někde i vyhazuje od zkoušky, ale světe div se, vývojáři jsou rádi, že aspoň něco mají.

Tak a teď si vyberte!

Máme tu několik špatných cest. Jenže tu dobrou cestu nikdo nezná, a tak se vývoj webu často odehrávách na těch cestách, které jsou zrovna v tu chvíli z těch všech špatných ty nejméně špatné.

Vzpomeňte si na to, až zas někde uslyšíte, že Ian Hickson je diktátor, nebo že prohlížeč XY implementoval cosi svého. Netvrdím, že je to správné, ale někdy to může být to nejlepší řešení.

2 komentáře:

  1. Cesta osviceneho diktatora je absolutne nejlepsi, pokud je diktator opravdu osviceny. U Iana to funguje skvele, nastesti, jenze to neni pravidlem (ale spis vyjimkou z nej, mam ten dojem)

    OdpovědětVymazat
  2. U "osvíceného diktátora" je jen jeden problém. Každý si ho totiž představuje trochu jinak a to je ta potíž.

    OdpovědětVymazat

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.