Die Anklage und Hintergründe
Im April 2021 fällte der US Supreme Court ein Urteil im Rechtsstreit Google vs. Oracle. In der Auseinandersetzung ging es um die Verwendung von Java API's und deren Implementierung im Ausmaß von etwa 11.000 Lines of Code. In einer (aus heutiger Sicht sehr alten) Version von Android, hatte Google Teile des Java Source Codes verwendet. Zu einer Zeit, in der Java noch von Sun Microsystems entwickelt wurde. 2009 kündigte Oracle an, Sun Microsystems übernehmen zu wollen und konnte diesen Kauf Anfang 2010 nach einigen Wettbewerbsprüfungen abschließen. Damit war Oracle auch im Besitz der Java Plattform. Gleich im selben Jahr reichte Oracle eine Klage gegen Google wegen der Verwendung des Source Codes und der API ein.
Disclaimer: Ich bin kein Jurist! Entsprechend werde ich nicht auf die juristischen Aspekte dieses Verfahrens eingehen, sondern analysiere die Auswirkungen auf die Softwarebranche.
Das Urteil
Der US Supreme Court entschied zugunsten Googles und schmetterte damit die Klage wegen angeblicher Urheberrechtsverletzungen in Android ab! Google ersetzte die verwendeten übernommenen Software Teile durch eine eigene mit der Java API kompatiblen Implementierung. Dennoch beharrte Oracle auf dem Standpunkt, dass eine Urheberrechtsverletzung auch durch die eigene Implementierung gegeben sei, selbst wenn diese von Google entwickelt wurde.
In der Softwarebranche ist dieses Urteil also mit großer Spannung erwartet worden, da es nicht mehr nur um die Verwendung von "fremdem" Code ging, sondern ob Programmierschnittstellen (kurz API) im allgemeinen schützenswert sind.
Die (möglichen) Folgen
Die Auswirkungen im Falle eines Sieges von Oracle wären aus meiner Sicht fatal gewesen. Ein Softwarehersteller der eine API definiert, könnte somit im Ansatz verhindern, dass dazu kompatible Dienste entwickelt werden. Das wäre auch insbesondere ein herber Schlag gegen die Open Source-Bewegung gewesen, denn so gut wie alle bekannten und wichtigen Open Source-Projekte bedienen sich oder reimplementieren Programmierschnittstellen von kommerziellen Produkten. Beispiele dazu:
- Linux (das Betriebssystem selbst ist Posix kompatiblel und das ist die Grundlage für die ausgezeichnete Kompatiblliität in allen Unix Derivaten)
- Samba (der bekannte Windows Netzwerk kompatible Fileserver)
- Open Source Hardware Treiber für Drucker, Scanner, Grafikkarten. Hersteller könnten verhindern, dass z. B. Linux kompatible Open Source-Treiber entwickelt werden können.
- u.v.a.m. - diese Liste könnte beliebig lang weiter geführt werden!
Die Begründung
Bemerkenswert sind einige Begründungen des Urteils. Hier ein Zitat aus der oben verlinkten Urteilsbegründung:
"Finally, given programmers’ investment in learning the Sun Java API, to allow enforcement of Oracle’s copyright here would risk harm to the public. Given the costs and difficulties of producing alternative APIs with similar appeal to programmers, allowing enforcement here would make of the Sun Java API’s declaring code a lock limiting the future creativity of new programs.
Oracle alone would hold the key. The result could well prove highly profitable to Oracle (or other firms holding a copyright in computer interfaces). But those profits could well flow from creative improvements, new applications, and new uses developed by users who have learned to work with that interface. To that extent, the lock would interfere with, not further, copyright’s basic creativity objectives."
Es wird also festgestellt, dass ein Copyright der API zu einem Nachteil des öffentlichen Interesses wäre und die Kreativität bei der Entwicklung neuer Programme und Innovationen zu stark einschränken würde.
Zu einem ähnlichen Schluss ist übrigens auch der Europäische Gerichtshof gelangt der erklärte, dass ein Copyright auf API's einer Monopolisierung von Ideen gleichkommen würde - das allerdings bereits im Jahr 2012!
Das Fazit
Für uns als Softwareentwickler bringt dieses Urteil - insbesondere mit der entsprechenden Begründung - vor allem eines - Rechtssicherheit.
Miteinander kompatible Softwarekomponenten zu innovativen Gesamtlösungen zu verbinden ist eine der Hauptaufgaben in der heutigen Softwareentwicklung. Als Systemarchitekten denken wir immer daran, welche Produkte und Bibliotheken wir miteinander so verbinden können, dass sie für unsere Anwender und Kunden größtmöglichen Wert liefern. Dass dabei Daten ungehindert zwischen den Systemen ausgetauscht werden können, liegt an der Verwendung und Implementierung von API's.
Und natürlich verwenden wir liebend gerne Open Source Komponenten, ohne die eine moderne Softwareentwicklung - egal in welcher Plattform und Programmiersprache - schlicht nicht möglich wäre!
Und es ist gut zu wissen, dass nach Europa nun auch die USA die Verwendung von API's geklärt hat. In diesem Sinne - happy hacking :)