Wolne oprogramowanie czy zamknięte? Kluczowe zalety i wady obu modeli
Wolne oprogramowanie stanowi odzwierciedlenie idei, która daje ludziom możliwość swobodnego uruchamiania, rozpowszechniania i modyfikowania programów komputerowych. Idea ta jednoznacznie przeciwstawia się zamkniętemu oprogramowaniu, które tych wolności nie zapewnia.
20.09.2012 | aktual.: 20.09.2012 12:38
Wolne oprogramowanie jest z powodzeniem wykorzystywane przez użytkowników prywatnych, biznes oraz administrację publiczną, stanowiąc alternatywę dla oprogramowania własnościowego (ang. proprietary software) z zamkniętym kodem źródłowym. Oba te modele dystrybucji oprogramowania współistnieją ze sobą, a każdy z nich ma swoje zalety i wady. Na początek spróbujmy jednak odpowiedzieć na pytanie, czym jest wolne oprogramowanie?
Warunki, które musi spełnić oprogramowanie, aby nazwać je wolnym, zebrano w tzw. Definicji Wolnego oprogramowania opublikowanej przez Free Software Foundation (FSF). Definicja ta zakłada, że program jest wolnym oprogramowaniem, jeśli jego użytkownicy mogą korzystać z czterech niezbędnych wolności:
• wolność do uruchamiania programu w dowolnym celu (wolność 0),
• wolność do analizowania programu i zmieniania (modyfikowania) go do własnych potrzeb (wolność 1),
• wolność do rozpowszechniania kopii programu (wolność 2),
• wolność do udoskonalania programu i publicznego rozpowszechniania własnych ulepszeń, tak aby z naszej pracy mogła korzystać cała społeczność (wolność 3).
Twórcą i najbardziej zagorzałym zwolennikiem idei wolnego oprogramowania jest Richard M. Stallman - amerykański programista i wieloletni pracownik Massachusetts Institute of Technology (MIT). Definicja opublikowana przez FSF zwraca uwagę, że wolne oprogramowanie należy rozpatrywać w kwestii wolności, a nie jego ceny. Słowo „free”. w języku angielskim oznacza jednocześnie wolny i darmowy. Free Software odnosi się do pierwszego znaczenia, podobnie jak wolność słowa (free speech), ale niekoniecznie darmowe piwo (free beer).
Na tym polu wolne oprogramowanie ściera się z ruchem otwartego oprogramowania (open source), które większy nacisk kładzie na kwestie techniczne udostępniania kodu i rozpowszechniania aplikacji niż ideologii związanej z wolnością oprogramowania.
- _ Własnościowe oprogramowanie należy do autora lub firmy, który je napisał i/lub posiada do niego prawa. Kod źródłowy takiego oprogramowania nie jest ujawniony (jest zamknięty), licencja na wykorzystanie obostrzona jest natomiast wieloma ograniczeniami, np. zakupione oprogramowanie może zostać zainstalowane tylko na jednym komputerze. Zamknięte oprogramowanie stanowi przeciwieństwo wolnego/otwartego oprogramowania, a licencje, na których jest ono rozpowszechniane, ograniczają większość wolności w zakresie jego rozpowszechniania czy modyfikowania - mówi Michał Trziszka, CEO Cal.pl _.
Otwarty kod źródłowy
Warunkiem koniecznym do zapewnienia wolności pierwszej i trzeciej jest dostęp do kodu źródłowego programu. Nie ma wolnego oprogramowania bez udostępnienia kodu źródłowego. Publiczny dostęp do kodu źródłowego oznacza, że każdy, kto dysponuje odpowiednią wiedzą, może sprawdzić od środka to, jak działa i co robi dany program.
W przypadku zamkniętego kodu nie mamy wiedzy, jakie nieudokumentowane funkcje zostały wbudowane w oprogramowanie. Wiele mówi się o tym, że zamknięte oprogramowanie może zawierać tzw. tylne drzwi, które w przypadku konfliktu mogą zostać wykorzystane do unieruchomienia lub zniszczenia systemów informatycznych i danych przeciwnika. Nawet jeśli traktować to w kategoriach teorii spiskowych, scenariusz taki wydaje się całkiem realny. Być może to właśnie z tego powodu Rosja i Chiny inwestują w rozwój oraz stosowanie wolnego oprogramowania w administracji rządowej czy wojsku.
Wydawać by się mogło, że kontrolę nad wolnym oprogramowaniem sprawuje bliżej nieokreślona grupa osób. To nieprawda. W zasadzie każdy tego typu projekt jest kontrolowany przez jego autora, grupę współpracowników lub korporację. Jednocześnie, dostęp do kodu źródłowego umożliwia inicjowanie nowego projektu na bazie istniejącego oprogramowania.
_ - Nierzadko dzieje się tak, że społeczność niezadowolona z kierunku rozwoju oprogramowania podejmuje próby kontynuacji projektu już według własnej koncepcji i pożądanych założeń. Przykładem może być oprogramowanie MariaDB, które powstało jako odgałęzienie (fork) relacyjnej bazy danych MySQL. Inicjatorem projektu byli Michael Widenius (współtwórca MySQL) oraz grupa byłych pracowników MySQL AB zaniepokojonych tym, co z licencją na MySQL-a zrobi nowy „właściciel” tej bazy danych, firma Oracle – dodaje Michał Trziszka. _
Istnieje wiele licencji zgodnych z zasadami Wolnego Oprogramowania, przy czym dwie najważniejsze to licencja GNU GPL oraz licencja BSD. GNU GPL wymusza udostępnienie oprogramowania na zasadach tej licencji, jeśli nowy program bazuje na kodzie objętym tą licencją. Licencja BSD jest mniej restrykcyjna i pozwala włączać wolny kod do zamkniętego oprogramowania, o ile w aplikacji wymieniona zostanie informacja o autorach kodu.
Wolne, nie znaczy darmowe
Wiele firm opiera swój model biznesowy na udostępnianiu darmowego, wolnego oprogramowania i zarabiania na płatnym wsparciu i usługach dodatkowych. Wolne oprogramowanie jest tańsze w rozwoju, bowiem nie wymaga ponoszenia kosztów, które powstają w korporacjach produkujących oprogramowanie związanych ze wsparciem klientów, marketingiem i sprzedażą.
Jednocześnie dostawcy komercyjnych rozwiązań starają się nas przekonać, że całkowity koszt posiadania takiego oprogramowania (TCO) jest niższy niż w przypadku aplikacji rozpowszechnianych na zasadach otwartych licencji. Jest to kwestia dyskusyjna, a w wielu przypadkach koszt wdrożenia, utrzymania i eksploatacji wolnego oprogramowania jest taki sam lub nawet niższy niż aplikacji komercyjnych.
Potęga społeczności
Z reguły wolne oprogramowanie jest rozwijane przy udziale społeczności. Podejście to pozwala szybciej i skuteczniej reagować na wymagania klientów. W odróżnieniu od zamkniętych aplikacji, nowe funkcje są tutaj implementowane szybciej i zgodnie z wymaganiami jego użytkowników. Projektanci i niezależni programiści mogą implementować własne funkcjonalności, które są następnie włączane do głównej linii oprogramowania lub publikowane jako dodatki. W przypadku zamkniętego oprogramowania jest to niemożliwe, a jedyną formą integracji z tego typu aplikacjami lub bibliotekami jest API programistyczne, o ile je producent danego rozwiązania zaimplementował.
Wolne oprogramowanie w dużej mierze jest zgodne ze standardami oraz korzysta z otwartych protokołów. Producenci zamkniętego oprogramowania mają w zwyczaju stosowanie własnych protokołów, formatów przechowywania danych i metod komunikacji. Nierzadko ogranicza wykorzystanie takich bibliotek i aplikacji do pewnej grupy rozwiązań dostarczanych przez danego producenta, bez możliwości łatwej integracji z oprogramowaniem i systemami firm trzecich. Podejście to jest korzystne dla dostawcy oprogramowania, ale niezgodne z ogólnoświatową ideą korzystania z otwartych standardów i protokół np. w administracji publicznej.
Zamknięte ma też zalety
Trudno nie zgodzić się z tezą, że zamknięte oprogramowanie stanowi najbardziej efektywny i zyskowny model biznesowy dla producentów oprogramowania, który pozwala inwestować w cały cykl rozwoju i wprowadzenia na rynek produktu (analiza, badanie, produkcja, marketing), a następnie realizować zyski z tej inwestycji. Wydaje się, że modele biznesowe dla otwartego oprogramowania, m.in. dotacje, udostępnianie wersji bezpłatnych i komercyjnych, sprzedaż dodatkowych usług, modułów, szkoleń, czy wsparcia technicznego, nie przynosi takich zysków jak sprzedaż własnościowego oprogramowania.
Z innych argumentów przemawiających za zamkniętym oprogramowaniem należy wymienić możliwość stosowania zabezpieczeń, które ograniczają używanie aplikacji w sposób przewidziany przez autora, czy możliwość czerpania zysków w sposób inny niż sprzedaż oprogramowania, np. reklam. Wiele mówi się także o przywiązaniu użytkowników do komercyjnego oprogramowania i ich problemach z używaniem alternatywnych, otwartych aplikacji.
Dwa modele, dwie opcje
Spory o to, który model licencjonowania oprogramowania jest lepszy, trwają od lat. Faktem jest, że wolne oprogramowanie napędza rozwój rynku IT, stanowi alternatywę dla zamkniętych aplikacji oraz daje wolność wyboru między rozwiązaniami komercyjnymi, a tymi tworzonymi przez społeczność. Sukces Linuksa, Apache’a, LibreOffice, MariaDB (odgałęzienie MySQL), GIMP-a, pokazuje że Otwarte Oprogramowanie może konkurować z aplikacjami największych softwarowych producentów: takich jak Microsoft, Oracle czy Adobe. Oba modele będą funkcjonować obok siebie