Sąd Najwyższy Stanów Zjednoczonych rozstrzygnął spór między korporacjami Google i Oracle, uznając że wykorzystanie takich samych deklaracji w API jest dozwolonym użytkiem i nie może być przedmiotem roszczeń z tytułu ochrony prawa autorskiego. To ważny wyrok dla innowacji w przestrzeni nowych technologii.
Od blisko 10 lat firmy Oracle i Google toczyły spór na gruncie prawno-autorskim. Zaczęło się od tego, że w systemie Android (tworzonym przez Google’a) wykorzystano nazwy funkcji i formaty danych, które są takie same, jak w oryginalnym API Javy tworzonym przez Oracle’a.
API to skrót od Application Programming Interface, co można dosłownie przetłumaczyć jako „interfejs programistyczny aplikacji”, lecz przyjęło się używać terminu „interfejs programisty”. Jest to ogólna nazwa na sposób komunikacji oprogramowania (lub jego części) z innym oprogramowaniem. Gdy człowiek porozumiewa się z aplikacjami, wykorzystuje zwykle tekstowy, graficzny lub webowy interfejs użytkownika, w którym poza treścią znaczenie ma również forma. W przypadku API uczestnikiem wymiany informacji nie jest człowiek, lecz inny program komputerowy lub element tego programu. Interfejs programistyczny spotkamy nie tylko w komunikacji sieciowej (np. aplikacji na smartfona z serwerem usługi), ale również tam, gdzie jeden komponent oprogramowania w tym samym systemie korzysta z innego, np. wywołuje dostarczane przez niego funkcje. Dzięki temu zasady użytkowania (np. bibliotek programistycznych) są przejrzyste i mogą odwoływać się do konkretnych, zestandaryzowanych wersji ich API, a programista wie czego się spodziewać.
Spór między wspomnianymi firmami zaczął się od tego, że Oracle (właściciel Javy) zarzucił Google’owi bezprawne wykorzystanie we własnym API nazw funkcji i formatów danych, takich samych, jak stosowane w oryginalnym API Javy.
Warto uszczegółowić, co konkretnie zrobił Google, tworząc Androida. Stworzył własne odpowiedniki funkcji obecnych w Javie, z których mogli korzystać twórcy aplikacji dla tego systemu. Później przemianował nazwy tych funkcji na takie same, jak obecne w Javie, aby proces tworzenia oprogramowania przebiegał sprawniej, gdy ktoś jest już zaznajomiony z oryginalnym API Javy.
Jakiś czas temu Sąd Apelacyjny USA dla Okręgu Federalnego orzekł, że użycie API Javy przez Google’a było dozwolone. Firma Oracle odwołała się jednak i poprosiła o rozstrzygnięcie, czy odzwierciedlenie kształtu API było uprawnione na gruncie prawa autorskiego. Warto zauważyć, że nie chodzi tu o prawo patentowe, z którym mielibyśmy do czynienia, gdyby powielono innowacyjne algorytmy, ale o twórczość rozumianą jako… unikatowe sygnatury wywołań (sic!). W roku 2018 ten sam sąd wydał odmienne orzeczenie, zmieniając werdykt przysięgłych i uznając tego typu działanie za bezprawne na gruncie samych przepisów.
Sąd Najwyższy USA, do którego trafiła sprawa po kolejnej apelacji, stosunkiem głosów 6 do 2 uznał, że wykorzystanie API w sposób, w jaki dokonał tego Google, było dozwolonym użytkiem, powołując się na działanie w zgodzie z duchem prawa.
Prawa ochrony własności intelektualnej, a więc również prawo autorskie, powstały po to, aby chronić innowacyjność. Zakaz korzystania z takich samych sygnatur wywołań funkcji oznaczałby, że traktujemy je bardziej jak znaki handlowe, a nie elementy, które mogą zwiększać innowację właśnie przez to, że są upowszechniane. Programiści inwestują czas, aby poznać konkretne API, jeżeli więc można im pomóc ten czas zaoszczędzić, jest to sytuacja korzystna dla społeczeństwa jako całości.
Google podnosił, że deklaracje [metod i interfejsów o takich samych nazwach –przyp. red.] nie mają cechy unikatowej twórczości, lecz pełnią wyłącznie rolę użytkową, definiującą sposób działania, a więc nie powinno się ich traktować jak utworów na gruncie prawa autorskiego.
Sąd zauważył, że dozwolony użytek powinien być w tym przypadku zastosowany, ponieważ odgrywa istotną rolę w rozwoju oprogramowania. Zwrócił też uwagę na konieczność rozróżniania między cechami kodu źródłowego, które związane są ze sposobem działania, a tymi, które określają specyficzne formy wyrazu.
Sędzia Stephen Breyer w wydanej opinii podkreślił również, że warto rozpatrywać na ile konkretny aspekt oprogramowania jest modernizujący, tzn. wprowadza rzeczywistą innowację w kontekście funkcjonowania, a na ile może być uznany za zastępnik czegoś powszechnego.
Nie zaprzeczono, że Google powielił obecne w Javie deklaracje, lecz istotniejszym był cel tego działania (umożliwienie programistom tworzenia innowacyjnych aplikacji) i fakt, że nie skopiowano elementów, które można by uznać za nowości pod względem udostępnianych funkcji.
Zobacz także
- Opinia sądu 18–956, EFF