Czym jest API?

API (application programming interface) czyli interfejs programu aplikacyjnego to zbiór reguł określających jak poszczególne aplikacje się ze sobą komunikują. Należy jednak zaznaczyć, że API to zbiór określonych reguł, wytycznych, określających przebieg interakcji pomiędzy poszczególnymi komponentami programu. Dobrze skonstruowany interfejs ułatwia budowę oprogramowania, sprowadzając ją do łączenia przez programistę bloków elementów w ustalonej konwencji. Innymi słowy API umożliwia poprawne działanie aplikacji w danym środowisku – jeśli programista chce stworzyć taką, która będzie działała na systemie Windowsa, korzysta z Windows API – zbioru niezbędnych funkcji, stałych i zmiennych umożliwiających działanie programu w systemie operacyjnym Microsoft Windows. Jeśli chciałby działać w środowisku Android – wybiera API przystosowane do niego, itd.

Nie zapuszczając się za daleko w gąszcz niezrozumiałych terminów informatycznych, należy wspomnieć, że API jest definiowane na poziomie kodu źródłowego, czyli zapisu programu komputerowego, opisującego operacje, jakie powinien wykonać komputer na zgromadzonych lub otrzymanych danych. Kod źródłowy jest wynikiem pracy programisty i pozwala wyrazić w czytelnej dla człowieka formie strukturę oraz działanie programu komputerowego. Do samego kodu źródłowego wrócę jeszcze później, gdyż jest to ważny element całej tej układanki.

Google vs Oracle

Jeśli mniej więcej udało nam się zrozumieć czym jest API i dlaczego jest istotny dla działania aplikacji, możemy przejść do omówienia istoty sporu, o którym mowa jest na wstępie. Proces został wytoczony przez firmę Oracle – amerykańskie przedsiębiorstwo zajmujące się tworzeniem oprogramowania do szeroko rozumianej obsługi przedsiębiorstw, a w szczególności systemów zarządzania bazą danych. W 2010 r. Oracle przejęło Sun Microsystems – podmiot, który stworzył najbardziej rozpowszechniony język programowania „Java”. Niedługo po przejęciu, Oracle postanowił porozpychać się w branży łokciami i pozwać Google. Chodziło o blisko 12 tys. linijek kodu źródłowego, które Google przekopiowało do systemu operacyjnego Android. Przeklejony zbiór nie pochodził bezpośrednio z kodu źródłowego Javy, ale właśnie jej API.

Taki ruch miał na celu znaczne ułatwienie przyszłym programistom procesu tworzenia aplikacji na platformę Android – tak jak zostało wspomniane w pierwszym akapicie, chodziło o dostarczenie fundamentu, który mógł umożliwić sprawne działanie aplikacji. Google już na początku prac nad systemem Android zdawało sobie sprawę, jak ważni dla jego rozwoju będą zewnętrzni programiści. I mieli rację – dziś większość aplikacji tworzonych jest przez niezależnych twórców, którzy następnie sprzedają swoje programy korporacjom. Wiadomo, że jeśli dostarczy się im zawczasu środki do pracy nad programem, który będzie przystosowany do pracy w określonym środowisku, to taka firma ma później po prostu mniej pracy. Zdecydowano więc postawić na dobrze znany język, jakim jest Java. Wydarzyło się to jeszcze przed przejęciem przez Oracle firmy Sun, która widziała w takim ruchu wiele korzyści – z ich punktu widzenia, im więcej programistów używa Javy, tym lepiej dla jej interesów. Nowy właściciel widział sprawę nieco inaczej i sprawa trafiła do sądu. Po przejściu przez wszystkie możliwe instancje proces przeniósł się na sale Sądu Najwyższego Stanów Zjednoczonych.

Precedensowy wyrok

„Załóżmy, że materiał skopiowany przez Google’a był zastrzeżony. Nawet wtedy rozpatrywane kopiowanie stanowiło dozwolony użytek. Google więc nie złamał prawa autorskiego”[1] – do tych trzech, bardzo istotnych zdań można by było skrócić kilkudziesięciostronicowy wyrok. „Google skopiowało API, aby ponownie wdrożyć interfejs użytkownika. Jednocześnie wykorzystało tylko to, co było potrzebne w celu zapewnienia użytkownikom odpowiednich doświadczeń podczas korzystania. A to stanowiło uczciwe wykorzystanie skopiowanego materiału”[2]czytamy dalej. Google wygrał stosunkiem głosów 6-2, gdyż jeden z sędziów uznał, że zbyt swobodne przyznawanie prawa do dozwolonego użytku (o którym więcej można przeczytać na stronie Legalnej Kultury) – za każdym razem jak będzie można to tłumaczyć powstaniem zupełnie nowych produktów – może w przyszłości doprowadzić do tego, że normy prawa autorskiego staną się niepotrzebne i bezwartościowe.

Takie rozstrzygnięcie jest o tyle istotne, że amerykańskim systemie prawnym będzie mogło być stosowane na zasadzie precedensu – wyrok będzie bezpośrednio wpływał na treść orzeczeń wydawanych w przyszłości. W polskim prawie orzecznictwo sądów powszechnych jest traktowane pomocniczo – nie tworzy bezpośredniego związania. Omawiana sprawa, a właściwie jej zakończenie, stawia wyraźną granicę pomiędzy rozwiązaniami, z których korzystanie powinno być powszechnie dostępne, a tymi za które należy zapłacić – np. w formie licencji od programisty. Sąd Najwyższy Stanów Zjednoczonych przychylił się do linii, że cała idea API zakłada, że twórcy aplikacji mogą z nich dowolnie korzystać – po to powstały. Gdyby sprawa została rozstrzygnięta inaczej, rozwój systemów informatycznych i ich oprogramowania wpadłby w stagnację. Wątpię by deweloperzy byli skłonni do podjęcia ryzyka, które finalnie zakończyłoby się procesem, a z drugiej strony ceny licencji na wykorzystanie poszczególnych API poszybowałby znacząco w górę.

Oczywiście przedmiotowe orzeczenie będzie miało moc prawną wyłącznie na terenie USA. Jest to jednak tak znaczący dla tej branży rynek, że reszta świata na pewno będzie starała się dostosować swoje wewnętrzne zwyczaje panujące w środowisku programistycznym. Prawdopodobnie wyrok stanie się również podstawą do wprowadzenia nowych, jasnych przepisów w międzynarodowym prawie autorskim – wyraźnie rozdzielających elementy, z których można korzystać na zasadzie dozwolonego użytku i te, których wykorzystanie wymaga zgody twórcy.

Tekst powstał we współpracy z Legalnakultura.pl



[1] https://www.supremecourt.gov/opinions/20pdf/18-956_d18f.pdf

[2] Tamże