Zehn Jahre nachdem Oracle Google erstmals wegen des Codes der Android-Plattform verklagt hat, stehen sich die beiden Tech-Giganten nun endlich vor dem Obersten Gerichtshof gegenüber. Seitdem hat es drei Prozesse und zwei Berufungen gegeben. Es stehen Milliarden von Dollar auf dem Spiel; viele Millionen wurden wahrscheinlich für ein Aufgebot an erfahrenen Anwälten, Sachverständigen und bizarren Beweismitteln ausgegeben, die den Geschworenen das Programmieren erklären sollen, wenn sie keine technischen Kenntnisse haben. All dies könnte am Mittwochmorgen ein enttäuschendes Ende finden, mit einer Telekonferenz des Obersten Gerichtshofs, die mitten in einer Pandemie stattfindet.
Als Google Android entwickelte, beschloss es, die mobile Plattform mit Java kompatibel zu machen. Zu dieser Zeit wurden Apps für die iOS-Umgebung in Objective-C geschrieben, einer Sprache, die dem allgegenwärtigen C ähnelt, aber ansonsten so gut wie nur im Zusammenhang mit der Entwicklung von iOS-Apps verwendet wird. Apple hatte einen beträchtlichen Vorsprung auf dem Gebiet der Mobilgeräte.
Google wollte Android wettbewerbsfähig machen, indem es die Plattform mit Java, einer beliebten Programmiersprache mit einer starken Entwicklergemeinde, interoperabel machte. Zu diesem Zweck hat das Unternehmen mehrere Java-APIs neu implementiert, darunter die 37, um die es in der Klage geht. Für Oracle und Google geht es in dem Rechtsstreit darum, ob Oracle – dem die Java Standard Edition gehört – nun Anspruch auf einen Anteil an Android hat, und zwar in Höhe von Milliarden von Dollar. Für alle anderen geht es darum, ob Sprachkompatibilität gleichbedeutend mit einer Urheberrechtsverletzung ist.
Gegenwärtig sieht die Welt anders aus, als der Fall erstmals eingereicht wurde. Beide Unternehmen haben den Besitzer gewechselt – der Prozess begann, als Larry Ellison noch an der Spitze von Oracle stand und Eric Schmidt der CEO von Google war. Google ist jetzt eine Tochtergesellschaft von Alphabet. Android ist auf Version 11. Das Einzige, was gleich geblieben zu sein scheint, ist die Popularität von Java als Programmiersprache.
Aber weit weg vom Silicon Valley hat sich ein Wandel vollzogen, der viel mehr umfasst als nur 6 Milliarden Dollar und die Zukunft des Urheberrechts. Seit Google das letzte Mal den Obersten Gerichtshof um eine Überprüfung seines Falles gebeten hat, sind drei Sitze im Obersten Gerichtshof frei geworden. Im Jahr 2014 lehnte der Oberste Gerichtshof Certiorari ab und verwies den Fall zur erneuten Verhandlung an das Bezirksgericht in San Francisco zurück. Seitdem ist ein Richter in den Ruhestand getreten und zwei sind verstorben – zuletzt Richterin Ruth Bader Ginsburg.
Der absolut unwichtigste Teil von Ginsburgs Vermächtnis ist, dass sie die zuverlässigste Stimme in Urheberrechtsfällen war und tendenziell zugunsten der Rechteinhaber stimmte. Ihr Verlust bedeutet auch, dass der Fall Google vs. Oracle von acht Richtern verhandelt wird und somit ein gespaltenes Gericht zu erwarten ist. (Im Software-Urheberrechtsfall Lotus gegen Borland aus dem Jahr 1996 teilte sich ein Gericht mit acht Richtern gleichmäßig auf und konnte keinen nationalen Präzedenzfall schaffen).
Als der Fall Google gegen Oracle im Jahr 2010 begann, ging es um sieben Patente sowie eine Urheberrechtsklage; bis 2012 war der Fall auf lediglich 37 Java-APIs reduziert worden, die etwa 11 500 Codezeilen umfassten. (Schätzungen gehen davon aus, dass Android etwa 12 Millionen Codezeilen umfasst.) Die 11 500 Codezeilen, um die es ging, wurden in einem „Reinraum“ geschrieben, einem Projekt, das von dem bestehenden Code, den sie zurückentwickeln wollten, getrennt war. Diese technische Meisterleistung wurde notwendig, als die Verhandlungen zwischen Google und Sun Microsystems, dem Eigentümer der Java-Plattform, scheiterten. Oracle übernahm Sun Anfang 2010 und reichte im August Klage gegen Google ein.
Eine Anwendungsprogrammierschnittstelle (API) ist in diesem Zusammenhang eine Sammlung genau definierter Interaktionen in der Softwareprogrammierung. Sie ist ein Kürzel für den schnellen Zugriff auf Dienste, Bibliotheken und andere Funktionen. Eine API kann häufig verwendeten oder ausführlichen Code zusammenfassen, so dass Programmierer das Rad nicht neu erfinden müssen.
Eine API ist nicht gerade ein Wörterbuch, aber sie kommt einem solchen so nahe, dass Oracle gegen Google ein großes Problem darstellt. Technisch gesehen kann man in Java programmieren, ohne die 37 fraglichen Java-API-Pakete zu verwenden. Aber Sie würden wahrscheinlich nichts Nützliches schreiben, denn zu diesen APIs gehören java.lang und java.util, grundlegende Pakete, die Funktionen wie Mathematik oder die Darstellung von Daten und Zeiten bieten. Technisch gesehen kann ich diesen Artikel auch ohne Metaphern oder Gleichnisse schreiben, aber das ist nichts, was ich tun möchte oder was irgendjemand lesen möchte.
Zur Klarstellung: Die 37 Java-APIs wurden in einem Reinraum neu implementiert. Oracle behauptet nicht, dass sie wortwörtlich identisch sind, sondern dass die „Struktur, Abfolge und Organisation“ der APIs so ähnlich sind, dass sie gegen das Urheberrecht verstoßen. Damit ist gemeint, dass die Pakete, Klassen und Methoden in diesen APIs gleich benannt sind. Eine Codezeile, die für die Java Standard Edition geschrieben wurde, muss nicht zwangsläufig auf Android laufen, aber sie kommt dem sehr viel näher, als es sonst der Fall gewesen wäre.
Der erste Anlauf der Klage führte 2012 zu einem zweigeteilten Prozess – ein Prozess für die Patentansprüche und ein zweiter Prozess nur für die Urheberrechtsansprüche. Im Patentprozess entschieden die Geschworenen, dass Google keine Patente verletzt hatte. In der Urheberrechtsverhandlung ging es um zwei verschiedene Rechtsfragen: erstens, ob der Deklarationscode und die „Struktur, Abfolge und Organisation“ der APIs urheberrechtsfähig waren, und zweitens, ob die Nutzung durch Google eine angemessene Nutzung war. Der Richter entschied über die Frage der Urheberrechtsfähigkeit und verwies die Frage der fairen Nutzung zur Beurteilung an die Geschworenen.
Die Geschworenen entschieden sich für die faire Nutzung. Aber der Richter – der zufällig als Hobby Code schreibt – entschied, dass der deklarierende Code und das SSO der APIs doch nicht unter das Urheberrecht fallen. Das Urheberrechtsgesetz gilt nicht für eine „Idee, ein Verfahren, einen Prozess, ein System oder eine Betriebsmethode“, und die Art und Weise, wie die Pakete, Klassen und Methoden benannt und sortiert wurden, war zu funktional, um als urheberrechtswürdig zu gelten.
Es war genau diese Entscheidung, die 2014 vom Federal Circuit aufgehoben wurde. Da die erste Jury in der Frage der fairen Nutzung unentschieden geblieben war, musste 2016 eine völlig neue Jury für ein weiteres Verfahren zur fairen Nutzung einberufen werden. Die Geschworenen stellten sich auf die Seite von Google.
Aber 2018 entschied das Bundesberufungsgericht – dasselbe Berufungsgericht, das den Fall 2014 an die Geschworenen zurückverwiesen hatte -, dass das Urteil der Geschworenen zugunsten von Oracle aufgehoben werden müsse, weil die bei der Verhandlung vorgelegten Beweise eindeutig darauf hindeuteten, dass keine Entscheidung über die faire Nutzung getroffen werden konnte, und daher gar nicht erst vor die Geschworenen hätte gebracht werden dürfen.
Die Aufhebung eines Geschworenenurteils ist Big Judge Energy in einer Art und Weise, die für den Obersten Gerichtshof sicherlich umstritten sein wird, und es ist wahrscheinlich, dass bei der mündlichen Verhandlung am Mittwoch viel über die Rolle des Richters gegenüber den Geschworenen in einem Urheberrechtsfall diskutiert werden wird. Die Frage, wer wann über die faire Nutzung entscheidet, lässt sich auf viele verschiedene Rechtsfälle übertragen (was der SCOTUS liebt) und hat auch nichts mit Mathematik zu tun (was der SCOTUS nicht liebt).
Dummerweise liegt der eigentliche Kern des Falles in dem Teil, in dem es um Mathematik und dergleichen geht. Die Entscheidung des Obersten Gerichtshofs in der Rechtssache Google gegen Oracle könnte enorme Auswirkungen auf die Softwarebranche haben, vor allem, weil der Oberste Gerichtshof die Frage der Urheberrechtsfähigkeit erneut aufgreifen könnte – die Frage, ob der deklarierte Code und die Struktur, Abfolge und Organisation der Java-APIs überhaupt unter das Urheberrecht fallen -, die seit 2014 nicht mehr auf dem Spiel steht.
Dieser jahrzehntelange Streit zwischen Google und Oracle ist nicht ganz rational. Googles Neuimplementierung der Java-APIs ist Teil einer langen Tradition der Iteration, die bis jetzt meist als selbstverständlich angesehen wurde. Produkte wie das Oracle-eigene MySQL wurden als Iterationen von IBMs SQL entwickelt.
Das soll nicht heißen, dass Copy-Pasting das Herz von Silicon Valley ist. Aber es gibt einen Punkt, an dem man die Dinge dazu ermutigen sollte, gleich auszusehen, anstatt um des Unterschieds willen unterschiedlich zu sein. Um es grob auszudrücken: Kodierung ist der Prozess des Sprechens mit der Maschine. Aber nur sehr wenige Menschen, die heutzutage Software entwickeln, sprechen tatsächlich direkt mit der Maschine. Software besteht aus immer neuen Schichten, einem Flüsterspiel, das schließlich das nackte Metall des Computers erreicht. Neue Sprachen werden von den alten abgeleitet, neue Bibliotheken bauen auf den bestehenden auf, Abhängigkeiten werden wie bei einem Jenga-Spiel übereinander gestapelt, das jeden Moment zu Ende gehen kann. Und Google gegen Oracle ist ein Fall, der sich auf einer der untersten Ebenen eines laufenden Jenga-Spiels abspielt.
Wir werden bald herausfinden, ob der Oberste Gerichtshof das weiß.
Korrektur: In einer früheren Version des Artikels wurde fälschlicherweise behauptet, die Android-Codebasis umfasse Milliarden von Codezeilen. Sie geht in die Millionen. Wir bedauern den Fehler.