Deset let poté, co společnost Oracle poprvé zažalovala Google kvůli kódu v platformě Android, se oba technologičtí giganti konečně střetli u Nejvyššího soudu. Od té doby proběhly tři soudní procesy a dvě odvolání. V sázce jsou miliardy dolarů; mnoho milionů bylo pravděpodobně vynaloženo na přehlídku zkušených právníků, soudních znalců a bizarních soudních důkazů, které mají vysvětlit programování netechnickým porotám. To vše se možná ve středu ráno antiklimaticky uzavře telekonferenčním ústním jednáním Nejvyššího soudu uprostřed pandemie.
Když společnost Google poprvé vyvinula systém Android, rozhodla se, že mobilní platforma bude kompatibilní s Javou. V té době se aplikace pro prostředí iOS psaly v jazyce Objective-C, který byl podobný všudypřítomnému jazyku C, ale jinak se používal v podstatě jen v souvislosti s vývojem aplikací pro iOS. Společnost Apple měla v oblasti mobilních aplikací značný náskok.
Google se snažil učinit platformu Android konkurenceschopnou tím, že ji učinil interoperabilní s Javou, populárním programovacím jazykem se silnou komunitou vývojářů. Za tímto účelem společnost reimplementovala několik rozhraní API Javy, včetně 37, která jsou předmětem žaloby. Pro Oracle a Google je předmětem žaloby otázka, zda má Oracle – který vlastní Java Standard Edition – nyní nárok na část Androidu v hodnotě miliard dolarů. Pro všechny ostatní je žaloba o tom, zda se kompatibilita jazyka rovná porušení autorských práv.
Přinejmenším v době podání žaloby to byl jiný svět. Obě společnosti změnily majitele – žaloba začala v době, kdy byl Larry Ellison ještě v čele společnosti Oracle a Eric Schmidt byl generálním ředitelem společnosti Google. Google je nyní dceřinou společností společnosti Alphabet. Android je ve verzi 11. Jediné, co se zřejmě nezměnilo, je popularita Javy jako programovacího jazyka.
Daleko od Silicon Valley však došlo ke změně, která zahrnuje mnohem více než pouhých 6 miliard dolarů a budoucnost autorského práva. Od doby, kdy Google naposledy požádal nejvyšší soud o přezkoumání svého případu, se uvolnila tři místa u Nejvyššího soudu. V roce 2014 SCOTUS zamítl certiorari a poslal případ zpět k okresnímu soudu v San Francisku k novému projednání. Od té doby odešel jeden soudce do důchodu a dva zemřeli – naposledy soudkyně Ruth Bader Ginsburgová.
Absolutně nejméně důležitou součástí odkazu Ginsburgové je to, že byla nejspolehlivějším hlasem v případech týkajících se autorského práva a měla tendenci hlasovat ve prospěch držitelů práv. Její ztráta také znamená, že případ Google v. Oracle projednává osm soudců, a je tedy náchylný k rozdělení soudu. (V případu Lotus v. Borland týkajícím se autorských práv k softwaru z roku 1996 se soud složený z osmi soudců rozdělil rovnoměrně a nebyl schopen vytvořit národní precedent).
Když případ Google v. Oracle v roce 2010 začal, týkal se sedmi patentů a také nároku na autorská práva; v roce 2012 byl případ zúžen na pouhých 37 rozhraní API jazyka Java, které tvořilo přibližně 11 500 řádků kódu. (Odhady hovoří o 12 milionech řádků kódu systému Android.) Těchto 11 500 řádků kódu bylo napsáno v „čisté místnosti“, v projektu odděleném od existujícího kódu, který byl předmětem reverzního inženýrství. Tento inženýrský výkon se stal nezbytným, když selhala jednání mezi společnostmi Google a Sun Microsystems – která vlastnila platformu Java. Společnost Oracle koupila Sun na začátku roku 2010; do srpna podala na Google žalobu.
Aplikační programové rozhraní (API) je v tomto kontextu soubor přesně definovaných interakcí při programování softwaru. Jedná se o zkratku pro rychlý přístup ke službám, knihovnám a dalším funkcím. Rozhraní API může zhušťovat běžně používaný nebo mnohomluvný kód a umožňuje programátorům tvořit, aniž by museli znovu vynalézat kolo.
Rozhraní API není přesně slovník, ale má k němu dost blízko, takže případ Oracle vs. Google představuje velký problém. Technicky vzato můžete v Javě programovat, aniž byste používali sporných 37 balíčků Java API. Pravděpodobně byste ale nenapsali nic užitečného, protože tyto balíky API zahrnují java.lang a java.util, základní balíky, které nabízejí funkce, jako je provádění matematiky nebo reprezentace data a času. Technicky vzato mohu tento článek napsat i bez metafor a přirovnání, ale není to nic, co bych chtěl udělat, nebo co by někdo chtěl číst.
Aby bylo jasno, 37 API Javy bylo reimplementováno v čisté místnosti. Společnost Oracle netvrdí, že jsou doslovně stejné, ale že „struktura, posloupnost a organizace“ rozhraní API jsou natolik podobné, že porušují autorský zákon. Tím má na mysli, že balíčky, třídy a metody v těchto API jsou pojmenovány stejně. Řádek kódu napsaný tak, aby běžel v jazyce Java Standard Edition, nemusí nutně běžet v systému Android, ale přiblíží se k němu mnohem více, než by tomu bylo v opačném případě.
Úplně první průběh soudního řízení vyústil v roce 2012 v rozdvojený soudní proces – jeden soudní proces pro patentové nároky a druhý soudní proces pouze pro nároky na autorská práva. V patentovém procesu porota rozhodla, že společnost Google žádné patenty neporušila. V soudním řízení o autorských právech se řešily dva samostatné právní body: zaprvé, zda deklarovaný kód a „struktura, posloupnost a organizace“ rozhraní API podléhají autorským právům, a zadruhé, zda použití společností Google bylo spravedlivým použitím. Soudce rozhodl o otázce autorskoprávní uznatelnosti a otázku spravedlivého použití poslal k posouzení porotě.
Porota rozhodla o spravedlivém použití. Soudce – který shodou okolností psal kód jako koníček – však rozhodl, že na deklarovaný kód a SSO rozhraní API se autorská práva přece jen nevztahují. Zákon o autorských právech se nevztahuje na žádnou „myšlenku, postup, proces, systém, způsob fungování“ a způsob, jakým byly balíčky, třídy a metody pojmenovány a seřazeny, byl příliš funkční na to, aby mohl být považován za hodný autorského práva.
Tento konkrétní rozsudek byl v roce 2014 zrušen federálním soudem. Protože se první porota pozastavila nad spravedlivým užitím, musela být v roce 2016 svolána zcela nová porota k dalšímu soudnímu řízení o spravedlivém užití. Porota se přiklonila na stranu společnosti Google.
V roce 2018 však Federální obvod – stejný odvolací soud, který v roce 2014 vrátil případ zpět porotě – rozhodl, že verdikt poroty musí být zrušen ve prospěch společnosti Oracle, protože důkazy předložené během soudního řízení jasně naznačovaly, že nelze dospět k žádnému rozhodnutí o spravedlivém užití, a proto se vůbec neměly dostat před porotu.
Zrušení verdiktu poroty je Velký soudce Energy způsobem, který bude pro Nejvyšší soud jistě kontroverzní, a je pravděpodobné, že při středečním ústním jednání se bude hodně diskutovat o roli soudce versus poroty v případě autorských práv. Otázka, kdo a kdy rozhoduje o spravedlivém užití, je něco, co lze extrapolovat na spoustu různých právních případů (což SCOTUS miluje) a také nemá nic společného s matematikou (což SCOTUS nemiluje).
Naneštěstí skutečné jádro případu leží v části se vší tou matematikou a podobně. Rozhodnutí Nejvyššího soudu ve věci Google v. Oracle může mít obrovské důsledky pro softwarový průmysl, a to především proto, že Nejvyšší soud se možná bude znovu zabývat otázkou autorskoprávní ochrany – tedy otázkou, zda se na deklarovaný kód a strukturu, posloupnost a organizaci rozhraní API jazyka Java vůbec vztahuje autorské právo -, která není ve hře od roku 2014.
Tento deset let trvající spor mezi společnostmi Google a Oracle není zcela racionální. Reimplementace rozhraní Java API společností Google je součástí dlouhé tradice opakování, která byla až dosud většinou považována za samozřejmost. Produkty, jako je vlastní MySQL společnosti Oracle, vznikly jako iterace SQL společnosti IBM.
To neznamená, že kopírování je srdcem Silicon Valley. Existuje však bod, kdy chcete spíše podporovat, aby věci vypadaly stejně, než aby se lišily kvůli odlišnosti. Zhruba řečeno: kódování je proces promlouvání ke stroji. Ale jen velmi málo lidí, kteří v dnešní době vyvíjejí software, skutečně mluví přímo se strojem. Software existuje ve vrstvách na sebe navazujících, je to hra šeptandy, která se nakonec dostane až k holému železu počítače. Nové jazyky se odvozují od starých, nové knihovny se staví na těch stávajících, závislosti se vrší jedna na druhou jako hra Jenga, která může každou chvíli skončit. A případ Google vs. Oracle je případ, který se odehrává na jedné z nejnižších úrovní probíhající hry Jenga.
Brzy zjistíme, zda to Nejvyšší soud ví.
Oprava: V dřívější verzi článku bylo chybně uvedeno, že kódová základna systému Android čítá miliardy řádků kódu. Jedná se o miliony. Této chyby litujeme.