Copyleft: Pragmatyczny idealizm
Richard StallmanKażda decyzja podejmowana przez człowieka, zależy od tego jakie ma cele oraz jakie uznaje wartości. A ludzie mogą mieć ich wiele. Sława, zysk, miłość, przetrwanie, zabawa, wolność, to niektóre z tych, jakie może mieć dobry człowiek. Gdy celem staje się to, by pomagać innym ludziom, wówczas postawę taką nazywamy idealizmem.
Mojej pracy nad wolnym oprogramowaniem, przyświeca idealistyczny cel: propagowanie idei wolności i współpracy. Chcę wspomagać propagowanie wolnych programów, tak by zastępowały programy prawnie zastrzeżone, które uniemożliwiają współpracę i w ten sposób uczynić nasze społeczeństwo lepszym.
To jest podstawowy powód, dla którego Powszechna Licencja Publiczna GNU napisana została właśnie jako copyleft. Cały kod dodany do programu objętego licencją GNU, musi pozostać wolnym oprogramowaniem, nawet jeśli jest on umieszczony w osobnym pliku. Czynię mój kod dostępnym dla użytku w wolnym oprogramowaniu, a nie w programach prawnie zastrzeżonych, aby zachęcić w ten sposób ludzi piszących programy, by uczynili je również wolnymi. Uważam, iż skoro programiści piszący kod prawnie zastrzeżony używają copyright by powstrzymać nas od dzielenia się z innymi, my możemy użyć tego prawa aby dać tym, którzy chcą współpracować odpowiednie korzyści – możliwość użycia naszego kodu.
Nie wszyscy używają licencji GNU GPL z tego powodu. Wiele lat temu mój przyjaciel zachęcał mnie bym program opublikowany na zasadach copyleft wypuścił na innych warunkach (nie copyleft) i argumentował to mniej więcej tak:
„Czasami pracuję nad wolnym oprogramowaniem, a czasami nad prawnie zastrzeżonym, ale kiedy piszę program zastrzeżony, oczekuję by mi za to zapłacono.”
Chciał swoją pracą podzielić się ze społecznością, która dzieli się oprogramowaniem, ale nie widział powodu by rozdawać coś firmom, których wytwory byłyby dla naszej społeczności niedostępne. Jego cel był odmienny od mojego, ale mimo to uznał, że licencja GNU GPL jest użyteczna również dla niego.
Jeśli chcesz coś osiągnąć w świecie, sam idealizm nie wystarczy. Musisz obrać metodę, która pozwoli Ci na osiągnięcie celu. Innymi słowy, musisz być „pragmatyczny”. Czy GPL jest pragmatyczna? Spójrzmy na jej skutki.
Weźmy pod uwagę GNU C++. Dlaczego mamy wolnodostępny kompilator C++? Otóż tylko dlatego, że licencja GNU GPL mówi o tym, iż musi być wolny. GNU C++ był rozwijany przez konsorcjum przemysłowe MCC, startując z kompilatora GNU C. MCC zwykle czyni swoje programy tak zastrzeżonymi jak tylko można. Ale tym razem uczynili nakładkę C++ wolnym oprogramowaniem, ponieważ GNU GPL mówi, że jest to jedyna możliwość jej udostępnienia. Nakładka C++ zawiera wiele nowych plików, ale ponieważ są przeznaczone do łączenia z GCC, stosuje się do nich licencję GPL. Zysk dla naszej społeczności jest oczywisty.
Spójrzmy na nakładkę GNU Objective C. Początkowo NeXT miał zamiar wypuścić ją jako prawnie zastrzeżoną. Chciano ją udostępnić w postaci plików obiektowych .o i pozwolić użytkownikom na łączenie ich z resztą GCC, sądząc, iż może to być metoda na obejście wymogów GPL. Jednak nasz prawnik stwierdził, że nie uniknięto by w ten sposób wymagań licencji, że takie działanie byłoby niedozwolone, i Objective C zostało opublikowane jako wolne oprogramowanie.
Powyższe przykłady pochodzą sprzed wielu lat, ale GNU GPL nadal powoduje, że przybywa nam wolnego oprogramowania.
Wiele bibliotek GNU jest objętych Pomniejszą Powszechną Licencją Publiczną GNU (Lesser GPL, LGPL), ale nie wszystkie. Jedną z takich bibliotek objętych zwykłą GNU GPL jest Readline, która udostępnia możliwość edycji wiersza poleceń. Kiedyś dowiedziałem się o prawnie zastrzeżonym programie, który używał Readline. Powiedziałem więc programiście, który go rozwijał, że jest to niedozwolone. Mógł on po prostu wyrzucić część odpowiedzialną za edycję wiersza poleceń ze swojego programu, lecz postanowił wypuścić go na licencji GPL. Teraz jest to wolne oprogramowanie.
Programiści, którzy udoskonalają takie programy jak GCC (Emacs, Bash, Linux, czy inne programy objęte GPL), często zatrudnieni są w przedsiębiorstwach lub na uczelniach. Gdy programista chce oddać swoje poprawki dla całej społeczności i zobaczyć swój kod w następnej edycji programu, może usłyszeć od swego szefa: „Zaraz! Ten kod należy do nas! Nie chcemy się nim dzielić. Postanowiliśmy przekształcić twoją poprawioną wersję w prawnie zastrzeżony produkt programowy”.
I tutaj na ratunek programiście przychodzi licencja GNU GPL. Pokazuje on szefowi, że opublikowanie programu w wersji prawnie zastrzeżonej będzie naruszeniem licencji i ten uświadamia sobie, iż ma tylko dwa wyjścia: albo udostępnić cały kod jako wolne oprogramowanie, albo nie publikować go wcale. Prawie zawsze jednak decyduje się na to, by zezwolić programiście na upublicznienie kodu i ten ukazuje się w następnej wersji programu.
Licencja GNU GPL nie jest takim sobie „grzecznym chłopcem”. Mówi „nie” na niektóre rzeczy, na które ludzie czasem mieli by ochotę. Są użytkownicy, którzy twierdzą, iż to źle. Mówią, że GPL „wyklucza” konstruktorów programów prawnie zastrzeżonych, których „należy przyjąć do społeczności wolnego oprogramowania”.
Ale my nikogo z naszej społeczności nie wykluczamy, to oni wybierają czy chcą się przyłączyć czy nie. Ich decyzja, by oprogramowanie, które wykonują było prawnie zastrzeżone, jest decyzją pozostania poza nią. Być w naszej społeczności, znaczy przyłączyć się do współpracy z nami. Nie możemy nikogo „przyjąć do naszej społeczności” jeśli on sam tego nie chce.
Tym, co możemy zrobić jest przedstawieni im oferty, zachęty do przyłączenia się. GNU GPL jest tak zaprojektowana, by bodźcem były już istniejące programy: „Jeśli uczynisz twój program wolnym, możesz użyć naszego kodu”. Naturalnie, nie przekona to wszystkich, ale niektórych tak.
Oprogramowanie prawnie zastrzeżone nie zasila naszej społeczności, ale jego konstruktorzy często chcą od nas czerpać. Użytkownicy wolnych programów, mogą podbudować ego ich autorów – poprzez uznanie i wdzięczność. Niemniej jednak niezwykle kusząca może być oferta ze świata biznesu, w stylu: „Pozwól, byśmy umieścili twój pakiet w naszym prawnie zastrzeżonym programie, a będą go używały tysiące ludzi!”. Taka pokusa może być niezwykle silna, ale biorąc pod uwagę jej długofalowe skutki, lepiej będzie jeśli się jej nie ulegniemy.
Pokusa i naciski mogą być trudniejsze do rozpoznania, gdy pojawiają się nie wprost, lecz ze strony organizacji wolnego oprogramowania, które przejęły strategię dostarczania oprogramowania prawnie zastrzeżonego. Przykładem może być X Consortium (i ich następca – Open Group). Finansowani przez firmy wytwarzające programy prawnie zastrzeżone, starali się przez dekadę przekonać programistów, by zrezygnowali z copyleft. Obecnie, gdy Open Group uczyniła X11R6.4 oprogramowaniem, które nie jest już wolne, ci z nas którzy oparli się tej pokusie są szczęśliwi, że to zrobili.
[We wrześniu 1998, kilka miesięcy po opublikowaniu X11R6.4 na warunkach czyniących zeń oprogramowanie, które nie jest wolne, Open Group zmieniła zdanie i wypuściła je na tej samej licencji (nie copyleft) wolnego oprogramowania, która była stosowana dla wersji X11R6.3. Dziękujemy wam, Open Group – niemniej jednak ten późniejszy zwrot nie unieważnia wniosków, które wysnuliśmy z faktu, że dodanie ograniczeń było możliwe].
Mówiąc pragmatycznie, myślenie o wielkich długofalowych skutkach powinno wzmocnić twą wolę przetrwania nacisków. Jeśli skoncentrujesz się na myśleniu o wolności i społeczności, które możesz budować nie ustępując, znajdziesz ku temu siłę. „Stand for something, or you will fall for nothing” – „Stań w obronie czegoś albo zginiesz za nic”
A jeśli cynicy wyśmiewają wolność, drwią ze społeczności... jeśli „twardo stąpający po ziemi” mówią, że zysk jest jedynym ideałem... po prostu zignoruj ich i używaj copyleft jak dotąd.
Ten esej jest opublikowany w Free Software, Free Society: The Selected Essays of Richard M. Stallman.