Připravoval jsem testovací nástroj pro seriál na Zdrojáku a prohlížel si přitom seznam technologií, počítaných do rodiny HTML5 – tedy kromě nových značek v HTML a novinek v CSS i všelijaká API, která slouží k ukládání dat, ke komunikaci se servery, ke geolokaci… Změna ve vnímání prohlížeče z těchto návrhů a (budoucích) standardů přímo čiší. Během patnácti let se prohlížeč proměnil z čehosi, co umělo zobrazit formátovaný text s obrázky a odkázat na jiný text, na velmi výkonný a důležitý program, jeden z nejzásadnějších v dnešních osobních počítačích. Tak důležitý, že stírá hranice mezi systémem a aplikací. Je prohlížeč vůbec ještě pouhá aplikace, nebo je to běhové prostředí pro aplikace, které umí i zobrazovat dokumenty?
HTML5 a technologie s ním spojené posouvají prohlížeče od „zobrazovačů textů“ k „systémům a aplikacím“, a vypadá to jako lineární vývoj, ale dost možná se nám zdá lineární proto, že vnímáme nejsilněji jen bezprostřední minulost a budoucnost. Co když je to spíš spirála, po níž se posouváme do stejného místa, kde jsme už byli, jen o kousek výš?
Historická odbočka
V osmdesátých letech jsme si, nadšení, natahali do domů malé osmibitové počítače. Hráli jsme na nich hry, učili jsme se na nich programovat, a někteří z nás je používali i k relativně smysluplné činnosti: malovali na nich obrázky, psali texty, připravovali výkresy, vedli evidenci čehosi či jimi řídili externí zařízení. Bylo to pomalé a z dnešního pohledu primitivní, ale stačilo nám to.

Když začal výkon počítačů růst, byli jsme zase nadšení z toho, že můžeme psát delší texty, malovat jemnější obrázky lepšími nástroji a vést obsáhlejší evidenci čehosi (a hrát vymakanější hry). Každý megahertz a megabajt navíc znamenal pohodlnější práci (a úžasnější hraní), až jsme se někdy po roce 2000 dostali do okamžiku, kdy výkon počítačů už není to, co by nás omezovalo. Práce dnešního stolního PC či notebooku vypadá tak, že počítač se vším svým obřím výkonem a kapacitou asi tak 97 % času čeká, jestli po něm něco nebudeme chtít. Když po něm něco chceme, tak to bleskurychle udělá, a zase čeká.
A my píšeme texty, zpracováváme fotografie a video, připravujeme výkresy, vedeme evidence čehosi a řídíme externí zařízení, o hrách nemluvě. V podstatě tedy děláme totéž, co jsme dělali v osmdesátých letech (až na to video), jen to máme barevnější, větší, máme lepší nástroje a míň u toho čekáme. Na co jsme tehdy čekali minutu a v 90. letech několik desítek sekund, to trvalo v roce 2005 sekundu (a bylo to použitelné). Před dvěma lety půl (a bylo to pohodlné). Letos 0.37 sekundy. Slavný bonmot o milisekundách, co zdržují sice má racionální jádro, ale ruku na srdce: když něco trvá 0.37 sekundy, je to „hned“, pokud to trvá 0.5, je to „hne-ed“; ten rozdíl by musel být mnohem větší, aby se pro běžného uživatele z nepostřehnutelného proměnil na iritující.
Lidé nepotřebují, aby počítač měl rychlý procesor a hodně paměti; potřebují, aby je nezdržoval.
Rychleji a radostněji
Vývoj aplikací prochází takovými cykly – aplikace se zrychluje, má stále víc funkcí, a jednoho dne se objeví její klon, který je podstatně jednodušší, menší, hezčí, nemá vůbec tolik funkcí, a stane se populární, protože si běžní uživatelé uvědomí, že vlastně všechny ty funkce ani nepotřebovali. Jako příklad mě napadá třeba „odloupnutí“ Firefoxu od Mozilla Suite.
Výkon současných počítačů už několikanásobně přesahuje minimum použitelnosti i pohodlí. Podívejte se na Word verze 2000 a 2007, odmyslete si jiné rozložení ovládacích prvků a efekty a zkuste přijít na to, co zásadně nového přinesla nová verze, bez čeho byste se neobešli a co by přitom před deseti lety nebylo technicky možné. Moc toho není, že?
Pěknou ukázkou toho, že nové vyumělkované funkce v aplikacích vlastně nepotřebujeme (ve smyslu nezbytnosti), jsou všelijaké online verze desktopových programů – všechny ty online Wordy a Photoshopy a čtečky a další. Jsou naprogramovány – alespoň ta viditelná část – v JavaScriptu (či ve Flashi, který je totéž, jen v bledě modrém – klidně by následující odstavce mohly být o něm).

Kdysi jsem v nadsázce psal, že JavaScript se dostal do stádia, kdy svým výkonem na 2GHz procesoru dokáže totéž, co umělo ZX Spectrum s 3.5MHz osmibitovým Z80. Dnes už jsme dál – dnes má JavaScript na rychlých strojích s rychlým JS enginem výkon, který bych se nebál srovnat s Amigami či Atari ST. Už dokáže emulovat ZX Spectrum.
A co? Vždyť na tom není vlastně nic špatného. Copak nám ty stroje nenabídly možnost dělat skoro všechno, co jsme dělat potřebovali? Jasně, bylo to pomalé, nedokonalé a (mili)sekundy nás zdržovaly, ale upřímně: být ty aplikace rychlejší – místo „možné“ alespoň „použitelné“ – tak nám stačí dodneška.
Jako bychom se se vší slávou kolem HTML5 a spol. vraceli na konec osmdesátých let, ke svým Amigám a eSTéčkům – jen jich máme víc najednou. Dnešní prohlížeč se mění ve virtuální počítač a ta změna je čím dál tím zřetelnější. Co okno, to jedna virtuální Amiga, Atari ST či Spectrum. JavaScript je strojový kód těhle virtuálních počítačů, DOM jejich textová konzole, canvas grafická. FileAPI a WebStorages jsou jejich hardware.

A to je ve skutečnosti přesně to, co většině lidí stačí. Běžnému uživateli na jeho práci opravdu stačí počítač se schopnostmi té Amigy, možná snad potřebuje mít jich víc – na jednom mu hraje hudba, na druhém běží mailový klient a IM, na třetím píše text. S rychlejším počítačem člověk nepracuje ani víc, ani rychleji. Komfortněji, to ano.
Co bude dál? Zatím se vždycky vysoký výkon úspěšně promrhal v tom, že se doplnila nějaká softwarová mezivrstva, která sice zpomalila běh programů, ale zato zjednodušila vývoj aplikací či umožnila přenositelnost. V dobách osmibitů to byl interpret BASICu, dnes to je JVM, .NET a nejrůznější vrstvy OS. Zítra to bude pravděpodobně prohlížeč a JavaScript/Flash.
Je tedy jen logické, že až se JavaScript zrychlí z „použitelné“ na „pohodlné“, přijde další krok – co takhle v JavaScriptu napsaný interpret dalšího jazyka? HTML parser (ten už je – Pure JS HTML Parser) a zobrazovací engine pro canvas? Teoreticky by šlo v JavaScriptu napsat HTML prohlížeč s výstupem do canvasu (a nebudu se divit, jestli se dozvím, že ho někdo už napsal). Vzniknou pak i vyšší jazyky a překladače, jejichž výstupem bude JavaScript+HTML5 kód? Pravděpodobně ano – a se vší tou parádou a obrovským výkonem uvnitř budeme spouštět skoro tytéž aplikace, co jsme používali na konci 80. let. Ne rychleji, ale víc najednou.
Protože většina uživatelů vlastně doopravdy nepotřebuje o moc víc. Stačí jim, když to bude pohodlné a nebude je to zdržovat.


Přehled komentářů