Czy oprogramowanie open source jest tym samym co wydawane bezpłatnie (free) ? Jakie są między nimi różnice i na co należ zwrócić uwagę? Wszystkie te kwestie poruszymy w dzisiejszym artykule – miłej lektury.

 

Wprowadzenie

Jednym z aspektów tworzenia oprogramowania o którym wielu ludzi zapomina, jest to jak oprogramowanie powinno być licencjonowane. Licencja na oprogramowanie określa, w jaki sposób kod może być używany i dystrybuowany przez licencjobiorców (końcowych użytkowników), co może mieć znaczący wpływ na to, jak szeroko stosowana jest technologia. Większość współczesnego oprogramowania jest sprzedawana na podstawie zastrzeżonej licencji, która pozwala wydawcy lub twórcy zachować prawa własności intelektualnej do oprogramowania.

Istnieje jednak alternatywny punkt widzenia, który twierdzi, że powoduje to niepotrzebny poziom kontroli w rękach wydawców oprogramowania. Zapobiegając kopiowaniu i zmienianiu kodu źródłowego przez licencjodawców, twórcy oprogramowania autorskiego tłumią innowacje i hamują wzrost nowych technologii. Takie stanowisko zainspirowało tworzenie licencji, które dają użytkownikom prawo do nauki, zmiany i udostępniania kodu źródłowego oprogramowania zgodnie z własnymi upodobaniami. Oprogramowanie licencjonowane w ten sposób jest zwykle znane pod jedną z dwóch nazw: “wolne oprogramowanie” lub “oprogramowanie open source”.

Mówiąc ogólnie, oba terminy odnoszą się do tego samego: oprogramowanie z kilkoma ograniczeniami, w jaki sposób można z niego korzystać. Z punktu widzenia ich zwolenników zarówno darmowe, jak i otwarte oprogramowanie jest bezpieczniejsze, wydajniejsze i działa bardziej niezawodnie niż ich własne odpowiedniki. Dlaczego jednak mamy dwie etykiety na to samo? Odpowiedź wymaga nieco historii i zrozumienia niuansów, które tworzą dwa osobne, ale ściśle powiązane ruchy.

Tło historyczne

Pomysł, że osoba pracująca z oprogramowaniem powinna mieć możliwość przeglądania, edytowania i udostępniania kodu źródłowego bez konsekwencji prawnych, nie jest niczym nowym. Przed 1970 r. oprogramowanie było zwykle dystrybuowane wraz z kodem źródłowym, co powodowało, że oprogramowanie było zazwyczaj sprzętowe, a użytkownicy końcowi musieliby go modyfikować, aby działał na konkretnej maszynie lub aby dodać specjalne funkcje.

Większość ludzi, którzy kontaktowali się z komputerami w tym czasie, robiła to w środowisku czysto akademickim lub badawczym. Oznaczało to, że zasoby komputerowe często były udostępniane, a zmiana oprogramowania w celu stworzenia bardziej wydajnych przepływów pracy lub bardziej niezawodnych rozwiązań była szeroko promowana. Na przykład UC Berkeley’s Project Genie opracował Berkeley Timesharing System – system operacyjny oparty na dzieleniu czasu, zbudowany od zera – hakując kod źródłowy laboratorium SDS 930.

Ponieważ oprogramowanie stało się bardziej skomplikowane i kosztowne w produkcji, firmy programistyczne szukały sposobów na powstrzymanie niepohamowanego udostępniania kodu źródłowego w celu ochrony swoich źródeł przychodów i uniemożliwienia konkurentom dostępu do ich implementacji. Zaczęli nakładać ograniczenia prawne na swoje produkty, w tym prawa autorskie i umowy leasingowe, a także zaczęli dystrybuować swoje produkty na podstawie licencji. Pod koniec lat 70. większość firm zajmujących się oprogramowaniem przestała wysyłać oprogramowanie z dołączonym kodem źródłowym. Doprowadziło to wielu długoletnich użytkowników komputerów do wyrażania niezadowolenia, a ich etos ostatecznie stał się fundamentem Ruchu Wolnego Oprogramowania.

Początki wolnego oprogramowania

Ruch Wolnego Oprogramowania był w dużej mierze dziełem Richarda Stallmana. Stallman rozpoczął studia z zakresu informatyki na początku lat 70. ubiegłego stulecia przed powstaniem zastrzeżonych licencji na oprogramowanie, a na początku lat 80. pracował jako badacz w MIT Artificial Intelligence Laboratory. Będąc członkiem społeczności akademickiej hakerów od ponad dekady, był sfrustrowany rozprzestrzenianiem się prawnie zastrzeżonego oprogramowania i zaczął postrzegać go jako pogwałcenie praw człowieka do wprowadzania innowacji i ulepszania istniejącego oprogramowania.

W 1983 roku Stallman uruchomił projekt GNU – starania o stworzenie kompletnego systemu operacyjnego, który zapewniłby swoim użytkownikom swobodę przeglądania, zmieniania i udostępniania kodu źródłowego. Stallman wyraził swoją motywację do projektu w Manifeście GNU . W nim wyraża przekonanie, że licencjonowanie własnościowe blokuje rozwój oprogramowania sterowanego przez społeczność, skutecznie napędzając innowacje i wyniszczając postęp technologii.

Według Stallmana stanowi to niesprawiedliwe obciążenie dla użytkowników i programistów, którzy w przeciwnym razie mogliby zmienić kod w celu dostosowania do własnych potrzeb lub zmienić go w celu obsługi nowej funkcji. W ten sposób Projekt GNU może być postrzegany zarówno jako odpowiedź na wzrost prawnie zastrzeżonego oprogramowania, jak i na powrót do poprzedniej epoki swobodnego współdzielenia kodu źródłowego i wspólnego tworzenia oprogramowania.

W 1985 r. Stallman zbudował projekt GNU, zakładając Free Software Foundation (FSF), organizację non-profit zajmującą się promowaniem koncepcji wolnego oprogramowania dla szerszej publiczności. Stallman opracował później także GNU General Public Licence, licencję na oprogramowanie, która gwarantuje użytkownikom końcowym możliwość swobodnego uruchamiania, przeglądania i udostępniania kodu źródłowego.

Według FSF, aby oprogramowanie było naprawdę “wolne”, jego licencja musi gwarantować swoim użytkownikom cztery podstawowe wolności:

  • Swoboda uruchamiania programu, jak chcesz, w dowolnym celu.
  • Swoboda badania tego, jak działa program, i zmieniania go tak, aby działał zgodnie z twoimi potrzebami. Dostęp do kodu źródłowego jest warunkiem wstępnym.
  • Swoboda redystrybucji kopii, dzięki czemu możesz pomóc innym.
  • Swoboda rozpowszechniania kopii zmodyfikowanych wersji dla innych. Robiąc to, możesz dać całej społeczności szansę skorzystania z twoich zmian. Dostęp do kodu źródłowego jest warunkiem wstępnym.

FSF uważa każde oprogramowanie, które nie spełnia każdego z tych kryteriów, za niewolne, a zatem nieetyczne.

Rozwój Open Source

Stallman wybrał etykietę “darmowe oprogramowanie”, aby odnieść wrażenie, że użytkownicy będą mogli swobodnie zmieniać i udostępniać kod źródłowy zgodnie z oczekiwaniami. Doprowadziło to do pewnego zamieszania na przestrzeni lat, ponieważ wiele osób zakłada, że ​​”wolne oprogramowanie” odnosi się do oprogramowania, które można uzyskać za darmo (co byłoby dokładniej oznaczone jako “freeware” lub “shareware”).

Jednak pod koniec lat 90. wśród niektórych entuzjastów GNU i Linuksa narastał niepokój, że to podwójne znaczenie spowodowałoby, że duża część użytkowników przegapiłaby filozofię wolnego oprogramowania i jego zalety w stosunku do zastrzeżonego kodu. FSF stała się również znana z twardej postawy etycznej wobec zastrzeżonego oprogramowania wszelkiego rodzaju. Niektórzy zwolennicy wolnego oprogramowania byli zaniepokojeni tym, że takie podejście było zbyt nieprzyjazne dla interesów biznesowych, i ostatecznie utrudniłoby rozprzestrzenianie się Ruchu Wolnego Oprogramowania.

Katedra i Bazar

W 1997 r. Eric S. Raymond, wówczas adwokat i programista wolnego oprogramowania, napisał The Cathedral and the Bazaar , szeroko cytowany esej, który porównuje dwa różne modele rozwoju wykorzystywane w różnych projektach wolnego oprogramowania. “Katedra” odnosi się do odgórnego modelu rozwoju, w którym wyłączna grupa programistów tworzy kod, czego przykładem jest rozwój GNU Emacs. Z kolei “Bazar” odnosi się do metody, w której kod jest tworzony publicznie przez Internet, tak jak miało to miejsce w przypadku rozwoju jądra systemu Linux.

Głównym argumentem tego eseju jest to, że model Bazaar jest z natury bardziej skuteczny w znajdowaniu i rozwiązywaniu błędów oprogramowania, ponieważ coraz więcej osób może przeglądać i eksperymentować z kodem źródłowym. Tak więc, argumentował Raymond, wykorzystanie zorientowanego na społeczność, oddolnego procesu rozwoju zapewnia bezpieczniejsze i bardziej niezawodne oprogramowanie.

Częściowo w odpowiedzi na idee przedstawione w Katedrze i Bazarze , Netscape opublikował kod źródłowy swojej przeglądarki internetowej Communicator jako wolnego oprogramowania na początku 1998 r. (Kod źródłowy programu Communicator stanowił później podstawę dla Mozilla FireFox 1.0). Zainspirowany komercyjnym potencjałem, jaki Netscape widział w tym wydaniu kodu źródłowego, grupa entuzjastów wolnego oprogramowania (w tym Raymonda, Linusa Torvaldsa, Philipa Zimmermana i wielu innych) próbowała przemienić Ruch Wolnego Oprogramowania i oderwać jego uwagę od etycznych lub filozoficznych motywy. Grupa wybrała “open source” jako etykietę oprogramowania, które można dowolnie udostępniać, mając nadzieję, że lepiej odzwierciedli wartość biznesową opartego na współpracy modelu rozwoju opartego na społeczności.

Niedługo potem Open Source Initiative (OSI) zostało założone przez Raymonda i Bruce’a Perensa, aby zachęcić zarówno do korzystania z nowego terminu, jak i do rozpowszechniania zasad open source. OSI opracowało również definicję Open Source – listę dziesięciu zasad, do których musi przestrzegać licencja oprogramowania, aby można je było uznać za otwarte:

  1. Bezpłatna redystrybucja – licencja nie będzie ograniczać żadnej ze stron do sprzedaży lub oddawania oprogramowania jako składnika większej dystrybucji oprogramowania zawierającego programy z wielu źródeł.
  2. Kod źródłowy – Program musi zawierać kod źródłowy i musi umożliwiać dystrybucję zarówno w kodzie źródłowym, jak i w postaci skompilowanej.
  3. Dzieła pochodne – Licencja musi zezwalać na modyfikacje i prace pochodne oraz umożliwiać ich dystrybucję na takich samych warunkach, jak licencja oryginalnego oprogramowania.
  4. Uczciwość kodu źródłowego autora – licencja może ograniczyć rozpowszechnianie kodu źródłowego w zmodyfikowanej formie tylko wtedy, gdy licencja zezwala na dystrybucję “plików łat” wraz z kodem źródłowym w celu modyfikacji programu w czasie jego tworzenia.
  5. Brak dyskryminacji osób i grup – Licencja nie może dyskryminować żadnej osoby lub grupy osób.
  6. Brak dyskryminacji przeciw działaniom – licencja nie może ograniczać nikomu korzystania z programu w określonej dziedzinie.
  7. Dystrybucja licencji – Prawa dołączone do programu muszą obowiązywać wszystkich, którym program jest redystrybuowany, bez potrzeby wykonywania przez te strony dodatkowej licencji.
  8. Licencja nie może być specyficzna dla produktu – Prawa dołączone do programu nie mogą zależeć od tego, czy program jest częścią określonej dystrybucji oprogramowania.
  9. Licencja nie może ograniczać innego oprogramowania – Licencja nie może nakładać ograniczeń na inne oprogramowanie rozpowszechniane wraz z licencjonowanym oprogramowaniem.
  10. Licencja musi być neutralna technologicznie – Żadne postanowienie licencji nie może być oparte na żadnej indywidualnej technologii lub stylu interfejsu.

Różnice między oprogramowaniem wolnym i otwartym

W przypadku większości ludzi różnica w rozumieniu “wolnego oprogramowania” i “oprogramowania open source” jest znikoma i wynika z niewielkiej różnicy w podejściu lub filozofii. Jak widzi to Open Source Initiative, oba terminy oznaczają to samo i mogą być używane zamiennie w niemal każdym kontekście. Po prostu preferują etykietę “open source”, ponieważ uważają, że zapewnia ona jaśniejszy opis oprogramowania i intencje jego twórców, dotyczące tego, w jaki sposób należy go używać.

W przypadku obozu “wolnego oprogramowania” jednak “open source” nie oddaje w pełni znaczenia ruchu i potencjalnych długofalowych problemów społecznych spowodowanych przez zastrzeżone oprogramowanie. Free Software Foundation uważa, że ​​OSI jest zbyt zainteresowane promowaniem praktycznych zalet niezastrzeżonego oprogramowania (w tym jego rentowności i wydajności modelu rozwoju opartego na społeczności) i nie zajmuje się wystarczająco etycznym problemem ograniczania praw użytkowników do zmieniania i ulepszania kodu na własnych warunkach.

To, czy dana część oprogramowania jest darmowa, czy open-source zależy od tego, na jakiej licencji jest dystrybuowana i czy licencja jest zatwierdzona przez Open Source Initiative, Free Software Foundation lub oba. Istnieje wiele warunków nakładających się na to, które licencje są zatwierdzane przez daną organizację, ale jest kilka wyjątków. Na przykład umowa o otwartym dostępie NASA jest licencją zatwierdzoną przez OSI, która zdaniem FSF jest zbyt restrykcyjna. Tak więc FSF zniechęca kogokolwiek do korzystania z oprogramowania rozpowszechnianego na podstawie tej licencji. Ogólnie rzecz biorąc, istnieje duża szansa, że ​​jeśli można je opisać jako wolne oprogramowanie, będzie ono pasować również do definicji oprogramowania o otwartym kodzie źródłowym.

Alternatywne nazwy

Z biegiem lat zaproponowano kilka innych nazw tego rodzaju oprogramowania, aby zakończyć tę debatę. “Oprogramowanie bezpłatne i o otwartym kodzie źródłowym” – często skracane do “FOSS” – jest jednym z najczęściej używanych i uważane jest za bezpieczny neutralny rónoważnik między nimi. Termin “oprogramowanie libre” (“libre” wywodzące się z kilku języków romańskich i z grubsza oznaczające “stan wolności”) zyskał popularność do tego stopnia, że akronim “FLOSS”  również stał się dość powszechny.

Należy zauważyć, że zarówno oprogramowanie bezpłatne, jak i oprogramowanie typu open source różnią się od oprogramowania w domenie publicznej. Oprogramowanie bezpłatne i o otwartym kodzie określa swobody poprzez licencjonowanie, podczas gdy oprogramowanie w domenie publicznej może przylgnąć do niektórych z tych samych zalet, ale czyni to przez wyjście poza system licencjonowania. Ważnym rozróżnieniem zarówno oprogramowania wolnego, jak i otwartego jest to, że działa w oparciu o bezpłatny lub open-source kod źródłowy musi być również dystrybuowany z licencją FOSS. Oprogramowanie wydane w domenie publicznej nie ma tego wymogu.

Kolejna kwestia związana z oprogramowaniem domeny publicznej wynika z faktu, że nie każdy kraj na świecie rozpoznaje treści nieobjęte prawami autorskimi. To sprawia, że ​​niemożliwe jest uznanie na całym świecie stwierdzenia, że ​​oprogramowanie jest w domenie publicznej. Dlatego ani FSF, ani OSI nie zachęcają programistów do udostępniania oprogramowania w domenie publicznej.

Wniosek

Pojęcia “wolne oprogramowanie” i “oprogramowanie open source” są wymienne dla większości kontekstów, a to, czy ktoś woli jedno od drugiego, zazwyczaj sprowadza się do kwestii semantyki lub ich filozoficznych poglądów. Jednak dla wielu programistów, którzy chcą opracować oprogramowanie i udostępnić je publiczności lub aktywistom, którzy mają nadzieję zmienić sposób, w jaki ludzie postrzegają i wchodzą w interakcję z technologią, różnica może być ważna. Tak więc, kiedy wydaje się nowe oprogramowanie, ważne jest, aby dokładnie rozważyć zalety i wady różnych licencji – w tym prawnie zastrzeżonych – i wybrać ten, który najlepiej odpowiada Twoim konkretnym potrzebom.



Tuesday, September 18, 2018



« Powrót