Rok příprav
Je to téměř přesně rok, kdy se začalo spekulovat o uvolnění Javy jako open-source software. V té době ovšem ještě nebyly k dispozici oficiální informace a skutečně se o tom spíše „šeptalo v zákulisí”.
Po několika měsících ovšem Sun vyložil karty na stůl a potvrdil své plány. Detailní informace se ovšem objevily ještě později a Sun zveřejnil zvolenou licenci – GNU GPL. To bylo pochopitelně velké překvapení pro všechny příznivce svobodného software, kteří hromadně zajásali.
Sun ovšem také přiznal, že je vázán řadou komplikovaných smluv a licencí a celá práce na svobodné Javě bude trvat minimálně několik měsíců. Plány hovoří o vydání open-source Javy v roce 2007.
Open-source Java je tady
Sun skutečně svůj slib dodržel a v úterý 8. května 2007 oznámil, že předal 6,5 milionů řádek kódu Javy do správy projektu OpenJDK. Podle Sunu se jedná o plně sestavitelnou implementaci JDK.
Konkrétně Sun vydal vývojářskou verzi JDK 7. V současné době tato verze proti JDK 6 přináší především opravy chyb a několik drobných vylepšení. Ostré vydání později nabídne další inovace a funkce.
Konkrétně jsou k dispozici následující části JDK (ponechán původní anglický název):
- Core libraries
- Networking libraries
- Security libraries
- Serviceability libraries
- Internationalization libraries
- 2D graphics subsystem
- AWT, the Abstract Windowing Toolkit
- Swing GUI toolkit
- Sound subsystem
- různé nástroje jako JConsole a javadoc
Licence
Zmíněné části jsou v současné době k dispozici pod neupravenou licencí GNU GPL 2. Navíc ovšem doplněnou o takzvanou Classpath výjimku, která umožňuje proti knihovnám linkovat také ne-GPL kód. Technicky se tak jedná o licenci velmi podobnou LGPL, ale Sun se rozhodl pro klasickou GNU GPL doplněnou o tuto klausuli.
Nyní je Java k dispozici pod GNU GPL verze 2, to se ale může do budoucna změnit. Sun se totiž nebrání ani GNU GPL 3 a je ochoten pod ní vydat nejen Javu, ale časem dokonce i Solaris.
Sun ovšem Javu hodlá i nadále vydávat pod několika licencemi. I do budoucna tak zůstane například verze pod CDDL nebo komerční varianta vycházející z GPL verze.
Společnost také zveřejnila důvody, které ji vedly právě k volbě GPL a ne třeba BSD licence. Výsledkem by mělo být:
- širší přijetí Javy například distribucemi GNU/Linuxu
- snížení rizika nekompatibilních forků
- získání nových vývojářů napříč open-source komunitou
- ochrana investic těch, kteří podporují Java platformu
Sun k problematice také napsal: „Po analýze a konzultaci s experty jsme se rozhodli zvolit GNU GPL 2 + Classpath výjimku, protože nejlépe splňuje tyto požadavky. Víme, že volba nebude vyhovovat každému, ale věříme, že dává stejná práva Sunu i vývojářům.”
Ne vše je otevřeno
Bohužel v tuto chvíli není možno otevřít naprosto celou Javu. Některé konkrétní části jsou zatíženy licencemi třetích stran a Sun nemá právo je pod GPL vydat. Nebylo blíže specifikováno, jak velká část Javy to je, ale podle dostupných informací se jedná jen o poměrně malé procento knihoven.
Konkrétně by většinu této prozatím uzavřené části měly tvořit knihovny pro 2D grafiku, rasterizaci fontů a podporu zvuku. Ty jsou nyní k dispozici jako samostatné binární moduly a je možné je k OpenJDK přidat.
Sun se podle svých slov bude snažit situaci vyřešit co možná nejrychleji. V první řadě bude tlačit na dodavatele zmíněných součástí, aby umožnili vydání pod svobodnou licencí. V případě, že se mu nepodaří situaci zvrátit, nastoupí vývojáři. Ti by měli napsat kód znovu tak, aby bylo možno jej svobodně licencovat.
V současné době už existují svobodné náhrady, zatím však nedosahují dostatečných kvalit a nenabízejí všechny potřebné funkce. Nejsou proto vhodnou náhradou za uzavřený kód.
Spokojený je i Stallman
Také Richard Stallman je otevřením Javy velmi potěšen a vyzdvihl vhodnou volbu licence. „Děkuji Sunu za vydání kódu JDK jako svobodného software pod licencí, která respektuje naše práva,” řekl Stallman.
Zdůraznil ovšem, že je potřeba dořešit uzavřené části. „Jen jediná překážka brání osvobození JDK a odzbrojení Java Pasti: některé nesvobodné kódy. Komunita svobodného software a Sun musejí spolupracovat, aby tento kód nahradily.”