Prawo cytatu a Stack Overflow

Monika Kupis & Daniel Chmielowiec

Każdy programista natknął się kiedyś na problem, którego nie był w stanie samodzielnie rozwiązać. W takich przypadkach nieocenioną pomocą jest osoba, która już się z tym problemem mierzyła i może podać pomocną dłoń.

Dokładnie takie jest założenie platformy Stack Overflow[1], zrzeszającej miliony użytkowników. Stack Overflow stał się ikoną wymiany wiedzy między programistami. Każdy może zadać tam pytanie, na które ktoś prędzej czy później, lepiej lub gorzej odpowie.

Zarówno pytanie jak i odpowiedź są widoczne publicznie, co w konsekwencji prowadzi do powstania bazy wiedzy. Taka odpowiedź to bardzo często fragment kodu, który należy umieścić w swoim kodzie, aby dany problem rozwiązać. Dzięki temu proces tworzenia oprogramowania przebiega szybciej i sprawniej.

Całość urosła do tego rozmiaru, że sam Stack Overflow postanowił wypuścić na rynek pewną bardzo specyficzną klawiaturę, dzięki której proces kopiowania rozwiązań jest jeszcze prostrzy (nie, to nie jest fake).

the-key-launch-opt1

Powstało też wiele memów w tym zakresie, do których przeglądania serdecznie zachęcam.

Wszystko to brzmi bardzo fajnie, jednak jest pewien bardzo drobny szczegół, o którym łatwo zapomnieć: prawo autorskie.

101 ochrony prawnoautorskiej programów komputerowych

Programy komputerowe uznawane są za utwory w rozumieniu art. 1 Prawa autorskiego[2]. Utwór to przedmiot ochrony prawa autorskiego - każdy przejaw działalności twórczej o indywidualnym charakterze, ustalony w jakiejkolwiek postaci, niezależnie od wartości, przeznaczenia i sposobu wyrażenia.

Program komputerowy jest chroniony we wszystkich formach jego wyrażenia, co oznacza, że chronimy zarowno kod źródłowy jak i program w postaci odbieranej przez użytkownika.

Nie chronimy samych idei i zasad stanowiących podstawę programu komputerowego.

Prawo autorskie nie zawiera definicji programu komputerowego. Definicję znajdziemy w dyrektywie Parlamentu Europejskiego i Rady 2009/24/WE z dnia 23 kwietnia 2009 r. w sprawie ochrony prawnej programów komputerowych (Dyrektywa 2009/24/WE) [3].

Zgodnie z punktem 7 Preambuły Dyrektywy 2009/24/WE:

program komputerowy obejmuje programy w jakiejkolwiek formie, w tym programy zintegrowane ze sprzętem komputerowym; pojęcie to obejmuje również przygotowawcze prace projektowe prowadzące do rozwoju programu komputerowego z zastrzeżeniem, że charakter prac przygotowawczych jest taki, że program komputerowy może korzystać z nich na późniejszym etapie.

I wszystko jasne, co?

Różnica między kodem źródłowym, a programem komputerowym

Kod źródłowy[4] (source code) to szczegółowy zestaw instrukcji programu komputerowego wykonany przy pomocy określonego języka programowania. Przed wykonaniem kod źródłowy musi zostać poddany translacji na kod wynikowy (najczęściej kod maszynowy), w procesie zwanym kompilacją.

Kod źródłowy często nie jest udostępniany użytkownikowi programu komputerowego.

Program komputerowy jest zwykle udostępniany w postaci kodu wynikowego (object code), w postaci nadającej się do wykonania w procesorze, lecz nieczytelnej dla człowieka.

Zarówno kod źródłowy jak i program komputerowy mogą być utworami w rozumieniu Prawa autorskiego.

Przykład

Twitch jako aplikacja webowa (część programu komputerowego), wysyła kod do każdej przeglądarki, która wejdzie na adres https://twitch.com i nikt nie ma z tym problemu. Natomiast kiedy ogłoszono, że kody źródłowe aplikacji serwerowych Twitch'a zostały opublikowane na stronie 4chan[5], prezentowano to wydarzenie jako wyciek danych.

Dozwolony użytek

Tzw. dozwolony użytek to forma ograniczenia autorskich praw majątkowych. Dzięki niemu mamy możliwość korzystania z chronionego prawami autorskimi utworu bez konieczności uzyskiwania zgody autora czy wydawcy albo producenta, który nabył autorskie prawa majątkowe od autora.

  • Dozwolony użytek osobisty, który umożliwia każdemu korzystanie z rozpowszechnionych utworów w zakresie własnego użytku osobistego - czyli kiedy kupiłaś czy kupiłeś książkę i pożyczasz ją swojemu znajomemu,
  • Dozwolony użytek publiczny, czyli możliwość korzystania z dzieła bez zgody uprawnionego podmiotu ze względu na ważny interes publiczny oraz potrzeby kulturalno-oświatowe - czyli biblioteka szkolna wypożyczająca ksiażki (właściwie wyużyczająca, ale o tym może kiedy indziej)[6].

Prawo cytatu

Jedną z częściej wykorzystywanych w praktyce postaci dozwolonego użytku jest tzw. prawo cytatu.

Mówiąc o prawie cytatu najcześciej rozumie się dosłowne przytoczenie fragmentu utworu A w utworze B, z zastrzeżeniem, że ten przytoczony fragment utworu A stanowi od momentu przytoczenia dającą się wyodrębnić część składową utworu B.

Na przykład przytaczanie w pracy inżynierskiej cytatów z publikacji umieszczonych w bibliografii jest skorzystaniem z prawa cytatu.

Wykorzystywany w ramach prawa cytatu może być każdy utwór, a "wprowadzanie przez autorów, wydawców jakichkolwiek istotnych ograniczeń czy wręcz zakazów cytowania utworów rozpowszechnionych, dokonywane w drodze jednostronnych oświadczeń, jest nieskuteczne"[7].

Wracając do rozróżnienia program - kod źródłowy. Cytowanie programu może wyglądać tak:

0000000 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46
0000010 0a 2f 2a 20 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a
0000020 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a
*
0000040 2a 2a 20 2a 2f 0a 09 54 61 62 6c 65 20 77 69 74
0000050 68 20 54 41 42 73 20 28 30 39 29 0a 09 31 09 09
0000060 32 09 09 33 0a 09 33 2e 31 34 09 36 2e 32 38 09
0000070 39 2e 34 32 0a

Natomiast cytowanie kodu źródłowego, może wyglądać tak:

let text = "";

for (let i = 0; i < 5; i++) {
  text += "The number is " + i + "\n";
}

console.log(text);

No to czy wolno cytować czyjś kodzik?

Wolno, ale pod warunkiem, że zostaną spełnione wszystkie przesłanki legalizujące cytat. Dozwolony użytek w postaci prawa cytatu przy programach komputerowych jest dopuszczalny, ale w zdecydowanie węższym zakresie niż przy innych utworach.

Prawo autorskie w przepisach szczególnych regulujących kwestie związane z programami komputerowymi wyłącza wiele regulacji, które mają zastosowanie do innych utworów, m.in.: wyłączony jest dozwolony użytek prywatny (art. 23 ustawy) oraz prawie wszystkie formy dozwolonego użytku publicznego. Ciekawe jest to, że w wyliczeniu, które jest w art. 77 Prawa autorskiego (czyli jakich przepisów nie stosujemy) brak jest art. 29, który to reguluje właśnie prawo cytatu.

Czyli generalnie można cytować, jeśli spełnimy poniższe wymagania z Prawa autorskiego:

Art. 29
1. Wolno przytaczać w utworach stanowiących samoistną całość urywki rozpowszechnionych utworów lub drobne utwory w całości, w zakresie uzasadnionym wyjaśnianiem, analizą krytyczną, nauczaniem lub prawami gatunku twórczości
2. Wolno w celach dydaktycznych i naukowych zamieszczać rozpowszechnione drobne utwory lub fragmenty większych utworów w podręcznikach i wypisach.
2(1). Wolno w celach dydaktycznych i naukowych zamieszczać rozpowszechnione drobne utwory lub fragmenty większych utworów w antologiach.
3. W przypadkach, o których mowa w ust. 2 i 21, twórcy przysługuje prawo do wynagrodzenia.

Wziąwszy pod uwagę powyższe, na pewno dozwolone jest przytaczanie fragmentów oprogramowania w wykładach, prezentacjach multimedialnych czy podręcznikach w zakresie nauczania technik programowania[8].

Ale co z korzystaniem ze Stacka w pracy, kiedy tworzycie swój własny kod, jesteście jego autorami i np. korzystacie z tytułu tworzenia utworów ze zniżek IP Box?

Art. 34.
Można korzystać z utworów w granicach dozwolonego użytku pod warunkiem wymienienia imienia i nazwiska twórcy oraz źródła. Podanie twórcy i źródła powinno uwzględniać istniejące możliwości. Twórcy nie przysługuje prawo do wynagrodzenia, chyba że ustawa stanowi inaczej.

No i tu zaczynają się schody.

Programiści, ile razy skopiowaliście czyjś kod ze Stacka i podaliście z imienia i nazwiska twórcę oraz źródło?

preview

Pod linkiem znajduje się informacja, że wszystko co wrzucili użytkownicy Stack Overflow jest wrzucone na licencji o nazwie Creative Commons Attribution-Share Alike.

Zgodnie z tą licencją żeby móc wykorzystać materiały udostępnione na tej konkretnej licencji musisz uznać autorstwo: oznaczyć utwór, podać link do licencji itp.

Teoretycznie trzeba w kodzie skopiowanym 1:1 ze Stack Overflow oznaczyć źródło i autora. W mojej ocenie nawet jeśli lekko zmodyfikujesz cytowany kod, czyli go tak jakby sparafrazujesz, to wciąż powinieneś_powinnaś podać źródło, np. w komentarzu.

Żeby obronić przeklejanie gotowych rozwiązań bez cytowania do swojego kodu, z pomocą przychodzą poniższe koncepcje:

  • standardowa praktyka - czyli rozwiązanie, które się po prostu stosuje w danej branży - jeśli konkretne rozwiązanie jest jednym z najbardziej typowych i najprostszych rozwiązań, to jest to prawdopodobnie rozwiązanie, które najpewniej przyjdzie na myśl większości programistów;
  • utwór inspirowany - jeśli tylko się twórczo zainspirujesz i stworzysz swoje własne dzieło, niedzielące wartości twórczej z utworem inspirującym, to twój kod jest utworem samoistnym - może być tworzony bez zgody, a nawet wbrew woli autora utworu, z którego inspiracja została zaczerpnięta;
  • pomysł - jeśli rozpiszesz rozwiązanie np. FizzBuzz, sam algorytm jaki stworzyłeś_stworzyłaś, nie podlega tej ochronie jako twój pomysł - każdy może przeanalizować rozwiązanie i napisać własny kod implementujący ten algorytm, najpewniej z różnicą na poziomie zmienionych nazw.

Chociaż z kopiowaniem ze Stack Overflow zdarzają się przypały, np. takie jak tutaj, a programista oczywiście powinien przestrzegać prawa, kopiowanie kodu ze Stack Overflow jest tak rozpowszechnione, że prawdopodobnie trudno byloby z tego zrezygnować.

(podkreślam, że najlepszym wyjściem jest oznaczanie źródeł w komentarzach, żeby było lege artis)

kiedy połowa twojego kodu to fragmenty ze Stacka

A51163D4-7108-491B-8966-351261993F3A


  1. https://stackoverflow.com/ ↩︎

  2. Ustawa z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych, Dz. U. 1994 Nr 24 poz. 83 ↩︎

  3. Dyrektywa Parlamentu Europejskiego i Rady 2009/24/WE z dnia 23 kwietnia 2009 r. w sprawie ochrony prawnej programów komputerowych(Tekst mający znaczenie dla EOG) ↩︎

  4. https://pl.wikipedia.org/wiki/Kod_%C5%BAr%C3%B3d%C5%82owy ↩︎

  5. https://sekurak.pl/duzy-wyciek-danych-z-platformy-streamingowej-twitch-tv-atakujacy-udostepnili-m-in-informacje-na-temat-zarobkow-tworcow-i-kody-zrodlowe-serwisu/ ↩︎

  6. M. Balcerzak, J. Janeta, B. Kucharski, J. Powiłan, E. Stec-Janeta, A. Studziński, J. Ulański, Pytanie nr 128 w: M. Balcerzak, J. Janeta, B. Kucharski, J. Powiłan, E. Stec-Janeta, A. Studziński, J. Ulański, Skrypt dla aplikantów z prawa gospodarczego, Gdańsk 2021. ↩︎

  7. A. Matlak w: Komentarz do ustawy o prawie autorskim i prawach pokrewnych w: Ustawy autorskie. Komentarze. Tom I, red. R. Markiewicz, Warszawa 2021, art. 29. ↩︎

  8. K. Gienas w: Ustawa o prawie autorskim i prawach pokrewnych. Komentarz, red. E. Ferenc-Szydełko, Warszawa 2014. ↩︎

Udostępnij twitter/ facebook/ skopiuj link
Twój link wygasł
Sukces! Sprawdź swój e-mail i kliknij link, aby zakończyć logowanie.