WebKit a vize univerzálního vykreslovacího jádra
Martin Hassman se nedávno rozepsal (viz konec odkázaného textu) o tom, že renderovací jádro WebKit, které pohání prohlížeč Safari, by se mohlo stát univerzálním jádrem, které budou používat ve svých aplikacích výrobci multiplatformních aplikací. Dnes obvykle aplikace používaná jádra mění podle platformy, nebo všude používají Gecko (jádro Firefoxu). Podstatnou podmínkou je podle Martina port WebKitu na Linux.
Martin argumentuje především tím, že začlenění jádra WebKit do aplikace je oproti Gecku o mnoho jednodušší. Gecko je moloch, WebKit je malý a elegantní. To je ostatně hlavní důvod, proč Safari není postavené na Gecku.
Na menší zádrhel Martinovy vize upozorňuje Adam Hauner. Všímá si odlišného vykreslování fontů na Macu a na Windows. WebKit se i ve verzi pro Windows drží vykreslování à la Mac, což může uživatelům vadit.
Myslím, že existuje minimálně jeden větší zádrhel – fakt, že Safari i na Windows v obsahu stránky používá ovládací prvky vypadající jako ty na Macu. Chápu, že pokud vývojáři zachovali celkové rozhraní aplikace, zachovali i tyto ovládací prvky – je to konzistentní a též implementačně jednodušší. Ale ve chvíli, kdy budou chtít vývojáři aplikací WebKit vložit do svých nativně vypadajících programů, výsledek nebude konzistentní a pro uživatele dobře použitelný.
Trochu jsem pátral, zda WebKit aspoň potenciálně nativní ovládací prvky ve stránce vykreslovat umí. Ve zdrojácích WebKitu jistý náznak implementace této funkcionality je, ale do použitelné podoby mu ještě mnoho chybí. Na IRC kanálu vývojářů WebKitu mi bylo řečeno, že vývojáři rádi uvidí patche s implementací :-) Apple samotný tedy nejspíš doplnění nativního vykreslování neplánuje.
Byť se mi vize jednoduchého a kvalitního vykreslovacího jádra použitelného na všech běžných platformách líbí, myslím, že na její naplnění si rozhodně ještě počkáme. WebKit je zatím multiplatformní spíš jen formálně, než doopravdy. A dokud Apple neustoupí ze svého způsobu portování stylem "vše vypadá a chová se jako na Macu", zůstane to tak.