Původně byla Java určena do spotřební elektroniky - odtud také přezdívka "jazyk topinkovačů".
Java - toto dálkami znějící slovo se má stát jazykem pro Internet současný, ba přímo pro ten nejsoučasnější, ale hlavně pro Internet budoucí. Jazyk, který se pyšní takovými pojmy jako "hardwarová nezávislost, jednoduchost či orientace na objektové programování" má zajisté všechny předpoklady řešit a vyřešit mnohé problémy, s nimiž se tvůrci webových aplikací a Internetoví programátoři ve svém nelehkém životě setkávají. Avšak současný boom jazyka Java přináší i řadu problémů s kompatibilitou jednotlivých "klonů" od různých firem, tedy nedodržování hesla "100% čistá Java", potažmo i řadu žalob. Kde jsou kořeny problémů a jaké výhody nám programování v Javě přináší? Nejen na tyto otázky se bude snažit odpovědět tento článek.
Každý z nás, kdo se pohybuje po prostředí Internetu, zaregistroval v posledních dnech, týdnech a měsících obrovské vření a třenice kolem jazyka, zvaného prostě a jednoduše JAVA. Připomeňme jen retroskpektivně to nejdůležitější, co bylo kolem tohoto jazyka a Java technologií vůbec řečeno (a protože se budu snažit dostat až ke kořenům Javy i těchto sporů, začněme od minulosti nejbližší a postupně plujme k té vzdálenější...).
Před pár dny se Firmy IBM, Lotus, Oracle a Sun dohodly na spolupráci při vývoji funkcí a podoby desktopu NC (Network Computer). Jedná se o vytvoření desktopového frameworku na úrovni API, tedy o ryzí specifikaci standartního desktopového frameworku bez ohledu na operační prostředí.
Pár dní předtím se hlasovalo o formě spravování standartu Javy - firma SUN vehementně usiluje o to, aby standard vedla organizace ISO, ale aby SUN zůstal hlavním rozhodovatelem o podobě Javy, což se hrubě nelíbí ostatním firmám, samozřejmě Microsoftu nejvíce.
Posuňme se o pár dní zpět - Microsoft žaluje SUN pro porušení licenční smlouvy na Javu, což má spočívat v tom, že SUN vyřadil Microsoft z dodávek nových technologií, a Microsoft byl tedy nucen k vývoji technologií vlastních.
Zhruba ve stejné době vytvořila firma IBM program Java JIVE, který umožňuje číst písmenka z monitoru a reprodukovat je ve slyšitelné formě - tedy výborná pomůcka například pro nevidomé spoluobčany.
A opět skok v čase vzad - SUN začal přemýšlet o tom, že předá testování Javové kompatibility - Java Compatibility Kit (JCK) nějaké nezávislé organizaci. V téže chvíli oznamuje, že do MSIE 4.0 vložil Microsoft asi stovku svých vlastních metod a polí, takže programy, vyvinuté v Javovém MS SDK poběží jen v MSIE 4.0.
V téže době firma IBM odstartovala prodej svého nového Javového produktu Java Developer Toolkit 1.1.1 pro svou platformu S/390.
A takto bychom mohli postupovat hlouběji a hlouběji do minulosti, o to však v této chvíli nejde. Rád bych se zamyslel nad významem a hloubkou sporu kolem jazyka JAVA, v čem jeho obrovský přínos vlastně spočívá a zda má vůbec cenu vyvíjet kolem něj tolik kladných i záporných emocí. Takže....
Co je to Java a jak vlastně vznikla?
V "Bílé knize jazyka JAVA" ("The JAVA language: A White Paper") charakterizuje SUN Javu jako:
jednoduchý, objektově orientovaný, distribuovaný, interpretovaný, robustní, bezpečný, na architektuře nezávislý, přenosný, vysoce výkonný, víceprocesní a dynamický jazyk.
Po této definici se zdá, že je vše jasné a není se o čem bavit ani dohadovat. Avšak jak Java vlastně vznikla? V pozadí jejího vývoje stojí programovací jazyk, určený pro tvorbu software pro spotřební elektroniku - proto je někdy Java nazývána "jazykem pro topinkovače". Požadavky na takovýto jazyk jsou nasnadě - musí pracovat na mnoha typech čipů, musí být velice spolehlivý a dostatečně jednoduchý. A tak si tým ve firmě SUN, který na jazyku od počátku pracoval brzo uvědomil, že existující jazyky, např. C++, nejsou k tomuto účelu vůbec vhodné, a zahájili vývoj úplně nového jazyka, známého zpočátku jako OAK (Dub).
Naštěstí pro Javu se kolem roku 1993 objevil na Internetu World Wide Web (WWW), který zcela změnil jeho tvář. A tehdy si vývojáři Javy uvědomili, že programovací jazyk, který skýtá všechny výhody Javy (platformová nezávislost, díky níž poběží na všech typech počítačů, k Internetu připojených atd.), je pro programování internetových aplikací ideální.
A tehdy tento tým vývojářů napsal první webový prohlížeč, který podporoval Java applety, což jsou malé části kódu, napsané v Javě a vložené do kódu jazyka HTML, což umožňuje vytvořit mnohem atraktivnější a pestřejší webové stránky. A právě prohlížeč HotJava demonstroval úžasnou sílu Javy úplně celému světu.
Samozřejmě že ihned poté byla Java licencována takovým firmám jako IBM, Microsoft, Netscape, Apple. A co vlastně znamená ono kouzelné, dálkami znějící slovíčko Java ?!? Prý se jedná o inspiraci vařenou kávou, která je označována anglickým termínem "Java". Ale také jsem se setkal s vysvětlením, že se jedná o zkratku z "Just Another Valueless Acronym" - "jen další bezcenný akronym" :-)
Na čem Java běží
Takže už víme, že Java je objektově orientovaný jazyk, který je nezávislý na platformě. Jen ještě dodejme, že se skládá z objektů (tříd), které obsahují různé metody, pomocí nichž objekty komunikují. (bližší vysvětlení viz. principy OOP). Ale jak je dosahováno oné magické a pro mnohé nepředstavitelné "hardwarové a platformové nezávislosti" ?
V principu se jedná o to, že zdrojový kód Javy není překládán do instrukcí toho kterého procesoru, ale do tzv. byte code - což je obecný binární soubor, obsahující bajtové kódy. A teprve tento soubor je posléze na jednotlivých platformách interpretován speciálním JVM - Java Virtual Machine - virtuálním strojem Javy, což je program, který instrukce z tohoto bajtového kódu rozebírá a překládá do instrukcí, jimž rozumí ten či onen konkrétní procesor. A jest zřejmé, že na rychlosti tohoto JVM záleží z větší části i rychlost běhu programu, napsaného v programovacím jazyce Java. A protože rychlost běhu aplikací je jedním z hlavních hesel dnešní doby, začaly vznikat JIT - Just In Time - kompilátory. Jejich princip spočívá v tom, že průběžně překládají bajtový kód jazyka Java do kódu daného procesoru, čímž se běh aplikace několikanásobně zrychlí.
Takovéto virtuální stroje jsou tedy samozřejmě součástí obou dnes nejrozšířenějších webových prohlížečů MS Internet Explorer i Netscape Navigator.
A o hardwarovém řešení v podobě procesorů, které budou rozumět jazyku Java, se uvažuje v podobě NC a je velice pravděpodobné, že se s jejich nasazením v nejbližší době setkáme.
Co dodat na závěr? Snad jen popřát Javě, aby utichly spory kolem její specifikace, aby se odtranila nejednotnost v názorech na "100% čistou Javu" a aby slavila přinejmenším stejné úspěchy jako doteď.