Chromium snad není nutné dlouze představovat. Jde o open source projekt pod patronátem společnosti Google, která na jeho základech staví jeden ze svých nejdůležitějších produktů pro současnost i budoucnost: webový prohlížeč Google Chrome. Chromium ovšem představuje základy pro mnohé další, byť svým rozšířením okrajové prohlížeče.
Projekt Chromium přinesl řadu vlastních technologií, avšak až dosud byl pevně spjat s jiným otevřeným projektem – webovým vykreslováním jádra WebKit. Nyní ovšem bylo oznámeno, že Chromium dostane vlastní vykreslovací jádro jménem Blink, na které tedy časem přejde i Google Chrome.
Na úvod je třeba říci, že Blink nebude zcela novým jádrem napsaným na zelené louce. Jeho základem bude WebKit, ovšem časem se od něj má Blink více a více vzdalovat. Google ujišťuje, že jeho snahou není vytvoření vlastního jádra, které by jeho prohlížeči poskytlo konkurenční výhodu na úkor webové interoperability.
Proč Chromium a Chrome přichází s vlastním jádrem?
Google prý nehodlá díky zabudování proprietárních technologií z browseru Google Chrome udělat „jediný správný prohlížeč“, jak se dříve nelichotivě a ironicky přezdívalo Internet Exploreru. Blink jako součást projektu Chromium bude open source, což je podle Googlu jasná odpověď na polemiky, že se snaží připravit půdu pro diktát webových technologií.
To ovšem samotné otevření kódu negarantuje. K technologiím sice bude mít přístup prakticky kdokoliv (nebudou proprietární), ale Google vzhledem ke své významné tržní síle jak na poli provozovatele webových služeb a aplikací, tak v oblasti webových prohlížečů, může bez ostychu ovlivňovat, které technologie mají naději se prosadit a které naopak ne.
Navíc nikde není záruka, že někdy v budoucnu Google Chrome nezačne používat vlastní proprietární technologie, které půjdou mimo projekt Chromium. To je zase ale trochu jiné téma. Vraťme se k tomu, proč Chromium nyní přechází na vlastní jádro po řadě let existence projektu a úzkého propojení s projektem WebKit.
Google vysvětluje, že když pokládal základy projektu Chromium a začínal se svým vlastním prohlížečem, bylo praktičtější přijmout některé z open source vykreslovacích jader. Google vcelku pochopitelně nechtěl příchod nového prohlížeče na scénu komplikovat ještě přípravou nového jádra. Volba tedy padla na WebKit. Prý kvůli jeho výkonnostnímu potenciálu.
Jenže teď už je prý WebKit přítěží pro další rozvoj. Adam Barth, softwarový inženýr projektu Chromium, vysvětluje, že Chromium a od něj odvozené prohlížeče včetně „vlajkového“ prohlížeče Google Chrome, využívají jinou multi-procesovou architekturu, než prohlížeče stojící mimo projekt Chromium, ovšem rovněž stavějící na otevřeném jádru WebKit.
To prý čím dál tím více (s podporou nových architektur) komplikuje rozvoj. Chromium tedy potřebuje vlastní jádro, které se mu přizpůsobí a jeho rozvoj půjde v určitých ohledech jiným směrem než otevřený WebKit určený pro prohlížeče, které stojí mimo projekt Chromium. Mezi ně patří dnes Safari, Maxthon, ale i mnohé další, byť svým tržním postavením nevýznamné.
Jaké změny Blink přinese? Co kompatibilita?
Blink se v začátcích nemá zase tak moc lišit od enginu WebKit, takže výměna jádra by měla být co nejméně bolestivá. To, co prý Chromium a Google Chrome umí nyní, bude umět i po přechodu na Blink. Žádné masivní problémy s kompatibilitou by tak ze dne na den přijít neměly. Google věří, že možné počáteční problémy, které pochopitelně zcela vyloučit nelze, vynahradí budoucí benefity.
První prioritou je zlepšit výkon, kompatibilitu a stabilitu na všech platformách a architekturách, s jejichž podporou Chromium a potažmo Google Chrome počítá. Své by k tomu mělo říci smazání prý zbytečných 4,5 milionu řádků zdrojového kódu, které pro Chromium (a Google Chrome) nemají v jádru WebKit smysl, ale jsou jen potenciálním zdrojem problémů. Blink je tedy nezdědí.
Blink má umožnit výrazné navýšení výkonu pro JavaScript a DOM, lépe využít potenciálu moderních procesorů s více fyzickými i virtuálními jádry, rozšířit možnosti uplatnění pro sandbox, izolovat obsah načítaný přes iframe v samostatném procesu či zlepšit podporu plug-inů, než se bude možné od jejich využívání s dalším rozvojem webových technologií zcela oprostit.
Právě podpora webových technologií a standardů v čele s HTML 5 a CSS 3 je prý dalším důvodem ke změně. Například podpora CSS 3 by se měla zlepšit tím, že Blink zruší drtivou většinu prefixů a nebude zavádět žádné nové pro Chromium (a Google Chrome). Novinky z CSS 3 tedy bude možné do stylů zadávat v obecném formátu, na který dříve či později přejdou všechny moderní prohlížeče.
Nežádoucí fragmentace nebo prospěšná konkurence?
Google a komunita kolem projektu Chromium na veřejnosti ventilují přesvědčení, že Blink bude prospěšnou konkurencí vůči jádrům WebKit, Gecko či Trident. Společně připomínají, že novou epochu vývoje webových prohlížečů nastartovala právě silná konkurence na trhu. Totéž se prý dá očekávat od různých vykreslovacích jader.
Možné neblahé dopady fragmentace má omezit otevřenost jádra a slibovaný důraz na respektování webových standardů a interoperabilitu jako takovou. Z řad webových vývojářů pak zaznívá, že se v praxi zase tak moc nemění, protože již dnes je potřeba ladit stránky a aplikace zvlášť např. pro Google Chrome a Safari od Applu, přestože oba prohlížeče používají WebKit.
Google pak argumentuje značnou kompatibilitou mezi otevřenými jádry WebKit a Gecko, přestože společného nemají prakticky nic. Blink ovšem bude mít návaznost na WebKit, takže vzhledem k tomu by měl minimálně v úvodu nabídnout daleko větší úroveň kompatibility. Postupem času se obě jádra budou od sebe vzdalovat, ovšem prý spíše po technické stránce.
Naopak po stránce vykreslování webových stránek a běhu webových aplikací Google očekává postupné sbližování jednotlivých jader díky implementaci webových standardů, na kterou má tvořit tlak právě existující konkurence na trhu nejen na úrovni webových prohlížečů, ale i různých jejich otevřených vykreslovacích jader. Teoreticky to vcelku dává smysl, ale jak tomu skutečně bude v praxi, ukáže až právě ta praxe samotná.
Každopádně Blink oslabuje pozici, kterou dnes WebKit má. Že začíná být již příliš silná, na to část odborné i širší veřejnosti poukazovala relativně nedávno, v souvislosti s oznámením, že společnost Opera Software po téměř dvou desítkách let zahazuje vlastní jádro Presto a přechází na WebKit.
WebKit a jeho současná pozice na trhu
Jádro WebKit vzešlo z KHTML. Jeho historie se začala psát v roce 2001, ovšem větší pozornosti veřejnosti se mu dostalo v roce 2003, kdy Steve Jobs oznámil, že Apple pro svůj operační systém Mac OS X (v pozdějších verzích přejmenovaný na OS X) připravuje vlastní webový prohlížeč Safari, který nahradí Internet Explorer od Microsoftu v základní výbavě Mac OS X.
Safari je dnes coby předinstalovaný systémový prohlížeč nejrozšířenějším prohlížečem na platformě OS X. V letech 2007 až 2012 byla též dostupná i verze pro konkurenční platformu MS Windows, ovšem na té se Safari vůbec neprosadilo, takže Apple za dodržení tradičního tajnůstkaření vývoj svého prohlížeče a jeho podporu pro konkurenční MS Windows loni ukončil.
Nicméně prohlížeč Safari s jádrem WebKit hrají významnou roli na poli mobilních zařízení díky své hluboké integraci do systému iOS od Applu, kde se Safari plně nedá nahradit jiným browserem. Systém iOS je dnes u nově prodávaných chytrý mobilů druhým nejrozšířenějším systémem. Zároveň je systémem přítomným ve více než polovině nyní prodávaných tabletů.
Uživatelé iOS přitom téměř nepoužívají jiný prohlížeč, než předinstalované Safari. WebKit na mobilní scéně táhne vzhůru také Google díky původnímu bezejmennému prohlížeči v systému Android i díky mobilní verzi prohlížeče Google Chrome pro novější verze systému Android a konkurenční platformu iOS. Zpět však k osobním počítačům.
Na majoritní platformě MS Windows dosud prapor jádra WebKit drží především Google Chrome. Není však zdaleka jediným dostupným prohlížečem pro MS Windows, který sází na WebKit. V roce 2010 si jej jako jádro pro svůj browser vybrali tvůrci prohlížeče Maxthon, který je dnes pátým nejrozšířenějším browserem na platformě MS Windows.
Ze známějších a důležitějších hráčů se k projektu WebKit naposledy letos přihlásila společnost Opera Software, která se rozhodla nahradit jím vlastní jádro Presto ve svých prohlížečích pro osobní počítače i mobilní zařízení. Reálnou konkurencí pro WebKit tak zůstal Internet Explorer se svým vlastním proprietárním jádrem Trident a samozřejmě Mozilla Firefox s otevřeným jádrem Gecko.
Tržní podíl Internet Exploreru od Microsoftu již několik let klesá a vstup do nových zařízení mu zatím komplikuje malý zájem o nové platformy Microsoftu (Windows 8, Windows RT, Windows Phone) s nimiž je úzce provázán. Microsoft zatím nejeví zájem přijít se svým prohlížečem na konkurenční platformy, raději by je porazil těmi vlastními, k čemuž má ovšem při současné situaci na trhu daleko.
Prohlížeč Mozilla Firefox na osobních počítačích z hlediska vývoje tržního podílu v posledních letech minimálně stagnuje. De facto všechny nadějné prohlížeče využívající jeho otevřené jádro Gecko nenaplnily velká očekávání a skončily v propadlišti dějin (zejm. Flock, Camino nebo K-Meleon) nebo přežívají pro úzkou komunitu uživatelů (např. SeaMonkey).
Mobilní Firefox pro Android sice zaznamenává zajímavý vývoj, ovšem musí čelit faktu, že ani uživatelé systému Android nejeví žádný větší zájem o alternativní prohlížeče. WebKit je tedy velkou dravou rybou jak na poli osobních počítačů, tak na poli chytré mobilní elektroniky. Blink by mu měl být zejména díky spojení prohlížečem Google Chrome více než zdatným soupeřem.
Přejde Opera na Blink nebo dostane Chromium košem?
Jak již v předešlých odstavcích bylo několikrát uvedeno, nedávno společnost Opera Software oznámila rozhodnutí skončit s téměř dvě desetiletí vyvíjeným vlastním jádrem Presto a ve svých prohlížečích pro osobní počítače i mobilní zařízení jej nahradit jádrem WebKit, ovšem zároveň chtěla čerpat i z projektu Chromium.
Nakolik jí tedy nabouralo plány, že Chromium mění WebKit za od něj odvozený Blink? Vzdá se čerpání z projektu Chromium a zůstane u jádra WebKit, na kterém běží již veřejně testovaná nová mobilní Opera pro Android? Nebo se spíše přikloní k těžbě z projektu Chromium a adoptuje tedy i jeho nové jádro Blink? Poměrně logicky platí druhá možnost.
Jestli chce Opera nové progresivní technologie a zároveň minimalizovat vlastní vývojářské úsilí (ostatně řada programátorů opouští její řady v rámci snižování stavů), tak Chromium + Blink je rozhodně atraktivnější volbou než samotný WebKit. Přestože Chromium je prezentováno jako komunitní projekt, určující je síla Googlu v pozadí. Nenalhávejme si opak.
Pro norskou firmu změna jádra není v tuto chvíli zřejmě vážnou komplikací. Blink a WebKit v počátcích budou velmi si podobná jádra, takže vzhledem ke stavu přechodu na nové jádro není zase takový problém se plně orientovat na projekt Chromium, kde je WebKit nahrazován právě od něj odvozeným novým jádrem Blink.
Nová mobilní Opera je teprve ve svých začátcích a datum uvedení desktopové verze prohlížeče založené na nových technologiích dosud není známo, takže Opera Software má velmi široký manévrovací prostor připravit se na to, že její jádro Presto nenahradí WebKit, nýbrž Blink. Otázkou je, jestli je to vůbec nějaké překvapení pro norskou firmu.
Objevila se teorie, že tvůrci Opery o plánech s projektem Chromium věděli, což měl být právě impuls pro odhození vlastní technologie. Leckomu se totiž zdá jako až příliš velká shoda náhod, že po nějakých osmnácti letech Opera Software končí se svým jádrem Presto a zrovna, když přechází na Chromium, tak tento projekt po přibližně čtyřech a půl letech své existence mění jádro WebKit za Blink.
Pravda je, že společnost Opera Software původně avizovala přechod na Chromium a WebKit. Tím ale mohla jen kalit vodu. Připomeňme si, že v úvodu letošního roku firma ve svých tiskových materiálech hovořila jen o výrazném technologickém posunu. Jména projektů Chromium a WebKit padla až po řadě mediálních spekulací.
Osobně této poněkud spiklenecké teorii nevěřím. Špatné načasování se zkrátka tu a tam přihodí. Jak to bylo ve skutečnosti, je ovšem vcelku irelevantní. Opera původně avizovaný WebKit využívat nebude a v rámci svého zapojení do projektu Chromium vcelku logicky přejde na jeho nové vlastní jádro Blink.
I Mozilla chystá nové jádro, podporuje ji Samsung
Nejen Google, resp. komunita kolem projektu Chromium, chystá nové jádro. V Mozilla Research již delší dobu pracují na zcela novém jádře nesoucím označením Servo. Jde o experimentální projekt, který prozatím není prezentován jako nástupce jádra Gecko, které Mozilla vyvíjí nejen pro svůj webový prohlížeč Firefox, ale třeba i pro svůj ambiciózní operační systém Firefox OS pro chytré mobily.
Nicméně nikde není psáno, že projekt Servo není počátkem koncem jádra Gecko. V Mozilla Research chtějí zkusit poskládat nové jádro, které si neponese žádnou historickou zátěž, takže bude moci nabídnout maximální vytěžení potenciálu z dnešního hardwaru. Řeč je například o efektivním využití vícejádrových procesorů nebo získání ještě většího výkonu z grafické karty při hardwarové akceleraci.
Zároveň výzkumníci z Mozilla Research hledají nové možnosti zabezpečení prohlížeče. Nyní lze těžko soudit, kam vlastně projekt spěje. Jestli bude mít nějaký reálný přínos jako celek, zužitkují se některé poznatky anebo vše nakonec vyzní do ztracena. Dovoluji si tipnout, že poslední varianta je nejméně pravděpodobná.
Důležitou zprávou posledních dnů totiž je, že Mozilla získala pro svůj experimentální projekt silného partnera. Je jím Samsung, který investuje do využití jádra Servo na ARM architektuře pod systémem Android, což u největšího výrobce mobilů a jednoho z největších výrobců tabletů nepřekvapí. Samsung skutečně může mít reálný zájem o špičkový prohlížeč pro Android nezávislý na Googlu.
Servo je sice zatím ryze experimentální projekt psaný navíc v experimentálním programovacím jazyce Rust (opět dílo Mozilla Research), ale i dění v Mozille a zájem Samsungu ukazují, že stávající vykreslovací jádra tu s námi velmi pravděpodobně nebudou věčně i přes nesčetné aktualizace, kterými během let uzavřeného i otevřeného vývoje prošla. Rozdíl je zatím jen v tom, že Blink je realitou pro nejbližší období.