Kterak Google vypekl Sun a sebral mu Javu

Petr Krčmář 15. 11. 2007

Sun si svou Java platformu velmi bedlivě střeží a přestože ji vydává pod GNU GPL, má stále způsob, jak donutit prodejce mobilů platit za komerční licenci. Google je však očividně chytřejší než samotný Sun a podařilo se mu obejít celý systém. Vydal si mobilní Javu pod vlastní licencí. Jak to dokázal?

Java je otevřená…

Společnost Sun Microsystems vydala Javu jako open sourcevíce než před rokem. Měla k tomu v podstatě dva hlavní důvody. Jednak se tímto krokem chtěla více „skamarádit“ s open-source komunitou, chtěla ale také získat nové vývojáře, nápady a opravy pro svůj přední produkt.

Pod licencí GNU GPL je však vydána pouze Java Standard Edition. Otevřená Java je k dispozici pod názvem OpenJDK a licence GNU GPL verze 2 byla doplněna o Classpath doložku. Ta umožňuje proti knihovnám linkovat také kód vydaný pod jinými licencemi. Technicky je tak licence podobná GNU LGPL.

… ale ne úplně

Sun však vymyslel velmi chytrou taktiku, která mu umožňuje stále Javu kontrolovat. To byl během úvah o otevření asi největší problém. Totiž jak si stále udržet kontrolu a vydělávat i nadále na prodeji komerčních licencí.

Sun na to šel velmi šalamounsky a mobilní Javu vydal bez Classpath doložky. To znamená, že ji sice můžete využít, ale svůj kód musíte vydat také pod GNU GPL, protože je přímo založen na Java knihovnách. Využívá se při tom chytře virální podoba licence, která „infikuje“ i závislý kód.

Tímto chytrým krokem Sun způsobil dvě věci: V očích komunity je to jistě skvělý tah a vývojáři se zaradovali, že mají konečně vysněné kódy po ruce. Na druhou stranu to ale pro Sun znamená zajištění příjmů do budoucna. Komerční firmy (třeba výrobci mobilů) si raději zaplatí za jinou komerční licenci, aby mohly vyvíjet uzavřený software. Sun tak má nakonec jak nakloněné lidi z komunity, tak i peníze a kontrolu nad Javou.

Sun také jistým způsobem podpořil také projekt Harmony, který implementuje vlastní Javu pod licencí Apache. Harmony dostal od Sunu licenci na testovací nástroj TCK, který umožnil certifikovat Harmony jako plně kompatibilní prostředí.

Chytrý Google na scéně

Google nedávno oznámil, že připravuje vlastní platformu pro mobilní telefony. Ta bude založena na Linuxu a ponese název Android. To už víme, ale zajímavé je, že Android bude obsahovat mobilní Javu, vydanou pod licencí Apache License v2.

To samozřejmě zvedlo velkou vlnu zájmů a všichni (zřejmě včetně vás) se teď ptají: Jak je vůbec možné, že Sun licencoval něco takového? Vždyť to může velmi vážně ohrozit suverenitu jeho mobilní Javy na trhu. Odpověď je jednoduchá, ale o to víc překvapivá: Sun to nebyl.

Google si totiž pomohl sám a vtipně prokličkoval mezi licencemi Sunu, aniž by potřeboval jeho požehnání. Odpovědí na originální mobilní Javu je něco, čemu Google říká jednoduše Dalvik. Podle všeho to zřejmě bude nová noční můra společnosti Sun.

Java nejava

Dalvik je virtuální stroj, velmi podobný kolegům jako Java nebo .NET. Vytvořil jej však Google a uvolnil jeho zdrojový kód, aniž by se při tom musel někoho ptát. Otázkou sice je, co s tím Sun udělá a jak budou vypadat žaloby, které podá (pokud to udělá), ale v tuto chvíli je Dalvik venku a je k dispozici všem.

Celý trik však spočívá v tom, jak Dalvik funguje. Technicky vzato je plně kompatibilní s Javou, ale používá vlastní bytekód. Google ale netvrdí, že se jedná o Javu, nýbrž o jeho vlastní řešení. To, že je kompatibilní s Javou, je takový „bonus navíc“, který je ale přes nenápadný postoj Google naprosto zásadní.

Google tedy používá vlastní engine a k němu přidal knihovny ze zmíněného svobodného projektu Harmony. Tím zcela obešel licence Sunu, protože nepoužil žádný z jeho kódů. Nakonec tak může výsledek vydat pod licencí Apache, která uživatele nesvazuje svou virovostí.

Kompatibilita prostředí Java a Dalvik je zajištěna přímou konverzí bytekódu. Pokud chcete upravit program pro Dalvik, nejprve použijete klasický kompilátor Javy a vytvoříte binárku. Tu poté s pomocí Googlem dodávaného nástroje DX převedete do nového bytekódu. Program změní soubory .class a .jar na nové s příponou .dex. Výsledek už poběží na Androidu.

Z toho samozřejmě plyne několik zásadních výhod: Při vývoji pracujete s klasickou Javou včetně všech dostupných nástrojů a vyvíjíte, jak jste zvyklí. K samotné transformaci ale vůbec nepotřebujete zdrojové kódy a převést tak můžete i uzavřené projekty.

V důsledku tak vlastně Google vytvořil vlastní implementaci Javy, která ovšem z právního a technického hlediska vůbec Javou není a už vůbec není závislou na původním produktu firmy Sun. Nepodléhá tak žádným licenčním ujednáním stejnojmenné firmy. Převod programů je navíc natolik jednoduchý a bezproblémový, že nepředstavuje významnou překážku v nasazení.

Co na to Sun?

Veselé však na celé věci je, že Sun může jen nečinně přihlížet a sledovat, jak mu někdo bere vítr z plachet. Mohl by této situaci teoreticky předejít, pokud by měl patent na standardní Java knihovnu, ale on jej nemá. I tak je ovšem otázka, jak by jej byl schopen aplikovat proti něčemu, co vlastně ani s jeho programem (tedy onou knihovnou) není kompatibilní, natož aby jej někdo vykrádal.

Je samozřejmě možné, že se firma obrátí na soud s tím, že Google zneužil jejího intelektuálního vlastnictví. To je ale běh na dlouhou trať a v tuto chvíli je dost těžké odhadnout, jaká je jeho šance na úspěch.

Sun má totiž stále ještě možnost napadnout koncové uživatele Dalviku. Licence Apache totiž umožňuje licencovat intelektuální vlastnictví a poskytnout jej dalším uživatelům, ale licenci lze aplikovat jen na to IP, které vlastníte. Takže by mohl Sun teoreticky postupně obcházet uživatele (výrobce telefonů) a chtít po nich platbu za licence.

Ve výsledku však Sunu vznikla velmi silná konkurence, kterou nemá jak ovládat a která zároveň nahrává do karet výrobcům mobilních zařízení. Ti si totiž mohou říci „mám platit Sunu za komerční licenci nebo sáhnout po Dalviku, který umí totéž a zadarmo“. Zřejmě si to proto nenechá líbit.

Google přechytračil Sun

Ať už se Sun zachová jakkoliv, je zřejmé, že Google převezl licenčně Sun a vytvořil odvozený produkt, který vlastně zároveň odvozený není a ani není možné prokázat jeho přímou kompatibilitu. Dalvik má proto jistě šanci na úspěch a mohl by tak Sunu odlákat určitou skupinu platících uživatelů. Je navíc názorně vidět, že i svoboda může být svobodnější.


Článek vychází z anglického originálu, jehož autorem je Stefano Mazzocchi.

Ohodnoťte jako ve škole:

Průměrná známka 2,52

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
DigiZone.cz: Změní se veřejnoprávní status ČT?

Změní se veřejnoprávní status ČT?

DigiZone.cz: Šlágr TV: pokuta 100 tisíc za on-line

Šlágr TV: pokuta 100 tisíc za on-line

120na80.cz: Poznáte, který z léků je pravý?

Poznáte, který z léků je pravý?

120na80.cz: Tady se vaří padělané léky

Tady se vaří padělané léky

Vitalia.cz: Tři sta kilogramů tuňáka obsahovalo histamin

Tři sta kilogramů tuňáka obsahovalo histamin

Vitalia.cz: Dnešní patolog o mrtvolu téměř nezavadí

Dnešní patolog o mrtvolu téměř nezavadí

120na80.cz: 5 triků, jak zastavit krvácení po holení

5 triků, jak zastavit krvácení po holení

Vitalia.cz: Sója a rakovina

Sója a rakovina

Podnikatel.cz: Myšlenky Henryho Forda. Berte je za své

Myšlenky Henryho Forda. Berte je za své

120na80.cz: Co jí dělá? Sklerotizaci

Co jí dělá? Sklerotizaci

DigiZone.cz: Šlágr TV dostala pokutu 100 000 Kč

Šlágr TV dostala pokutu 100 000 Kč

DigiZone.cz: Konec geoblokace online médií?

Konec geoblokace online médií?

Lupa.cz: Schváleno: Rockaway může převzít Heureku

Schváleno: Rockaway může převzít Heureku

Root.cz: Zákon o hazardu je v rozporu s ústavou

Zákon o hazardu je v rozporu s ústavou

Vitalia.cz: Před, nebo po snídani? Kdy je lepší čistit si zuby

Před, nebo po snídani? Kdy je lepší čistit si zuby

Podnikatel.cz: Alza radí e-shopům, jak opustit Heureku

Alza radí e-shopům, jak opustit Heureku

Lupa.cz: Válka e-shopů. Alza končí s Heurekou

Válka e-shopů. Alza končí s Heurekou

120na80.cz: 10 nej přípravků na holení

10 nej přípravků na holení

DigiZone.cz: Mafra varuje před stíháním za pomluvu

Mafra varuje před stíháním za pomluvu

120na80.cz: 10 dezinfekcí: Vede „starý dobrý“ peroxid

10 dezinfekcí: Vede „starý dobrý“ peroxid