Úvod do technologie Java a jejího použití
Jako příznivci Internetu jste se již jistě s tím kouzelným slůvkem setkali. Ano, Java [džava] letí světem a každý o ní nadšeně hovoří jako u budoucnosti Webu. Co to vlastně je ta Java a jak nám může pomoci? Mnozí jistě vědí, že Java je nový programovací jazyk. Proč vzbudil takovou pozornost a potřebujeme se vůbec učit nějaký další jazyk? To jsou otázky, na které se pokusí odpovědět úvodní článek do technologie Java a jejího praktického použití.
Trocha historie
Programovací jazyk Java původně vyvinuli experti firmy SUN Microsystems pro řízení set-top přístrojů pro televize a obecně pro řízení zařízení spotřební elektroniky. To již od samého začátku znamenalo, že takový jazyk musel být nezávislý na platformě, tj. nemohl se spoléhat na určitý mikroprocesor nebo hardware. Systém v takovém jazyce potom může běžet na videorekordéru, stejně jako v telefonu, automatické pračce nebo dokonce na počítači.
Systém, který byl tehdy kolem roku 1991 vyvinut, se jmenoval Oak (dub strom rostoucí před oknem kanceláře šéfa projektu) a jeho tvůrci se ho nejprve snažili prosadit do set-top přístrojů pro "video-na-žádost" firmy Time-Warner a do herních konzolí 3DO. Z obou projektů nakonec sešlo, což bylo pro další vývoj možná lepší. V roce 1993 si totiž Zelený tým, jak se tvůrcům Oaku přezdívalo, uvědomil potenciál svého systému jako programovacího jazyka pro tvorbu aplikací Webu. Za další dva roky pak byl Oak p řejmenován na Javu (obchodní značka Oak byla už zaregistrována) a začala jeho strmá cesta vzhůru. Nejprve byl vytvořen webový prohlížeč WebRunner, později přejmenovaný na HotJava, který umožňoval zobrazovat interaktivní webové stránky s Java applety. HotJava je mimochodem celá napsána v Javě, což dokazuje schopnosti tohoto jazyka. Následovalo licencování jazyka Java takovým společnostem jako je Apple, IBM, Netscape a Microsoft, které ho využily ve svých produktech. Dnes Javu podporují oba hlavní web ové prohlížeče Netscape Navigator i Microsoft Internet Explorer a Java applety i aplikace lze dokonce spouštět přímo z prostředí operačního systému (viz obr. 2).
Ptáte se jak název Java vlastně vznikl? Říká se, že inspirace se dostavila cestou do kavárny, kterou tvůrci Javy navštěvovali ("java" je anglický termín pro vařenou kávu). Ale zlí jazykové tvrdí, že se jedná o zkratku z Just Another Valueless Acronym (jenom další bezcenný akronym).
Co je Java?
Java je objektově orientovaný programovací jazyk vyšší úrovně vycházející z jazyka C++. To již samo o sobě říká mnohé, ale nijak to nezdůvodňuje jeho strmě rostoucí popularitu a souvislost s Internetem. Nebudu zde zabíhat do podrobností kolem objekto-vě orientovaného programování (OOP), které je dnes již poměrně běžné, spokojme se s tím, že v Javě se program skládá z objektů (tříd), které obsahují různé metody, pomocí nichž spolu objekty komunikují.
To, co způsobilo obrovský zájem o Javu, pokud jde o Internet, je její přenositelnost umožňující běh téhož programu na různých počítačových platformách. Internet je svojí heterogenností, tj. růzností použitých počítačových platforem, typický, a tak jazyk, ve kterém lze psát aplikace, spustitelné na každém počítači, přirozeně vzbudil pozornost. Principem přenositelnosti u Javy je to, že zdrojový kód programu není překládán přímo do instrukcí konkrétního procesoru, ale do obecného binárního souboru obs ahujícího bajtové kódy. Tento binární soubor je potom interpretován speciálním virtuálním strojem (viz další kapitola).
Zastavme se ještě na chvíli u pojmu applet, který je v souvislosti s Javou často používán. V Javě lze vytvářet běžné aplikace stejně jako v C++, a potom zde existují jakési mini-aplikace, applety, které lze spouštět ve webových prohlížečích. Součástí definice Javy jsou knihovny nadefinovaných tříd, které podstatně zrychlují proces programování. Jednou takovou nadefinovanou třídou je i Applet obsahující některé speciální metody, například překreslení oblasti appletu nebo reakce na událost. Pokud vytv oříte dceřinnou třídu třídy Applet, ve které předefinujete příslušné metody, dostanete nový applet, který potom (po zkompilování) můžete zařadit do své webové stránky. Výhodou tvorby appletů (a obecně OOP) je právě to, že hodně práce již pro vás bylo uděláno a vy jen měníte, co potřebujete.
Existuje také zjednodušená verze Javy s názvem JavaScript určená přímo pro Web. Programy napsané v JavaScriptu je možné zařadit do textu HTML stránky (není tedy potřeba žádný překladač) a prováděny jsou potom po zobrazení stránky ve webovém prohlížeči. Hovoříme-li o JavaScriptu, nemůžeme opomenout ani jeho konkurenta VBScript. VBScript, neboli VisualBasic Script, je zjednodušenou verzí jazyka VisualBasic, kterou vytvořil Microsoft. VBScript je dnes ale podporován pouze Internet Explorerem pro Window s. Oba skriptovací jazyky umožňují oživit webové stránky například o animace, přidat do stránek interaktivitu a funkce, které bylo dříve nutné programovat pomocí tzv. CGI skriptů běžících na webových serverech.
Virtuální stroje
Tvrzení, že Java programy a applety běží na každém počítači, je sice pravda, potřebujete pro to ale jednu maličkost, a to virtuální stroj Javy (JavaVM). Počítače totiž mohou z principu provozovat jen programy napsané v kódu používaného procesoru a pro všechny ostatní aplikace je potřeba nějaký druh softwaru, tzv. virtuální stroj nebo, chcete-li, virtuální procesor, který se stará o převod instrukcí programu na instrukce procesoru. Virtuální stroj Javy je tedy software interpretující bajtový kód Java souborů (soubory s koncovkou .class) a pro každou počítačovou platformu je nutný zvláštní virtuální stroj.
Nevýhodou interpretace, kterou provádí většina virtuálních strojů Javy, je rychlost nebo spíše pomalost běhu Java programů. Proto vznikly tzv. just-in-time (JIT) kompilátory, které průběžně překládají bajtový kód Javy na kód daného procesoru. Tím je dosaženo několikanásobného urychlení Java programů. Vzpomínám si, že kdysi bylo něco podobného vytvořeno pro jazyk BASIC a říkalo se tomu navlékací P-kód.
Mimochodem, Java není jediný jazyk, který používá virtuální stroj. Programovací jazyk Prolog má svůj virtuální stroj již někdy od roku 1977, říká se mu Warrenův abstraktní stroj (WAM). Počítače Power Macintosh používají hned několik virtuálních strojů. Vestavěný mají virtuální stroj pro běh aplikací napsaných pro starší procesory 68k, od firmy Connectix si můžete koupit VirtualPC, což je virtuální stroj pro provoz aplikací určených pro počítače PC, a nakonec je tady MacOS Runtime for Java (MRJ), slo užící pro běh Java programů a appletů.
Virtuální stroje Javy jsou dnes součástí obou hlavních webových prohlížečů Netscape Navigator a Internet Explorer (viz obrázek 3). Microsoft, Apple i IBM reálně zvažují zařazení JavaVM do svých operačních systémů, takže potom půjdou Java programy i applety spouštět stejně, jako všechny ostatní aplikace. SUN zase připravuje procesory schopné provozu bajtového kódu Javy bez nutnosti použití mezičlánku v podobě virtuálního stroje.
Vývojové nástroje
Firma SUN Microsystems udělala pro rychlé rozšíření Javy opravdu hodně. Pro tvorbu prvních appletů v Javě bylo rozhodující uvolnění vývojového prostředí Java Development Kit (JDK), které si každý zájemce může zdarma nahrát z webového serveru firmy (http://www.javasoft.com). JDK je dostupný pro celou řadu počítačových platforem (nutná je podpora dlouhých jmen souborů), a tak s vývojem softwaru v Javě může začít opravdu každý. Jediné, co k JDK potřebujete navíc, je textový editor, ve kterém budete psá t a upravovat zdrojové texty svých Java programů (viz obrázek 1).
Základem JDK je Java Compiler (javac), který překládá zdrojové texty programů (soubory s příponou .java) na binární soubory obsahující bajtové kódy (soubory s příponou .class). Dále zde najdete Java Runner, což je vlastně virtuální stroj Javy umožňující provoz Java programů na dané počítačové platformě. Obdobou Java Runneru, určenou pro běh appletů Javy, je Applet Viewer, umožňující načíst webovou stránku obsahující applet, zobrazit jemu vyhrazenou oblast a applet spustit. Některé verze JDK obsahují ještě dvojici nástrojů: javadoc pro automatickou tvorbu dokumentace programů a disassembler Javy pro převod binárních souborů Javy (přípona .class) zpět do podoby zdrojového kódu (přípona .java).
S JDK dostanete pro začátek řadu již vytvořených appletů, včetně jejich zdrojových kódů, které tak mohou sloužit k úvodnímu samostudiu jazyka. Některé z těchto appletů lze po drobné úpravě přímo použít na vlastních www stránkách.
JDK je pro všechny platformy dostupný ve verzi 1.0.2, brzy by měl být k dispozici i JDK 1.1 podporující některé nové prvky Javy, jako jsou například JavaBeans.
Zatímco Java Development Kit může stačit v začátcích práce s Javou, kdy jsou vaše aplikace a applety ještě malé, při vážnější práci rázem začne být JDK těsný. Ne že by s ním nešlo vyvíjet větší projekty, ale komfort práce, na jaký je většina programátorů zvyklá z jiných vývojových prostředí, JDK prostě neposkytuje. A nejde zde jen o pohodlí, ale především o podporu vývoje, například v podobě ladicích nástrojů, které mohou tvorbu aplikace urychlit a zároveň zvýšit její stabilitu. Dnes již ovšem exist ují komerční vývojová prostředí pro Javu od dalších výrobců.
Poměrně silnou platformou pro vývoj aplikací v Javě jsou počítače Macintosh. K dispozici je pro ně hned několik slušných SDK pro Javu, otázkou je jen, který si vybrat. Pokud v Javě začínáte nebo ji využíváte především pro přidání interaktivity do svých www stránek, je pro vás ideální Symantec Visual Cafe, dostupný pro Macy i Windows 95/NT (viz obrázek 4). Jedná se o integrované vývojové prostředí (IDE) obsahující vše, co pro tvorbu appletů i aplikací v Javě potřebujete. Vestavěný textový editor např íklad barevně rozlišuje klíčová slova a komentáře, k dispozici je prohlížeč hierarchie tříd, debugger i vizuální programovací nástroj pro snadnou tvorbu uživatelského rozhraní. Kromě kompilátoru od Sunu můžete také používat rychlejší kompilátor od Symantecu.
Pro tvorbu náročnějších projektů v Javě je vhodný Roaster, poskytující dnes jeden z nejrychlejších překladačů Javy. Ten umožňuje vytvářet i soubory .zip s mnoha zkompilovanými třídami, které jsou použitelné jak ve Windows, tak i v Unixu. V Roasteru lze také generovat spustitelné aplikace pro Mac, ve kterých je k binárnímu souboru Javy přibalen virtuální stroj Javy. Lze tak vytvářet například databázové programy a další kancelářské aplikace, jejichž výkon je srovnatelný se softwarem psaným v C++.
Svá želízka v ohni, zvláště pro počítače s Windows 95 a NT, mají také tradiční tvůrci vývojových nástrojů, firmy Borland a Microsoft.
Java a Web
Nejčastěji se dnes hovoří o jazyce Java v souvislosti s oživením webových stránek, na které současný standard HTML nestačí. Již takový JavaScript umožňuje dělat zajímavé věci, a co teprve plná síla Javy?
Zatím se pro přidání multimédií a interaktivity do Webu používají především vložené objekty. Jejich nevýhodou je ale to, že potřebují speciální zásuvný modul do prohlížecího programu. A protože každá firma si pro zobrazování svých skvělých interaktivních multimédií vyvinula vlastní modul, počet zásuvných modulů na pevném disku postupně roste, stejně jako se úměrně nebo spíše neúměrně zvětšují paměťové nároky příslušného webového prohlížeče. O kolizích mezi jednotlivými moduly a nedostupnosti některý ch modulů pro určité platformy ani nemluvě. A přitom existuje jednoduché řešení využívající Java appletů.
Podobně jako vložený objekt si také Java applet pro sebe vyhrazuje část webové stránky, na které potom může dělat, co chce. Vzhledem k univerzálnosti Javy v ní můžete naprogramovat vše, co umí dnešní vkládané objekty. A nepotřebujete pro to zásuvný modul, protože podpora Javy je již většinou standardní součástí webového prohlížeče. Zatímco však pro tvorbu dat pro zásuvné moduly existují snadno ovladatelné multimediální autorské nástroje, Java applety bylo až donedávna nutné programovat ručně, což př irozeně řadu potenciálních autorů odradilo. S uvedením aplikace WebBurst firmou Power Production Software (http://www.powerproduction.com) se vše mění.
WebBurst je multimediální autorský nástroj, s nímž se pracuje stejně snadno a pohodlně jako s jinými aplikacemi tohoto druhu. Můžete zde kombinovat grafiku, text i zvuk, přidávat animace i oživovat tlačítka, prostě vše, co umí tradiční multimediální autorské nástroje (viz obrázek 7). Na závěr se místo souboru s daty pro zásuvný modul vygeneruje Java applet, který potom můžete přímo zařadit na svoji stránku. Jednoduchá myšlenka, která funguje.
Java applety mohou do webového prohlížeče přinášet nejen multimediální data, ale i celé aplikace, jako jsou například grafické editory nebo tabulkové procesory. Velká budoucnost je také v appletech, které budou sami brouzdat sítí a vyhledávat pro vás zajímavé informace, a ty potom zobrazí ve webovém prohlížeči.
Java mimo Web
Java je univerzální programovací jazyk, který lze přirozeně používat pro vývoj libovolného softwaru. Jeho výhodou je to, že stačí aplikaci napsat a přeložit pouze jednou a ona je pak použitelná na každém počítači s JavaVM. Toho chtěli využít také vývojáři firmy Corel, kteří vytvořili patrně první větší aplikaci v Javě, balík kancelářského softwaru Corel Office for Java (donedávna byl k dispozici na adrese http://officeforjava.corel.com).
Corel Office for Java (COJ) je implementován jako applet (to je pro mne trochu překvapení) a lze jej proto spouštět v rámci webového prohlížeče, což možná trochu neguje nadpis tohoto odstavce. Po spuštění se zobra-zí pracovní plocha CorelDesktop s integrovaným správcem souborů a s ikonami jednotlivých aplikací. Najdete zde textový editor Corel WordPerfect for Java, tabulkový procesor Corel QuattroPro for Java s modulem CorelCHART for Java pro kreslení grafů a prezentační software Corel Presentations for Java. Z každé aplikace lze potom vyvolat Corel Information Management for Java (InfoCentral) s plánovacím kalendářem, adresářem, kalkulačkou i e-mailovým klientem (viz obrázek 6). Jednotlivé moduly nabízejí všechny základní funkce, které můžete od tohoto typu softwaru čekat i výjimkou je možná CorelCHART, jehož nabídka grafů je skutečně obdivuhodná.
Původním cílem při vývoji Corel Office for Java bylo vytvořit produkt, který by mohl prolomit nadvládu Microsoftu v oblasti kancelářských aplikací. Současná verze COJ se ale počtem funkcí rozhodně Microsoft Office nevyrovná, přirovnat ji lze spíše k integrovaným programům typu ClarisWorks. Podle posledních zpráv proto Corel prozatím upustil od dalšího vývoje COJ a soustředí se na vývoj "klasickým" způsobem. Doba uplatnění Javy mimo Web zřejmě zatím ješ-tě nenastala (podle odborníků Corelu se tak sta ne asi za dva roky).
Kam pro další informace
Poté, co jsme se seznámili s možnostmi jazyka Java, s příklady jeho použití a podívali se na některé aplikace v Javě nebo pro Javu, bude vás jistě zajímat, kde se o Javě dozvíte více. Nejčerstvějším zdrojem informací o Javě je přirozeně Internet. Na prvním místě zde musíme zmínit domovskou stránku Javy (http://www.javasoft.com), kde si můžete nahrát poslední verzi vývojářského nástroje Java Development Kit, dokumentaci Javy a také se dozvíte oficiální informace o vývoji Javy.
Informace o vývojových prostředích pro Javu najdete na stránkách jejich tvůrců: Symantec (http://www.symantec.com), Roaster Technologies (http://www.roaster.com), Borland (http://www.borland.com) a Microsoft (http://www.microsoft.com). Zajímavé informace, názory odborníků i přehled produktů můžete nalézt také v elektronickém časopise JavaWorld (http://www.javaworld.com viz obrázek 8).
O tom, že Javu berou vážně největší světoví výrobci softwaru i hardwaru, se přesvědčte na stránkách AppleJava (http://applejava.apple.com) nebo IBM Solution Developer Program (http://www.developer.ibm.com.)
Javě a úvodu do programování v Javě je věnována také řada domovských stránek přívrženců tohoto jazyka. S jejich názory se můžete setkat i v diskusním fóru comp.lang.java, kam se také obracejte s případnými dotazy týkajícími se Javy.
Pro samý Internet byste ale neměli zapomínat na staré, dobré knihy. O Javě i JavaScriptu jich u nás vyšlo již několik a určitě je pohodlnější a rychlejší přečíst si dobrou knihu, než dlouze hledat podobné informace na Síti.
Přeji hodně úspěchů při cestě do nového světa technologie Java.
Roman Barták
7 0732
Slovníček pojmů a zkratek
Java je objektově orientovaný programovací jazyk vysoké úrovně vyvinutý s ohledem na síťové počítačové systémy.
Applet je program v Javě (přesněji řečeno, jedná se o objekt a jeho metody), který lze spouštět pouze v rámci webového prohlížeče.
JavaScript je podmnožinou Javy. Programy v JavaScriptu lze přímo zařadit do HTML stránek, čímž se odlišují od appletů Javy, které je potřeba nejdříve zkompilovat.
SDK (Software Development Kit) je kompletní sada nástrojů pro vývoj softwaru.
JDK (Java Development Kit) je SDK určené pro vývoj appletů i samostatně spustitelných aplikací v jazyce Java.
IDE (Integrated Development Environment) je integrované vývojové prostředí shrnující do jediné aplikace editor, kompilátor, debugger a další vývojové nástroje (pozn. stejná zkratka označuje také rozhraní diskových zařízení).
JavaVM (Java Virtual Machine) je virtuální stroj pro běh binárního kódu Javy. Je například součástí MRJ (MacOS Runtime for Java).
JIT (Just-In-Time) je způsob interpretace binárního kódu Javy, kdy je bajtový kód "za pochodu" překládán do strojového kódu počítače, čímž se dosahuje mnohonásobného urychlení běhu Java appletů i aplikací.