Oracle vs Google - nowe rozstrzygnięcia przed sądem w sprawie API Javy
Jak donoszą amerykańskie media pojawiły nowe rozstrzygnięcia w sprawie sądowej dotyczącej naruszenia przez Google praw autorskich do API Javy, a należących do Oracle. Jak wiadomo Oracle przejęło te prawa wraz z przejęciem firmy Sun Microsystem. Google użyło w Androidzie, wydawałby się bardzo rozsądnie, znanego programistom API najpopularniejszego języka programowania jakim jest Java. Programy te działają na maszynie wirtualnej nazywanej Dalvik, która niewiele ma wspólnego z JVM (Java Virtual Machine). Podobieństwo istnieje na poziomie programisty, ale pod spodem technologie te bardzo się różnią (poza tym, że ogólna koncepcja jest taka sama). Można sądzić, że był to jeden z głównych elementów powodujących zdobycie dużej popularności przez ten system. Programistom łatwo było tworzyć aplikację na Androida korzystając ze znanego i łatwego w użyciu języka, gdy większość bibliotek miało identyczne API. Mając te same klasy i nazwy metod w identycznie nazwanych bibliotekach nie trzeba było spędzać czasu na naukę nowego API. Przykładowo system Samsunga Bada miał zupełnie nowe API przygotowane specjalnie przez inżynierów Samsunga (w C++) i nie było ono zbyt popularne. Nie dziwi ten fakt, skoro sam system nie był zbyt popularny, a pisanie programów dla niego wymagało dużej inwestycji czasu, a jak wiadomo czas to pieniądz. Kto chciałby tracić czas na naukę gdy ewentualny efekt i sukces oprogramowania był bardzo niepewny? W przypadku Androida można było ze znacznie mniejszym wysiłkiem zbudować aplikację by chociażby sondować możliwości zarabiania.
Tak czy inaczej najwidoczniej Oracle wywnioskowało, że Google zarabia na ich własności i postanowiło sprawę skierować do sądu. Sprawa ciągnie się już od kilku lat. W 2012 sędzia okręgowy William Alsup orzekł, że Google nie narusza praw Oracle, ponieważ implementacja API jest zupełnie odmienna. Porównał je do biblioteki i książek na półkach ułożonych w taki sam sposób w obu przypadkach, według tych samych zasad. Zaś same książki różnią się zawartością. Świat Javy odetchnął z ulgą. Jednak oczywistym jest, że Oracle nie ustąpiło tak łatwo i odwołało się od decyzji sądu. I w piątek sąd federalny skasował decyzję sądu okręgowego, odwracając zupełnie ocenę prawną tej sytuacji. Uznał, że fakt iż mamy do czynienia z API nie zwalnia z przestrzegania praw autorskich. Co to oznacza dokładnie nie wiadomo. Prawdopodobnie Google będzie musiało zapłacić za naruszenie praw autorskich, a być może zmienić całe API.
Ten wyrok sądowy to spora katastrofa dla większości świata IT. Ponieważ bardzo często nie tylko Google robi w podobny sposób. Po co wymyślać wszystkie nazwy funkcji, klas itp na nowo skoro prościej dla każdego programisty będzie jeśli będą się one nazywały tak samo. Otwiera to drogę innym firmą do podobnych działań w sądach, co może się skończyć sporymi zawirowaniami na rynku IT. (Może Oracle teraz pozwie Microsoft za skopiowanie JVM w .NET, chociaż tutaj naruszenie praw byłoby nieco innego rodzaju?). Czy język programowania może być objęty prawami autorskimi i pytanie jak odróżnić elementy języka od bibliotek i które z nich uznać za API skoro podstawowe elementy Javy znajdują się w pakiecie java.lang, czyli wyglądają podobnie do biblioteki? Trudno też osobie, która nie zna się na niuansach prawa zrozumieć dlaczego licencja GPL na jakiej wydawana jest większość Javy nie ma tutaj najmniejszego znaczenia. Oznacza to, że nie mogę skorzystać z tejże licencji, skoro nie mogę sobie wziąć i modyfikować go jeśli nie robię tego prywatnie dla siebie, a chcę użyć tego kodu w projekcie komercyjnym. Zawsze zastanawiałem się po co firmy stosują dla otwartego kodu CLA, teraz mam odpowiedź.
Pod znakiem zapytania staje sens użycia openJDK - w pełni otwartej wersji Javy, która to jest obecnie podstawą dla rozwoju wersji komercyjnej wydawanej przez Oracle. Jeśli jakaś firma użyje openJDK w komercyjnym produkcie, to czy nie zostanie pozwana? Co ciekawe Java zapożyczyła wiele z innych języków programowania dla swojego API. Wskazuje się podobieństwa do bibliotek takich języków jak Eiffel, Smalltalk czy C++. Sam fakt opierania się obecnej wersji Javy o OpenJDK wskazuje na fakt, że nie cały kod dopisywany do niej jest autorstwa tej firmy. Uczestniczą w tworzeniu go programiści różnych firm.