Dione
Z. KotalaP. Toman: Java
Predchozi (Obsah) Dalsi

3. Kávu, prosím?

Káva, či přesněji "kafe", tak zní překlad slova "java" [čti džáva] pocházejícího z americké slangové angličtiny, které se stalo jménem nového programovacího jazyka. Jeho vznik je spojen s rozmachem celosvětové sítě Internet, resp. se službou World Wide Web (WWW), a právě na WWW stránkách se můžeme s malými programy v Javě, nazývanými applety, nejčastěji setkat.

Applet může v Java-kompatibilním prohlížeči jako je například Netscape Navigator (verze 2.0 a vyšší) vypadat takto:

app256.gif

Java však není, jak se mnozí domnívají, určena jen pro Internet, ale je obecně použitelným jazykem určeným pro tvorbu běžných aplikací. Pochází od firmy Sun Microsystems, jejíž dceřiná společnost JavaSoft jej nadále vyvíjí.

Základní programovací nástroje jsou na Internetu od téže firmy volně k dispozici včetně obsáhlé a kvalitní dokumentace (viz kap. 4.). Kromě toho je na trhu široká nabídka vizuálních vývojových prostředí.

3.1. Vlastnosti jazyka

Java je objektově orientovaný jazyk, který vychází z jazyků C a C++. Narozdíl od svých předchůdců však neobsahuje některé konstrukce způsobující při programování největší potíže a naopak přidává řadu zajímavých vlastností:

  • V Javě neexistuje přímý a nekontrolovaný přístup do paměti - ukazatele jsou nahrazeny referenčními proměnnými, datové typy jsou pevně definovány (1) , provádí se kontrola při indexaci polí, zabraňuje se přístupu ke zrušeným objektům.

  • Syntaxe je jednodušší a srozumitelnější - Java neobsahuje preprocesor (tj. žádná makra ani direktivy), není povoleno přetěžování operátorů, je zaveden jednotný zápis pro přístup k objektům i knihovnám.

  • Java disponuje silnou statickou typovou kontrolou. Aritmetika je definována podle normy IEEE, což zaručuje stejný výsledek na rozdílných systémech. Abecedy neanglických jazyků jsou podporovány pomocí šestnáctibitového znakového kódu Unicode.

  • Prostřednictvím výjimek lze zachytit chyby a neočekávané stavy vyskytující se za běhu programu a umožnit jeho zotavení.

  • Jazyk zahrnuje prostředky pro paralelní běh částí programu (multithreading) a jejich synchronizaci.

  • Java podporuje vytváření distribuovaných aplikací a automatické šíření programů po síti. Lze tak zajistit upgrade softwaru s minimálními finančními nároky.

  • Bezpečnost aplikací lze zajistit programovou kontrolou přístupu k objektům a zařízením, vlastní kód programu je před spuštěním verifikován na správnost.

3.2. Java Platforma

Největším přínosem Javy je bezesporu plná přenositelnost programů na libovolnou platformu bez nutnosti jejich rekompilace. Programy se totiž nepřekládají do strojového kódu konkrétního procesoru, ale do nezávislé podoby, tzv. bytového kódu (bytecode) (2) . Tento kód pak může být interpretován na jakémkoliv počítači nebo průmyslovém zařízení. Kompatibilita je tedy zajištěna na binární úrovni.

Hardwarové rozdíly zastřešuje tzv. Java Platforma, která obsahuje dvě základní části:

  • Abstraktní počítač - virtuální stroj (Java Virtual Machine - JVM), který sestává z runtime systému, což je část realizující vazbu na hardware, a interpretu, který vykonává bytový kód.

    Pro urychlení může být interpret volitelně nahrazen tzv. JIT (Just-In-Time) kompilátorem, který při běhu programu provádí nejprve překlad do strojového kódu příslušného procesoru.

  • Aplikační programové rozhraní (Java Core API) - což jsou základní knihovny pro psaní programů. Výhodou je, že tyto knihovny nemusí být s programem distribuovány, neboť jsou součástí Java Platformy.

V současné době probíhá návrh několika rozšiřujících programových rozhraní. Jedná se například o podporu 2D a 3D grafiky (Java 2D a 3D API), zvuk (Java Audio API), správu sítě (Java Management API), bezpečnost (Java Security API) atd.

Firma Sun rovněž vyvíjí speciální mikroprocesory určené pro rychlou interpretaci bytového kódu a také síťový počítač (JavaStation) s operačním systémem na bázi Javy (JavaOS).

3.3. Java není JavaScript

Poměrně rozšířeným omylem je názor, že jazyky Java a JavaScript jsou totožné. Přestože syntakticky si jsou dosti podobné, existují mezi nimi zásadní rozdíly (3) a nelze ani říci, že JavaScript je podmnožinou Javy.

JavaScript pochází od firmy Netscape a je určen výhradně pro WWW stránky. Tímto jazykem se dále nebudeme zabývat - více informací lze nalézt například na [WWW9].

3.4. Nedostatky Javy

Hlavním nedostatkem Javy je malá rychlost interpretovaných programů. To se týká zejména Internetových prohlížečů, které navíc mají mnohdy problémy se stabilitou appletů (ovšem nikoliv vinou Javy). Tuto vadu by měly v budoucnu odstranit vyvíjené JIT kompilátory.

Druhým problémem jsou značné nároky na paměť, vznikající v důsledku automatické správy paměťových prostředků. Kapacita pamětí počítačů však neustále roste, a tudíž se jedná o poněkud méně závažný nedostatek.


  • (1) Rozumí se shodně pro všechny hardwarové platformy.
  • (2) Jedná se o pseudokód zásobníkového typu, viz příklad D.3..
  • (3) V případě JavaScriptu je interpretován přímo zdrojový text, nejsou podporovány třídy ani dědičnost atd.

Predchozi
Converted by Selathco v0.9 on 25.09.1999 19:46
Dalsi