Hlavní navigace

Java jako open source: sen se stává realitou

Petr Krčmář 9. 11. 2006

Společnost Sun Microsystems, která vytvořila a vyvíjí Javu, je už mnoho let přímo bombardována požadavky na otevření celého software a uvolnění kódů pod open-source licencí. Nyní byly prosby konečně vyslyšeny a velmi brzy se dočkáme open-source Javy. Co nám to přinese? Budou všichni konečně spokojeni?

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 Li­cense, 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.

Anketa

Co se po vydání pod GNU GPL změní?

Našli jste v článku chybu?

14. 11. 2006 9:14

Ono se ukazuje, že je škoda, že Java není nějakým rozumným způsobem standardizována. Pokud by byla, tak by můj příklad se Stringem byl samozřejmě správný. Já bych totiž napsal program, ve kterém bych použil String, tuto třídu však nemusím na svém počítači ani mít, stačí mi pouze znalost rozhraní (v případě rozumné standardizace Javy by to rozhraní bylo přesně popsáno). Jak se bude program spouštět, tj. zda bude JRE a příslušné knihovny pod GPL či ne, mě nemusí zajímat.

Mimochodem, p…

13. 11. 2006 9:25

Ano, myslel jsem to právě s ohledem na API. Vždyť já můžu (teoreticky) vyvinout SW v Javě bez toho, abych měl k dispozici tu třídu, například String. Linkování proběhne až při běhu na straně klienta a v tomto případě bude jedno, zda půjde o java.lang.String vytvořenou pod GPL, LGPL či nějakou komerční licencí (jak to vlastně děláme dneska se Sunovskou Javou).

Samozřejmě otázkou je, jakým způsobem bude Sun vydávat svoji verzi Javy. Pokud k ní dodá i dokumentaci, není problém knihovnu se stejnou …

Lupa.cz: Propustili je z Avastu, už po nich sahá ESET

Propustili je z Avastu, už po nich sahá ESET

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: ČRo rozšiřuje DAB do Berouna

ČRo rozšiřuje DAB do Berouna

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Podnikatel.cz: Víme první výsledky doby odezvy #EET

Víme první výsledky doby odezvy #EET

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Měšec.cz: Finančním poradcům hrozí vracení provizí

Finančním poradcům hrozí vracení provizí

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

Vitalia.cz: „Připluly“ z Německa a možná obsahují jed

„Připluly“ z Německa a možná obsahují jed

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Podnikatel.cz: Babiše přesvědčila 89letá podnikatelka?!

Babiše přesvědčila 89letá podnikatelka?!

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Lupa.cz: Avast po spojení s AVG propustí 700 lidí

Avast po spojení s AVG propustí 700 lidí

Podnikatel.cz: Na poslední chvíli šokuje vyjímkami v EET

Na poslední chvíli šokuje vyjímkami v EET

Vitalia.cz: 9 největších mýtů o mase

9 největších mýtů o mase

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Lupa.cz: UX přestává pro firmy být magie

UX přestává pro firmy být magie