Tíz évvel azután, hogy az Oracle először perelte be a Google-t az Android platform kódja miatt, a két technológiai óriás végül a Legfelsőbb Bíróságon néz szembe egymással. Azóta három perre és két fellebbezésre került sor. Dollármilliárdok forognak kockán; valószínűleg sok millió dollárt költöttek tapasztalt pereskedők, szakértő tanúk és bizarr tárgyalási tárgyak felvonultatására, amelyek célja a programozás elmagyarázása a nem műszaki beállítottságú esküdteknek. Mindez szerda reggel antiklimatikus véget érhet, a Legfelsőbb Bíróság távkonferencián tartott szóbeli tárgyalásán, egy járvány közepén.
Amikor a Google először fejlesztette ki az Androidot, úgy döntött, hogy a mobilplatformot kompatibilissé teszi a Javával. Abban az időben az iOS-környezetre szánt alkalmazásokat Objective-C-ben írták, egy olyan nyelven, amely hasonló volt a mindenütt elterjedt C-hez, de egyébként nagyjából csak az iOS-alkalmazások fejlesztésével összefüggésben használták. Az Apple jelentős előnnyel rendelkezett a mobiliparban.
A Google célja az volt, hogy az Androidot versenyképessé tegye azáltal, hogy a platformot interoperábilissá teszi a Javával, egy népszerű, erős fejlesztői közösséggel rendelkező programozási nyelvvel. Ennek érdekében a vállalat számos Java API-t implementált újra, köztük azt a 37-et, amelyről a perben szó van. Az Oracle és a Google számára a per arról szól, hogy az Oracle – amely a Java Standard Edition tulajdonosa – most jogosult-e az Android egy darabjára, több milliárd dollár értékben. Mindenki más számára a per arról szól, hogy a nyelvi kompatibilitás egyenértékű-e a szerzői jogok megsértésével.
Elmondhatni, más volt a világ, amikor az ügyet először benyújtották. Mindkét vállalat gazdát cserélt – a per akkor kezdődött, amikor Larry Ellison még az Oracle élén állt, Eric Schmidt pedig a Google vezérigazgatója volt. A Google ma már az Alphabet leányvállalata. Az Android a 11. verziónál tart. Az egyetlen dolog, ami úgy tűnik, nem változott, az a Java mint programozási nyelv népszerűsége.
A Szilícium-völgytől távol azonban olyan változások zajlottak, amelyek sokkal többet jelentenek, mint csupán 6 milliárd dollár és a szerzői jog jövője. Három legfelsőbb bírósági hely üresedett meg azóta, hogy a Google legutóbb kérte a legfelsőbb bíróságot, hogy vizsgálja felül az ügyét. 2014-ben a SCOTUS elutasította a certiorarit, és visszaküldte az ügyet a San Franciscó-i kerületi bírósághoz újratárgyalásra. Azóta egy bíró nyugdíjba vonult, kettő pedig elhunyt – legutóbb Ruth Bader Ginsburg bíró.
A Ginsburg örökségének abszolút legkevésbé fontos része, hogy ő volt a legmegbízhatóbb szavazó a szerzői jogi ügyekben, hajlamos volt a jogtulajdonosok javára szavazni. Az ő elvesztése azt is jelenti, hogy a Google kontra Oracle ügyet nyolc bíró tárgyalja, és ezért hajlamos a megosztott bíróságra. (Az 1996-os Lotus kontra Borland szoftverjogvédelmi ügyben a nyolc bíróból álló bíróság egyformán megosztott volt, és nem tudott nemzeti precedenst teremteni).
Amikor a Google kontra Oracle ügy 2010-ben elkezdődött, hét szabadalom mellett egy szerzői jogi igényt is érintett; 2012-re az ügyet mindössze 37 Java API-ra szűkítették le, amely körülbelül 11 500 kódsorból állt. (Becslések szerint az Android körülbelül 12 millió sornyi kódot tartalmaz.) A szóban forgó 11 500 sornyi kódot egy “tiszta szobában” írták, egy olyan projektben, amely elkülönült a meglévő kódtól, amelyet visszafejtettek. Ez a mérnöki bravúr akkor vált szükségessé, amikor a Google és a Sun Microsystems – amely a Java platform tulajdonosa volt – közötti tárgyalások kudarcba fulladtak. Az Oracle 2010 elején felvásárolta a Sun-t. Augusztusra beperelte a Google-t.
Az alkalmazásprogramozási interfész (API) ebben az összefüggésben a szoftverprogramozásban jól meghatározott interakciók gyűjteménye. Ez egy rövidítés a szolgáltatások, könyvtárak és egyéb funkciók gyors elérésére. Egy API sűrítheti a gyakran használt vagy terjedelmes kódot, lehetővé téve a programozók számára, hogy anélkül építsenek, hogy újra fel kellene találniuk a kereket.
Az API nem egészen egy szótár, de elég közel áll hozzá ahhoz, hogy az Oracle kontra Google hatalmas problémát jelentsen. Technikailag lehet Java nyelven programozni anélkül is, hogy a szóban forgó 37 Java API csomagot használnánk. De valószínűleg semmi hasznosat nem írna, mivel ezek az API-k magukban foglalják a java.lang és a java.util csomagokat, olyan alapvető csomagokat, amelyek olyan funkciókat kínálnak, mint a matematika elvégzése vagy a dátumok és időpontok ábrázolása. Technikailag meg tudom írni ezt a cikket metaforák és hasonlatok nélkül is, de ezt nem szeretném megtenni, és senki sem szeretné elolvasni.
Azért, hogy világos legyen, a 37 Java API-t egy tiszta szobában implementáltuk újra. Az Oracle nem azt állítja, hogy szó szerint ugyanazok, hanem azt, hogy az API-k “felépítése, sorrendje és szervezése” annyira hasonló, hogy az sérti a szerzői jogokat. Ez alatt azt érti, hogy az API-kban szereplő csomagok, osztályok és módszerek elnevezése megegyezik. Egy Java Standard Editionre írt kódsor nem feltétlenül fog futni az Androidon, de sokkal közelebb fog kerülni hozzá, mint egyébként.
A legelső peres eljárás 2012-ben két részre osztott tárgyalást eredményezett – az egyik tárgyalás a szabadalmi követelésekre, a másik pedig csak a szerzői jogi követelésekre vonatkozott. A szabadalmi perben az esküdtszék úgy döntött, hogy a Google nem sértett meg egyetlen szabadalmat sem. A szerzői jogi perben két külön jogi kérdés volt a vita tárgya: először is az, hogy az API-k kódja és “szerkezete, sorrendje és szervezése” szerzői jogi védelem alá esik-e; másodszor pedig az, hogy a Google általi felhasználás tisztességes felhasználásnak minősül-e. A bíró a szerzői jogi védettség kérdésében döntött, a tisztességes felhasználás kérdését pedig az esküdtszék elé utalta.
Az esküdtszék nem döntött a tisztességes felhasználás kérdésében. A bíró – aki véletlenül hobbiból kódot írt – azonban úgy döntött, hogy az API-k deklarációs kódja és SSO-ja végül is nem tartozik a szerzői jog hatálya alá. A szerzői jogi törvény nem vonatkozik semmilyen “ötletre, eljárásra, folyamatra, rendszerre, működési módszerre”, és az a mód, ahogyan a csomagok, osztályok és módszerek elnevezése és rendezése történt, túlságosan funkcionális volt ahhoz, hogy szerzői jogi védelemre érdemesnek lehessen tekinteni.
Ezt a konkrét döntést a Federal Circuit 2014-ben hatályon kívül helyezte. Mivel az első esküdtszék a tisztességes felhasználás kérdésében nem tudott dönteni, 2016-ban egy teljesen új esküdtszéket kellett összehívni a tisztességes felhasználásról szóló újabb tárgyalásra. Az esküdtszék a Google mellé állt.
De 2018-ban a Federal Circuit – ugyanaz a fellebbviteli bíróság, amely 2014-ben visszaküldte az ügyet az esküdtszék elé – úgy döntött, hogy az esküdtszék ítéletét hatályon kívül kell helyezni az Oracle javára, mivel a tárgyaláson bemutatott bizonyítékok egyértelműen arra utaltak, hogy nem lehetett tisztességes felhasználást megállapítani, és ezért eleve nem lett volna szabad esküdtszék elé kerülnie.
Az esküdtszéki ítélet hatályon kívül helyezése a Big Judge Energy olyan módon, amely minden bizonnyal ellentmondásos lesz a Legfelsőbb Bíróság számára, és valószínű, hogy a szerdai szóbeli tárgyaláson sok vita fog zajlani a bíró és az esküdtszék szerepéről egy szerzői jogi ügyben. Az a kérdés, hogy ki és mikor dönthet a tisztességes felhasználásról, olyasmi, ami számos különböző jogi esetre kivetíthető (amit a SCOTUS imád), és aminek semmi köze a matematikához (amit a SCOTUS nem szeret).
Az ügy igazi szíve sajnos a matematikával és hasonlókkal kapcsolatos részben rejlik. A Legfelsőbb Bíróság döntése a Google kontra Oracle ügyben hatalmas következményekkel járhat a szoftveriparra nézve, a legfontosabb, hogy a Legfelsőbb Bíróság újra megvizsgálhatja a szerzői joggal kapcsolatos kérdést – azt a kérdést, hogy a Java API-k deklarációs kódja és szerkezete, sorrendje és szervezése egyáltalán a szerzői jog hatálya alá tartozik-e -, amely 2014 óta nem volt játékban.
A Google és az Oracle közötti évtizedes viszálykodás nem teljesen racionális. A Java API-k Google általi újraimplementálása egy hosszú iterációs hagyomány része, amelyet eddig többnyire természetesnek vettek. Az olyan termékek, mint az Oracle saját MySQL-je az IBM SQL-jének iterációjaként jöttek létre.
Ez nem azt jelenti, hogy a másolópasztázás a Szilícium-völgy szíve. De van egy pont, amikor az ember inkább arra akarja ösztönözni a dolgokat, hogy ugyanúgy nézzenek ki, mint arra, hogy a különbözőség kedvéért különbözzenek. Durván fogalmazva: a kódolás a géphez való beszéd folyamata. De nagyon kevés ember, aki manapság szoftvert fejleszt, beszél közvetlenül a géphez. A szoftverek rétegről rétegre ismétlődő rétegekben léteznek, suttogások játéka, amely végül eljut a számítógép csupasz fémjéhez. Új nyelvek származnak a régiekből; új könyvtárak épülnek a meglévőkre; függőségek rakódnak egymásra, mint egy Jenga-játék, amely bármelyik pillanatban véget érhet. A Google kontra Oracle ügy pedig egy folyamatban lévő Jenga-játék egyik legalacsonyabb szintjén zajlik.
Most kiderül, hogy a Legfelsőbb Bíróság tudja-e ezt.
Korrekció: A cikk egy korábbi verziója tévesen állította, hogy az Android kódbázis több milliárd sornyi kódot tartalmaz. Ez milliós nagyságrendű. Sajnáljuk a hibát.