Trocha historie
Základy Javy byly položeny už v roce 1991, kdy James Gosling začal pracovat na projektu Oak (česky Dub). První veřejná verze Javy 1.0 byla ale vydána až o čtyři roky později, tedy v roce 1995.
Cílem Goslinga bylo vytvořit virtuální běhové prostředí a samostatný programovací jazyk, který by byl velmi podobný jazyku C, ale byl by zároveň jednotnější a přehlednější.
Java se začala záhy rozšiřovat, velmi rychle ji přijaly například webové prohlížeče a další aplikace. Hlavní výhodou proti staticky kompilovaným jazykům je a byla multiplatformnost napsaných aplikací. V souvislosti s touto vlastností se velmi často používá zkratka WORA, která znamená „Write Once, Run Anywhere”. Do češtiny bychom to mohli přeložit jako „Napiš to jednou, poběží všude”.
Projekt od počátku spravuje společnost Sun Microsystems. Ta se v roce 1997 pokusila o standardizaci celé Javy v rámci ISO/IEC standardů. Nakonec od celého procesu upustila. I přesto je Java de facto průmyslovým standardem.
Otázka kompatibility
Sun se z pochopitelných důvodů úzkostlivě snaží udržet Javu maximálně kompatibilní. Požadavek, aby Java byla vždy Java, je důležitý zejména kvůli WORA, ale také kvůli jednotnému přístupu všech vývojářů, kompatibilitě knihoven a podobně.
Licence Javy jako takové nutí všechny implementátory udržovat tuto kompatibilitu. Sun kvůli tomu dokonce vyvolal oficiální spor s Microsoftem. Předmětem sporů byla některá rozhraní Javy, které Microsoft ve své implementaci nepodporoval, a také funkce, které si naopak svévolně přidal.
Tím se staly obě implementace (Sunu i Microsoftu) částečně nekompatibilními. Spor se nakonec dostal až před soud, který dal za pravdu Sunu. Ten dostal jak finanční odškodnění ve výši 20 milionů USD (kurzy), tak i morální satisfakci ve formě příkazu, který nutil Microsoft zavést potřebné úpravy vzhledem k licenci.
Odpovědí Microsoftu bylo nakonec stažení Javy z novějších verzi MS Windows. Nyní tedy již součástí instalace není microsoftí implementace Javy.
Aktuální licence
V současné době je Java k dispozici pod licencí Sun Community Source License. Tato licence je určena komerčním subjektům a využívají ji například IBM a Oracle. Existuje ještě speciální varianta této licence nazvaná Java Research License. Jejím účelem je podpořit vývoj v akademické sféře.
Licence Javy je už velmi dlouho považována za problematickou, protože je příliš přísná a naprosto nesvobodná. Licence například zakazuje jakékoliv šíření úprav provedených na kódu a podobně.
Existuje ovšem mnoho vývojářů, kterým právě tato licence vyhovuje. Nejčastěji uváděným kladem je sjednocenost Javy, kterou neruší volně vytvářené větve a odnože.
Hlasy odpůrců ovšem zaznívají také velmi hlasitě. Problémy vytváří licence například ve světě svobodného software. SCSL nebyla nikdy oficiálně uznána OSI, takže se v pravém slova smyslu nejedná ani o open-source, natož o svobodný software. Není proto divu, že Java nemůže být zařazena do mnoha distribucí (například Debian), nemůže být distribuována s řadou projektů a podobně.
Sám Sun se velmi často s ohledem na licenci ohání právě odmítavým postojem ke štěpení vývoje, které by mohlo být otevřením zdrojových kódů (ve smyslu open-source licence) způsobeno.
Na druhé straně je ovšem početný zástup open-source vývojářů, kteří nejsou schopni nesvobodnou licenci celého prostředí překousnout a odmítají vyvíjet v Javě open-source projekty. Problémem je jednak uzavřenost jejího vývoje, ale také nedostupnost Javy v běžných distribucích.
Mnoho odborníků také tvrdí, že otevření Javy by přineslo výrazné urychlení vývoje a umožnilo by rychleji implementovat nové a zajímavé technologie.
Sun v květnu roku 2006 připravil speciální licenci nazvanou Operating System Distributor's License, která umožňuje výrobcům distribucí zařadit Javu mezi balíčky.
Co s licencí dál
První seriózní informace o otevření Javy se objevily v červnu roku 2006. Tehdy Simon Phipps řekl, že by k otevření Javy mělo dojít během pouhých několika měsíců. Naznačil také problémy, které je potřeba dořešit, zejména ty s kompatibilitou nových implementací, které by mohly vzniknout.
„Udržet oba tyto rozměry kompatibility je naprosto nutné, protože trh okolo Javy je ohromným a otevřeným trhem, kde mnoho společností slouží dalším společnostem,” řekl v červnu Simon Phipps.
Konkrétní informace se pak objevily o čtyři měsíce později, přesněji na konci října. Vice president Sunu Rich Green skutečně potvrdil snahu Sunu vydat Javu pod open-source licencí. Stát by se tak podle Greena mělo během několika měsíců. Hlavní části Java SE by měly být k dispozici ještě do konce roku 2006, další části JDK se pak objeví v první části roku 2007.
Výběr licence
Většina pozorovatelů předpokládala, že Sun uvolní kód pod svou vlastní open-source licencí CDDL. Tato licence je založená na Mozilla Public License a vyvinul si jí sám Sun. OSI ji v roce 2004 uznala jako oficiální open-source licenci. Bohužel tato licence není kompatibilní s GNU GPL.
Nakonec přišlo překvapivé oznámení, že se Sun rozhodl pro zveřejnění kódů pod GNU GPL.
Každopádně nebude zveřejněno sto procent všech kódů. Některé totiž vycházejí z práce třetích stran a Sun nemá svolení k jejich uvolnění pod GPL. Většina kódu ale uvolněna bude.
Budoucnost Javy?
Otázka otevření Javy mnoho uživatelů potěšila, jiní se ale obávají budoucích potíží. S oznámením vydání pod GNU GPL otazníků ještě přibylo. Je jasné, že se bude jednat o veliký milník v životě Javy. Otázkou zůstává, kam nová cesta povede.
Volba GNU GPL se může na první pohled zdát nesmyslná, především s ohledem na tříštění implementací. Když se ale nad problémem zamyslíme do hloubky, zjistíme, že je to velmi promyšlený krok.
Volba licence naprosto zamezuje vzniku uzavřených a komerčních implementací. Zároveň budou k dispozici kódy všech odvozených výtvorů. Jakékoliv úpravy tak budou moci být později začleněny do originálního vývojového stromu.
Tím, že Sun zvolil velmi otevřenou licenci GNU GPL, tak automaticky zabrání vzniku nekompatibilních uzavřených odvozenin, které si nikdo nepřeje. Je tak pravděpodobné, že bude nastartován velmi intenzivní proces nového vývoje.
Je zřejmé, že samostatné verze Javy vzniknou. Otázka je, kolik jich přežije a přinese skutečně zásadní změny, které zaujmou uživatele. Pokud se takové úpravy objeví, určitě budou zajímavé i pro Sun, a ten je zřejmě začlení do oficiálního stromu. Ten bude jistě existovat i nadále a drtivá většina uživatelů i vývojářů bude pro přípravu a provoz svých projektů stejně používat oficiální balíky Sunu.