Google migrira Android na OpenJDK

Mandi

30. dec 2015 ob 15:02:31

Prihajajoča različica Androida (N — najverjetneje Android Nutella oz. Android Nougat ☺), ki bo nasledila oktobra predstavljeni 6.0 Marshmallow, bo namesto Googlove lastne implementacije Jave (Dalvik) uporabljala kar Oraclovo odprtokodno (GPL 2) različico, OpenJDK. Commit 8902 datotek OpenJDK-jeve izvorne kode v Googlov Android GIT repozitorij je bil opravljen že slaba dva meseca nazaj (pripravljen pa že februarja letos), vendar Google takrat te poteze ni kaj posebej komentiral. Na Hacker News se je takrat precej špekuliralo o razlogih za potezo. Googlovi PR-ovci so te dni premik tudi uradno potrdili, ter dodali, da je bil izveden zato, da bo olajšano delo tako Android razvijalcem (uporabljali bodo isti Java stack za mobilni in siceršnji razvoj) kot tudi njim, saj bodo lahko zdaj vse napore za nadaljnji razvoj Jave usmerili v projekt OpenJDK.

Pri tem je pomenljivo, da se Google v svoji uradni izjavi ni prav v ničemer dotaknil še vedno tekočega pravnega spora med Oraclom in njimi glede pravice uporabe Javanskega API-ja v Dalviku. O tem sporu smo sicer že precej spisali. Java namreč sestoji iz dveh delov - iz specifikacije v obliki dobro dokumentiranega vmesnika za programerje (API-ja - ki definira vmesnike, metode in njihovo delovanje), ter iz implementacij, ki izvedejo ta API. Implementacij je več - Oracle sam ponuja dve, eno zaprto in eno odprto (OpenJDK), Google ima Dalvik, potem pa so oz. so bile še številne druge odprtokodne oz. zaprtokodne implementacije. Tudi Microsoft je npr. pred leti imel eno. Spor med Oraclom in Googlom se vrti okoli tega, da je Google svojo implementacijo l. 2007 pripravil in izdal brez uradne licence od takratnega lastnika Jave, podjetja Sun. Oracle je po svojem nakupu Suna l. 2010 kot tapravo zaprtokodno podjetje zahteval, da Google pridobi licenco in plača pripadajočo licenčnino za avtorske pravice na Javanskih API-jih oz. za patente na določene v njih vsebovane metode. Google je zahtevek zavrnil, trdeč, so patenti šrot in da API-ji ne morejo biti predmet avtorskopravne zaščite, ker so preveč ključni za delovanje celotne softwerske branže. Sodišče jim je pritrdilo, nakar je instanca to odločitev razveljavila, in začelo se je novo sojenje, ki je podobno kot saga med Applom in Samsungom razkrilo številne zakulisne podrobnosti. Oracle je na koncu zmagal in dosegel sodbo v smislu, da je API lahko avtorsko zaščiteno delo. Google je odgovoril s peticijo za obravnavo pred ameriškim Vrhovnim sodiščem, ki pa jih ni bilo pripravljeno uslišati. Spor se zdaj nadaljuje s presojo, ali je bila Googlova raba Javanskih API-jev, čeprav so ti zaščiteni, vseeno dopustna v okviru pravice do proste uporabe, in če, v katerem obsegu. Odločitev, če bo, bo gotovo zelo pomembna za celotno branžo, saj bi v primeru Oraclove zmage avtorjem API-jev dovoljevala izjemno močan nadzor tako nastalih ekosistemov.

V tem smislu obstaja upravičen strah, da se Google nadeja poraza in da želi torej z migracijo prihajajočih različic Androida na uradno Oraclovo javo omejiti prihajajoči odškodninski zahtevek Oracla zaradi skoraj 10-letne nelicencirane rabe javanskih API-jev. To je seveda najslabši možni scenarij. Bistveno bolje bi bilo, če bi se podjetji poravnali in pustili vprašanje oprto za kak drug dan.