Vyšlo v týdeníku CHIPweek č. 24/95, 11. října 1995
Vytištěno z adresy: http://www.earchiv.cz/a95/a524k200.php3

Java, revoluce ve světě WWW


Vyšlo v týdeníku CHIPweeku 24/95 jako součást druhé přílohy "Trendy '95", před Invexem '95"

Ve světě počítačů již poměrně dlouho nedošlo k žádnému radikálnímu zlomu - zatím se vše vyvíjí spíše lineárně: programy se zpomalují rychleji, než se zrychluje hardware, a jejich paměťové nároky rostou rychleji, než stačí růst objem dostupné paměti. Nyní se ale na obzoru rýsuje něco skutečně převratného, co by mohlo znamenat opravdovou revoluci - něco co z dnešního počítače, dosud chápaného jako střed všehomíra, učiní pouhou periferii globální sítě s nesrovnatelně většími možnostmi. Něco co má šanci zajistit výrazný růst funkčnosti a užitných vlastností, za cenu jen velmi malého nárůstu složitosti programů. Řeč je o koncepci dalšího rozvoje uživatelsky velmi atraktivní služby World Wide Web, které otevřel dveře nový programovací jazyk Java.

Historie služby World Wide Web, která doslova vládne dnešnímu Internetu, se nezdá být příliš stará. Nicméně principy, na kterých stojí, jsou poměrně dávného data - alespoň měříme-li čas podle dnešního překotného vývoje v celé oblasti výpočetní techniky.

Již na samém počátku počítačové éry, v roce 1945, si jeden z tehdejších pionýrů, Vannevar Bush, povšimnul že lidské myšlení obvykle nemá podobně lineární průběh, jako sekvenční výpočet na tehdy se rodících počítačích. Lidské myšlení podle Vannevara Bushe pracuje s asociacemi, a rychle přeskakuje z jednoho místa na druhé na základě asociací, které jednotlivé myšlenky vyvolávají. Vzniká tak vlastně velmi jemná pavučina vzájemně propletených závislostí a vztahů, kterou lidské myšlení prochází po různých cestách a trasách. Počátkem šedesátých let se k této představě vrátil známý vizionář Ted Nelson (Theodor Holm Nelson), a představu Vannevara Bushe o činnosti jednotlivého lidského mozku zobecnil a zasadil do globálního rámce univerzální celosvětové knihovny a globálního informační indexu, kterému dal působivé jméno: „Xanadu". Tím vlastně vybudoval koncepční základy hypertextu.

Xanadu neuspělo. WWW ano.

Vznešené myšlenky Teda Nelsona se po zhruba dvě desetiletí nedařilo úspěšně realizovat v jejich plné kráse a síle. A to ani v době, kdy celý projekt štědře financovala (od roku 1988) firma Autodesk. Podařilo se ale realizovat, a to v opravdu masovém měřítku, něco méně okázalého a dokonalého, než co si původně představoval Nelson - dnešní službu World Wide Web.

Prvním krok učinil pan Tim Berners-Lee ze švýrarského střediska CERN. Byl to právě on, kdo stvořil World Wide Web jako univerzální hypertextový systém, fungující v síťovém prostředí. On vyvinul původní přenosový protokol HTTP (HyperText Trasnfer Protocol) pro přenos hypertextových dat Internetem. On vymyslel jednotný způsob adresování (ukazatele URL, Uniform Resource Locator). On navrhnul jazyk HTML (Hypertext Markup Language), definující formát hypertextových dokumentů - jakýsi síťový PostScript pro potřeby služby WWW. Díky jemu mohl vzniknout první prohlížeč (browser), ve kterém stačilo ukázat a kliknout na určitý „kus" informace, a zpřístupnit si ji bez ohledu na to, kde se tato informace nachází.

Pokud jde o World Wide Web jako jednu ze služeb Internetu, již tento první krok představoval dosti radikální změnu oproti předchozímu stavu - Internet totiž v té době byl značně „uživatelsky nepřítulný". Kdo jej chtěl používat, musel znát mnohdy velmi kryptické příkazy a jemné nuance Unixu, a o podobném stylu práce, jaký mu se svým grafickým uživatelským rozhraním nabízely začínající MS Windows či již lépe zabydlené počítače MAC, si mohl nechat jen zdát. Teprve se vznikem WWW se objevila služba, která zpřístupňovala nevyčerpatelné zdroje Internetu stylem „point and click".

Nicméně Tim Berners-Lee přistoupil ke svému řešení z pozice vědce. Tedy z pozice člověka, který dbá na racionální využití dostupných zdrojů, který se snaží vyvarovat každého náznaku plýtvání, a který nepřikládá příliš velkou váhu „laciným" efektům. Jeho World Wide Web byl vlastně jen chytrým a šikovným prohlížedlem čistě textových materiálů.

Schopnost lidí absorbovat informace je ovšem relativně nejnižší právě u psaného textu - pokud bychom lidské smysly přirovnali k přenosovým kanálům a měřili jejich přenosovou kapacitu, pak psaný text by člověk v průměru dokázal přijímat rychlostí cca 55 bitů za sekundu, zatímco u sluchu jde o hodnoty v řádu kilobitů za sekundu, a v případě zraku dokonce v řádu megabitů. Jak mnoho pravdy je na tom, že jeden šikovný obrázek řekne více, než celé stránky textu!

Tim Berners-Lee však nezabudoval do svého Webu schopnost práce s grafikou či se zvuky zcela záměrně, protože se velmi obával zneužití těchto schopností, které by vedly k rychlému zahlcení dostupných přenosových kanálů. Když se pak v roce 1992 a 1993 začínají objevovat klientské programy služby Gopher, vybavené schopností zobrazovat i grafické obrázky, zdálo se že Gopher bude mít značně navrch.

Rodí se mozaika

Světlou budoucnost pro World Wide Web odstartovalo až náhlé rozhodnutí, které jedné pozdní prosincové noci v roce 1992 učinili dva mladí lidé, Marc Andreessen a Eric Bina, v kavárně Espresso Royale v Champaign-Urbana ve státě Illinois v USA. Oba v té době pracovali pro známé středisko NCSA (National Center for Supercomputing Applications), kde vyvíjeli programy pro 3D vizualizaci na výkonných grafických pracovních stanicích. Té noci si oba řekli: zkusíme to. Měli tím na mysli hypertext i s obrázky, v prostředí služby World Wide Web. Nejspíše ani netušili, že právě mačkají spoušť na startovacím zařízení rakety jménem WWW.

V době od ledna do března roku 1993 jejich velmi intenzivní práce přinesla první ovoce - program NCSA Mosaic. Podle zvyklostí střediska NCSA, spadajícího pod univerzitu v Illionis, byl volně šiřitelný. Byl poměrně jednoduchý, měl jen asi 9000 řádek zdrojového kódu (zatímco například dnešní Windows 95 jich mají 11 milionů), a vzal svět doslova útokem. Umožnil zpřístupnit obrovské bohatství Internetu způsobem, který byl jednoduchý, srozumitelný a snadno využitelný i pro laické uživatele, kteří nemuseli pronikat do žádných technických záludností Internetu. Jak dnes vzpomíná Eric Bina, obavy o zneužití služby WWW schopné pracovat s obrázky se z velké části naplnily: „Lidé to zneužívali hrozným způsobem. Například stránku textu, napsanou původně v PostScriptu, nasnímali jako bitmapový obrázek velikosti megabytu, a ten pak šířili - zatímco původní text neměl více, než nějakých 1000 bytů. Ale pravdu měl i Marc Andreessen, když tvrdil že se stejně tak najde hodně lidí, kteří dokáží využít možností mozaiky a Webu efektivně, zpřístupnit jejich prostřednictvím skutečně hodnotné informace, a také je vhodně konzumovat".

V době, kdy intenzivně pracoval na mozaice, byl Marc Andreessen ještě také studentem. Když v prosinci 1993 svá studia úspěšně zakončil, ředitel střediska NCSA mu nabídnul setrvat zde i nadále. Ovšem za jedné podmínky - že se již nebude podílet na projektu MOSAIC. „Na vytvoření Mosaiky se spolupodílelo kolem 40 lidí", řekl tehdy Andreessenovi, „nemyslíte že by i další měli dostat šanci podílet se i na slávě?" Přesvědčen, že šance budou ještě větší když u toho sám nebude, vydal se Andreessen do Křemíkového údolí (Silicon Valley).

Vzniká Netscape

Po několika měsících práce pro celkem neznámou firmu EIT si na Andreessena vzpomněl legendární zakladatel firmy Silicon Graphics, Jim Clark. V únoru 1994 mu poslal email, a záhy si plácli. Andreessen se stal prvním zaměstancem nově založené firmy jménem Mosaic Communications. Záhy se oběma podařilo získat do party i Erica Binu, a tak práce na dalším vývoji Mozaiky mohly začít.

Nově založená firma však musela záhy čelit nepříjemným hrozbám, že zcizila intelektuální vlastnictví střediska NCSA. Andreessen s Binou se hrozícímu vyhnuli velmi elegantně - rozhodli se začít úplně od začátku, na zelené louce. Firmu přejmenovali na Netscape Communications, a svou novou mozaiku začali psát odznova. Mělo to ostatně i své přednosti, protože původní mozaika byla narychlo napsaným programem, který vznikal v prostředí přímo hýřícím konektivitou - středisko NCSA mělo velmi rychlou přípojku spoji T1 a T3, a tak si původní NCSA Mosaic mohl vesele vychutnávat neskutečných 45 megabitů za sekundu. Nyní se ale jeho autoři naopak snažili přizpůsobit obvyklým podmínkám „domácího" uživatele, vlastnícího modemovou přípojku o rychlosti 14,4 kilobitů za sekundu. Výsledný produkt, jménem Netscape Navigator, pak zpřístupnili každému téměř zadarmo, prostřednictvím Internetu - pro akademické uživatele úplně zadarmo, a pro komerční uživatele za spíše symbolickou cenu několika desítek dolarů. Téměř brzy si firma Netscape Communications získala 70 procent veškerého trhu klientských programů pro WWW (browserů) i WWW serverů, a dodnes si tuto pozici drží.

Netscape udává krok

Soudobý vývoj služby World Wide Web je do značné míry určován právě firmou Netscape Communications - vzhledem k jejímu dominantnímu postavení. Tato firma přitom nevydělává ani tak na svých browserech, které ovládly trh a jsou téměř zdarma. Vydělává na tom, že prodává i své vlastní WWW servery (typicky ve formě Unixových WWW démonů), jejichž cena dnes dosahuje až 5000 dolarů. Přitom browsery i servery od firmy Netscape samozřejmě jsou „vzájemně sehrané" - nabízí některé funkce, které jiné browsery a jiné servery nenabízí a nepodporují. Souvisí to i s relativně špatnou standardizací celé služby WWW: doposud jsou plně standardizovány pouze ukazatele URL, zatímco přenosový protokol HTTP se nachází ve stádiu předběžného standardu (Draft Internet Standard). Ještě hůře je pak na tom jazyk HTML (HyperText Markup Language), od kterého již existují nejméně čtyři verze - HTML 1, HTML 2, HTML 3 a HTML +, ale žádný z nich dosud není standardizován. Každý výrobce tohoto standardizačního vakua může využít k tomu, aby přišel s úplně novým řešením či alespoň s drobnými úpravami dle svých vlastních představ. Firma Netscape Communications tak činí také - lze se tomu divit?

Programs at your fingertips

Schopnosti původní služby WWW, omezené jen na práci s textem, se díky postupnému vývoji značně obohatily: nejen o možnost práce s grafikou, ale postupně také o podporu formulářů, tabulek, lepších možností formátování, o možnost animace, podporu zvuku atd. Všechny tyto funkce jsou přitom realizovány buď přímo samotným klientským programem (browserem), nebo externím programem, který je explicitně zavolán k tomu, aby zpracoval některou konkrétní „přílohu" - například přehrál zvukový záznam. Vždy však platí zásada, že mezi serverem a klientem služby WWW se přenáší pouze data, zatímco programy pro jejich správně zpracování se musí již nacházet u klienta.

Nyní se ale objevila velmi převratná myšlenka, která v zásadě říká: nebudeme posílat klientům pouze data, ale rozvnou celé programy, které se u klienta spustí a něco zde vykonají. Může jít například o film, který se sám promítne, o graf, který se sám vykreslí, ale také například o hru apod. Podstatu věci asi vhodně vystihuje slogan „executable content" (doslova „proveditelný obsah") - to, co klient získává ze sítě, si již v sobě nese všechno potřebné pro vlastní zpracování, prezentaci, provedení atd. Takže už nikoli pouhé „information at your fingertips", jak si to představoval a nadále představuje pan Gates, ale nyní již celé „programs at your fingertips". Představme si některé zajímavé důsledky.

Jestliže dosud bylo nutné vybavit každý počítač dostatečně výkonným operačním systémem, který by měl již přímo v sobě zabudováno celé široké spektrum funkcí, potřebných pro zpřístupnění různých informací, nyní bude stačit něco mnohem jednoduššího. Nyní bude stačit minimální operační systém, schopný „stáhnout to, co bude uživatel skutečně potřebovat". Nyní již nebude nutné závodit, kdo svého počítače napěchuje co možná nejvíce funkcí, které stejně většinu času nevyužívá, a tak zde pouze zbytečně překáží a komplikují život těm funkcím, které jsou používány soustavně. Nyní bude možné se vrátit ke skutečně fungující jednoduchosti, ke které se bude další složitost přidávat aditivně až na základě skutečné potřeby - uživatel si vždy „zavolá" to, co potřebuje. Jeho počítač se tak vlastně stane periferií sítě jako jedné obrovské a nesmírně bohaté zásobárny aplikací, ze které bude moci čerpat.

Ale možná toto všechno jsou jen drobnosti ve srovnání se změnami, které takovýto přístup teprve vyvolá, a které dnes nejsme schopni ani domyslet. Třeba se právě naznačená myšlenka prosadí i jinde, než v prostředí uživatelsky nesmírně atraktivní služby World Wide Web. Nebo obrovskou popularitu této služby ještě více posílí, a skutečně naplní prorocká slova otce Ethernetu, Roberta Metcalfa, který v únoru letošního roku předpověděl že „WWW browsery se stanou novodobými operačními systémy".

Jak funguje Java

Zamysleme se nyní také trošku nad tím, zda je vůbec možné právě naznačenou revoluční představu prakticky realizovat. Možné to samozřejmě je, a svět již měl možnost se o tom názorně přesvědčit - na jednom konkrétním příkladu, kterým je WWW browser HotJava firmy Sun. To podstatné na něm ale je použití jazyka Java, který také vymysleli u firmy Sun Microsystems.

Má-li být ke klientovi přenesen a zde proveden nějaký program, je nutné jej v něčem naprogramovat. Právě k tomuto účelu slouží Java - jde tedy o programovací jazyk. Své kořeny v jazyku C++ nezapírá, ale k mnohým vlastnostem C++ se zcela záměrně nehlásí. Například k možnosti přístupu do kódu prostřednictvím pointrů, které umožňují netušená programátorská „zvěrstva". Zásadním rozdílem mezi jazykem Java a C++ je ale skutečnost, že programy v jazyku C++ jsou kompilovány, zatímco programy v jazyku Java jsou interpretovány. Přesněji: zdrojové programy v jazyku Java jsou nejprve přeloženy do jednotného mezitvaru, v něm jsou přeneseny ke klientovi, a zde je tento mezitvar interpretován. Je to zřejmě jediné možné řešení, protože musíme vzít v úvahu, že klientském programy (browsery) mohou stát na různých platformách, a mohou tedy „běžet" nad různými procesory, s různými instrukčními soubory apod. Navíc se předpokládá, že programy v jazyku Java budou prováděny průběžně, v reálném čase - například tak, že část programu již poběží, zatímco zbývající část se bude teprve „dočítat" ze sítě. A to by případná kompilace mezitvaru neumožňovala.

Vše je přitom vymyšleno tak, aby to mohlo být jednoduché a fungovalo dostatečně efektivně: interprety jazyka Java pro různá prostředí zabírají kolem 45 kilobyte paměti (ano, čtete dobře, pouhých čtyřicet pět kilobyte!!). Firma Sun již má k dispozici interprety, které pracují v prostředí Microsoft Windows 95, na počítačích Mac, pod Windows NT, a samozřejmě i pod různými variantami Unixu.

Firma Netscape Communications již dala veřejně najevo, že hodlá koncepci firmy Sun podporovat, a že nová verze jejího populárního browseru, Netscape Navigator 2.0, již bude Javu podporovat. Máme se tedy na co těšit. Zcela jistě o Javě ještě hodně uslyšíme.