Přejít k navigační liště

Zdroják » JavaScript » David Storey: Věřím webovým standardům

David Storey: Věřím webovým standardům

Vyzpovídali jsme Davida Storey z Opera Software na jeho návštěvě v Praze. David nám prozradil něco o své funkci Chief Web Opener, popsal, jaké to bylo, když pracoval CERNu a proč se rozhodl pracovat pro Operu. Řekl nám, co se mu líbí na CSS3 a jak to v tuto chvíli vypadá s rychlostí nového javascriptového enginu Opery.

You can switch to English version.

Tvoje pracovní pozice u Opera Software se jmenuje Chief Web Opener. Prozradíš nám, co ten zvláštní název znamená?

Máme v Opeře oddělení, které se jmenuje Open the Web. V něm se snažíme, aby webové stránky fungovaly v prohlížečích ctících standardy, včetně Opery. Zabýváme se weby od těch skutečně velkých po velmi malé, a radíme jejich tvůrcům, jak je zlepšit. Pokud používají něco nestandardního, např. kód fungující pouze v IE, upozorníme je, že to dělají špatně a jak to můžou zlepšit. Já zastávám vedoucí funkci, proto ten název Chief Web Opener.

Kolik lidí v Open the Web pracuje?

Máme asi 3 zaměstnance na plný úvazek, ale dohromady s Developer Relations je nás 7, a v tomto roce plánujeme nabrat asi 4–5 dalších lidí.

Před několika lety jsem se na něčem podobném také podílel, jmenovalo se to technická evangelizace a bylo to pro Mozillu. Vzpomínám si, že průměrně ze tří nahlášených webů byl během 1–2 let jeden opraven. Jak úspěšný je Open the Web?

To hodně záleží web od webu a s kým se dokážeme zkontaktovat. Když můžeme oslovit přímo vývojáře, jsme obvykle úspěšní. U opravdu velkých webů dokážeme snadno nalézt ty správné lidi přes síť kontaktů. U menších webů hodně záleží, zda dokážeme najít ten správný kontakt.

A v případě zkostnatělých organizací jako jsou banky nebo pojišťovací společnosti zatím nejsme úspěšní. Je velmi obtížné je přesvědčit. Říkají: Používejte IE5 nebo Netscape 4.

Můžeš jmenovat nějaký známý web, který právě teď řešíte?

Nedávno jsme se zabývali Yahoo! Mailem, jedním z největších webů, který pravděpodobně v Opeře nefungoval zcela správně. Za posledních 6 měsíců jsme ze zabývali Google Docs; nedávno umožnili Opeře pracovat s dokumenty a tabulkami. V posledních měsících jsme se řešili i CNN a New York Times.

Vzpomeneš si na nějaký český web, který jste řešili?

Webmail u Centrum.cz.

A uspěli jste?

Myslím, že Centrum nás kontaktovalo jako první. Pokud si dobře pamatuji, byl tam problém s Rich Text editací. A myslím, že to dopadlo dobře.

David Storey

Jaká je vaše strategie? Nezbývá vám než čekat, až bude web opraven, nebo můžete změnit chování vašeho prohlížeče?

Pokud se jedná o chybu prohlížeče, tak ji naši vývojáři opraví. Pokud se jedná o problém v „šedé zóně“, např. zpracování chybného kódu, kdy web obsahuje chybný kód a prohlížeč jej nedokáže dobře zpracovat, upravíme prohlížeč a zároveň požádáme, zda může být chybný kód na webu opraven, jedná se např. o špatně vnořené tabulky.

Opera také obsahuje soubor browser.js, což je náš záplatovací mechanismus. Je napsán v JavaScriptu a prochází DOM stránky. Můžeme tak upravit její DOM. Pokud např. obsahuje chybu v JavaScriptu, ve kterém je větvení pokud se jedná o Operu, udělej tohle, jinak proveď něco jiného a větev Opery způsobuje problém, můžeme ten kód odstranit. Stránka tak bude fungovat. Tyto záplaty distribuujeme jednou týdně, když si prohlížeč ověřuje, zda je k dispozici nová verze.

Je obsažen v běžné instalaci?

Ano. Jedná se o jeden digitálně podepsaný soubor, takže jej nikdo nemůže změnit. Pokud by jej upravil, nepoužije se.

Aktualizace záplat provádíme jednou týdně a jakmile je příslušná stránka upravena, její záplatu odstraníme. Jedná se zejména o krátkodobé záplaty pro významné weby.

Jak vám mohou uživatelé takové problémy hlásit?

Máme systém pro správu chyb (bug tracking system), jedná se o uzavřený systém, ale máme také reportovací nástroj na adrese bugs.opera.com/wi­zard, který vám dovolí zadat problém. Ale jelikož je systém uzavřený, uživatelé nemůžou vidět, čím se právě zabýváme.

Poslechněte si Davida Storey osobně

Dnes v pondělí (2.3.) bude mít David přednášku v rámci setkání PROWAS od 18:00h v restauraci Dobrý den nedaleko stanice metra Flora. Účast je zdarma.

Slyšel jsem od několika uživatelů, kteří by hlásili chyby do Opery, ale nemají tento uzavřený systém rádi, protože v něm nevidí své nahlášené chyby a nejsou upozorněni, když je problém vyřešen. Můžeme čekat nějaké zlepšení?

K tomu se nemohu vyjádřit. Osobně bych rád, aby se systém otevřel. Ale jsou tu problémy, protože systém byl odjakživa uzavřený a nechceme, aby najednou kdokoliv mohl vidět naše poznámky, které se v něm nachází. Máme také B2B obchody se společnostmi jako je Nintendo nebo Vodafone a nemáme povoleno zveřejnění jejich poznámek.

A co kdyby uživatel mohl vidět pouze problémy, které sám nahlásil a byl upozorněn, když budou vyřešeny?

Za sebe si myslím, že by to bylo dobré.

Opera 10 čelí problému, kdy ji některé stránky detekují jako Operu 1.0. Vymysleli jste, jak tento problém vyřešit?

Jedná se o poměrně obtížný problém, protože jsme první prohlížeč, který dosáhl verze 10, pokud nepočítáme W3C prohlížeč Amaya. Jednou z možností je použít záplatovací mechanismus, který jsem zmínil výše. Máme také databázi podvrhovaných identit, pomocí kterých můžeme měnit identifikaci prohlížeče. Pokud tento problém bude existovat i v době vydání produktu, můžeme přidat další identitu např. 9.9, 9.7 nebo podobnou verzi.

Před několika lety jsi pracoval v CERNu. To bylo přibližně 10 let od doby, kdy v něm celý Web vznikl. Je stále poznat, že se jedná o místo, kde to vše kdysi začalo?

Je to stále velmi zřetelné. Pracoval jsem u jednoho ze spolutvůrců Webu Roberta Cailliau. Často hovořil o vzniku Webu a o tom, jakou při tom sehrál roli. Bylo také pravidlem, že téměř každá aplikace, kterou jsme vytvořili, byla webovou aplikací. Protože lidé v CERNu používají cokoliv od Solarisu po BSD, Mac nebo Windows, takže i tenkrát byly všechny námi vytvořené aplikace webové. Vše se točilo okolo Webu. Náš slogan byl Where the Web was born a mohli jste jej vidět na mnoha místech.

Where the Web was born

Where the Web was born. Převzato z Wikipedie.

Poté jsi začal pracovat pro Operu. Proč?

V CERNu jsem byl na stáži. Tehdy bylo možné ve Švýcarsku pracovat jen 1 rok. Vrátil sem se zpět na univerzitu, kterou jsem později dokončil. Pak jsem se chtěl vrátit zpět do Evropy a rozhlížel jsem se po vhodném zaměstnání. Opera je v Norsku a hledala zaměstnance na pozici, která se jmenovala Web Opener. Mělo se jednat o přednášení a propagaci webových standardů a jejich evangelizaci. Já webovým standardům opravdu věřím, tak jsem o to místo požádal a naštěstí jsem ho dostal.

Jsi jedním z autorům webu CSS3.info. Jedná se o tvou soukromou aktivitu, nebo to spadá do tvé pracovní činnosti?

Je to spíš soukromá aktivita. Věnuji se mu, když mám čas, ale Opera mě podporuje. Pokud bych se mu potřeboval věnovat v pracovní době, nebyl by to problém. Když jsem se mu začal věnovat, nebylo to nijak spojené s Operou. Pozvali mě, ať se k nim přidám, protože jsem byl značně aktivní v propagaci CSS3. Je to také dobré místo, kde můžu psát o věcech, které nesouvisí s Operou. Kdybych o nich napsal na svůj blog, všichni by automaticky předpokládali, že se objeví v další verzi Opery, což pochopitelně nemusí být vždy pravda.

Náhled webu CSS3.info

Co z CSS3 se ti nejvíc líbí?

Osobně asi nejspíš modul backgrounds and borders, webové fonty se mi rovněž hodně líbí, ale tam je problém s jejich licencováním. Také bych rád, aby byl hotov layout modul. Plovoucí a absolutně pozicované prvky nejsou ideální řešení. Pracuje se na novém modulu, ale jeho dokončení je zatím daleko. Myslím, že právě tohle potřebujeme nejvíc.

Slyšel jsem, že vývoj CSS3 je proto tak pomalý, jelikož CSS3 v zásadě není moc potřeba, protože většina problémů je řešitelných pomocí dnešní technologie. Souhlasíš s tím?

Ne tak docela. Myslím, že CSS3 se vyvíjí pomalu, protože se pracovní skupina soustředí na dokončení CSS2.1. Vytvoření rozsáhlé specifikace interoperabilní minimálně ve 4 hlavních prohlížečích a zajištění, aby byly ošetřeny chybové příklady a vytvořeny všechny testy, to je spousta práce, která CSS3 brzdí. Poslední dobou se situace zlepšuje. Modul backgrounds and borders je už velmi stabilní, selektory jsou hotovy, color modul je také hotov.

Obsahují řadu užitečných věcí. Selektory jsou užitečné samy o sobě a např. selektor n-th() nebo pozadí tvořená více obrázky, to nelze vyřešit bez zesložitění značkovacího kódu. Uživatelé pak musí stahovat víc dat, sémantika se ztrácí a skriptování s DOM se stává bolestnějším, když máte více značek. Myslím si, že CSS3 obsahuje velmi užitečné věcí, ale vytvořit specifikaci prostě zabere nějaký čas.

Jsi zapojen v nějaké pracovní skupině u W3C?

W3C

Ano, jsem zapojen v Mobile Web Best Practices Working Group. Nesouhlasím vždy se vším, protože „doporučené praktiky“ (best practices) jsou postaveny na společném základu, který je opravdu malý. Není např. doporučeno používat PNG obrázky apod. Ale myslím, že s evolucí mobilního webu se doporučení stanou víc relevantní. Potřebujeme celou řadu „doporučených praktik“, protože zatímco u běžného webu jsou všechny známé (např. elastický layout nebo text, který lze zvětšovat), omezení mobilního webu vývojářům příliš známá nejsou.

Jsem také zapojen do skupiny SVG Interest Group. Připojil jsem se nedávno, jedná se hlavně o propagaci SVG a získání zpětné vazby od vývojářů.

Najdeme stále řadu webů, které na mobilních zařízeních nefungují korektně nebo se sníženým uživatelským zážitkem. Měli by se webdesigneři naučit jak vytvářet mobilní verze webů nebo mají prostě jen počkat, až se zlepší prohlížeče?

Opera věří konceptu nazvaném One Web, který říká, že tu je jen jedna verze webu. Nemusíte dělat zvláštní verzi pro mobilní zařízení, zvláštní verzi pro televizi nebo pro ledničku apod.

Tvoříme naše prohlížeče tak, aby mohly přistoupit k plné verzi stránek. Jedná se o způsob, kterým by podle mě lidé měli jít, ale existují místa, kde můžete optimalizovat. Můžete např. pomocí media queries upravit vaše CSS, aby se přizpůsobily velikosti obrazovky a umístit důležité informace na mobilním zařízení nahoru. Můžete také ve vašem mobilním stylopisu použít optimalizované obrázky.

Pokud jste společnost jako je Google a máte velmi komplikovanou aplikaci jako jsou Google Mapy, pak může mít příprava jednodušší verze s mobilním kontextem smysl. Když je uživatel mobilní, mohou ho zajímat jiné věci, než když sedí u stolu. Pokud si vezmete web zabývající se filmy, tak pokud jste mobilní, může vás spíš zajímat, co dávají kina ve vašem okolí, než plné recenze filmů.

V posledních letech se objevuje závod v rychlosti JavaScriptu mezi některými prohlížeči. Opera Software pracuje na novém javascriptovém enginu Carakan. Myslíš, že můžete ostatní prohlížeče předehnat?

Ano, myslím. Pracují na tom někteří naši nejlepší vývojáři. Již v tuto chvíli je asi 2× – 3× rychlejší než předchozí engine a to ještě nezahrnuje kompilaci JavaScriptu do nativního kódu. Je stále ještě ve vývoji. Některé z testů ze SunSpideru běží 50× rychleji než u předchozího enginu.

Věřím, že jakmile přidáme kompilaci do nativního kódu, budeme určitě na stejné pozici jako je Tracemonkey Firefoxu nebo Nitro WebKitu, ale vůbec by mě nepřekvapilo, pokud bychom byli rychlejší. Opera kromě posledního roku a půl měla vždy nejrychlejší javascriptový engine. I bez nativní kompilace jsou optimalizace znát a jakmile přidáme tuto novou technologii, budeme rychlejší.

Ovšem JavaScript zabírá jen asi 5 až 10 % načítacího času stránky. Je tu také layout, překreslování (reflow), sestavování DOM stromu v paměti nebo změny v DOMu. Podívejte se na většinu javascriptového kódu, většina metod, to je je DOM nikoliv čistý JavaScript. Takový Firefox například má velmi pomalý DOM engine; má rychlý JavaScript, ale pomalý DOM.

Dragonfly

Jsi také produkt manažerem pro Dragonfly. Na tomto poli máte tvrdou konkurenci, např. Firebug. Jak je chcete předehnat? Máš nějaký plán?

Ano, jedná se o dlouhodobý plán, protože Firebug je postavený na API, které Mozilla měla pro projekty jako je Venkman. Jsou velmi stabilní a Firebug je vyvíjen již řadu let. My jsme začali v posledních 2 letech. Stále ještě vytváříme infrastrukturu uvnitř prohlížeče, aby Opera poskytovala Dragonfly všechny informace, které potřebuje.

Stavíme na velmi moderních základech. Máme remote debugging. Můžu ladit svůj mobilní telefon na své televizi ze svého desktopu. Nepotřebuji emulátor, uvidím přesně, co se na mobilu odehrává a mohu použít svůj desktopový počítač ke změně hodnot a výběru elementů. To je v tuto chvíli jedna z našich výhod.

Také ale vynakládáme zdroje, abychom se ujistili, že se bude jednat o nejlepší vývojářskou platformu. Máme řadu nápadů a stavíme na nich.

Jak se ti líbí v Praze, jedná se o tvou první návštěvu?

Ano, je to moje první návštěva. Právě včera jsem se byl podívat na Staré Město. Praha je velmi staré město, což se mi moc líbí. Je tu spousta architektury – jsem rád, že jsem tady.

Dnes odpoledne tě můžeme potkat na setkání PROWAS (Prague Opera Web Appreciation Society). Na co se můžeme těšit?

Zaměřím se ve své prezentaci na tři hlavní věci: na Open the Web (vysvětlím, o co se jedná), hodnoty otevřených webových standardů a také představím nové webové technologie, které podporujeme jako jsou CSS3, HTML5, SVG a video.

Děkuji za rozhovor a těším se na viděnou.

Otázky za Zdroják kladl Martin Hassman.

Komentáře

Subscribe
Upozornit na
guest
8 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
Jan Jelínek

Díky za super rozhovor, jen škoda, že zítra nemůžu.

Stanislav.Hoferek

moje znalosti ohladne CSS a opery nie su na jednotku, ale tak toto je velmi fajn. dost som sa dozvedel, len tak dalej

Anonymní

Díky za zprostředkování rozhovoru, po delší době opět na Rootu něco s hlavou a patou :)

a8n

>Selektory jsou užitečné sami o sobě

Jirka

Muze mi nekdo sdelit, kde presne se v CERNu nachazi ta pamatna deska?

YF

tomu se mi nechce verit!

Jan Vaněk jr.

Podle vzoru "starý".

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.