Czym jest oprogramowanie open source? Czym jest FOSS?

Jak powstała i rozprzestrzeniała się idea wolnego oprogramowania? Jak wygląda ona dzisiaj i co możesz dzięki niej zyskać?


Każdy program zbudowany jest z kodu, dzięki któremu może wykonywać konkretne polecania i zachowywać się tak, jak tego po nim oczekujesz. Kod ten jest najczęściej strzeżoną tajemnicą, do której dostęp mają tylko nieliczni. Jednak są też i takie osoby, które postanowiły udostępnić go za darmo każdemu, kto tylko chce wejść w jego posiadanie. To właśnie open source - dosłownie oznacza to "otwarte źródło", ale w języku polskim przyjęło się mówić "wolne oprogramowanie" lub - co bardziej pasuje do angielskiego pierwowzoru - "oprogramowanie z otwartym kodem źródłowym".

Propagatorzy tego rozwiązania wychodzą z prostego założenia, że każdy powinien mieć prawo dostępu do kodu oprogramowania, z którego korzysta. Jednak istnieje wiele kwestii, które dzielą miłośnikoów wolnego oprogramowania na kilka "frakcji", mających inne spojrzenie na tę sprawę. Dlatego istnieje zarówno open source movement ("ruch otwartych źródeł"), jak i free software movement (ruch na rzecz wolnego oprogramowania). Ogólnie wszyscy zgadzają się co do samych założeń - każdy kod tworzący oprogramowanie powinien być dostępny w celach zmiany, przeglądania i dalszej dystrybucji (mówiąc w skrócie). "Zmiany" i "dalsza dystrybucja" leżą w samym sercu tej filozofii - samo udostępnienie kodu to nie wszystko.

W pewien sposób "oprogramowanie o otwartym kodzie źródłowym" to nawiązanie do prehistorii IT: gdy pojawiły się pierwsze komputery, kod źródłowy oprogramowania był dostępny dla każdego naukowca i inżyniera. W tych czasach komputerów była zaledwie garstka i spodziewano się, że będą aktywnie ulepszane i wykorzystywane przez użytkowników, do czego niezbędny jest im kod. Oprogramowanie traktowane było jako dodatek do podzespołów; dopiero w 1974 roku uznano je za własność intelektualną, podlegająca ochronie na mocy przepisów o prawie autorskim. Gdy w latach 70-tych na świecie powszechne stały się mikrokomputery (u nas miało to miejsce w drugiej połowie lat 80-tych), szybko zorientowano się, że oprogramowanie ma wartość mierzoną w gotówce, dlatego zaczęto ograniczać dostęp do jego kodu, aby chronić prawa autorskie twórców. Sam Bill Gates wystosował w 1976 roku list otwarty - Open Letter to Hobbyists - w newsletterze MITS, twierdząc, iż MITS (Micro Instrumentation and Telemetry Systems to firma założona w 1968, która opracowała w 1974 r. komputer Altair 8800, uważany za pierwszy komputer osobisty na rynku) nie może kontynuować produkcji interpretera Altair BASIC, a także dystrybucji i utrzymywania wysokiej jakości swoich produktów bez otrzymywania płatności.

Ponieważ rynek oprogramowania rósł w tym czasie bardzo szybko, Gates znalazł silne poparcie, jednak znalazło się też wielu informatyków, którzy byli przeciwko komercjalizacji - jeden z nich to Richard Stallman, który w 1985 roku założył Free Software Foundation (Fundację Wolnego Oprogramowania). "Wolne" oznacza pozwolenie użytkownikowi na zmianę i dalszą dystrybucję kodu, a co ciekawe - nie ma zakazu pobierania opłat za tak zmienione oprogramowanie. Choć sam Stallman jest niechętny terminowi "open source", które jego zdaniem nie oddaje oryginalnej filozofii wolnego softu, to jednak stał się on synonimem idei, która dominuje w tekstach i dyskusjach na ten temat. FOSS to z kolei skrót od free and open-source software, czyli wolne i otwarte oprogramowanie. W praktyce każdy program na licencji zgodnej z definicją Free Software Foundation jest jednocześnie zgodny z bardziej liberalną definicją Open Source Initiative (o którym za chwilę), jednak różnice w założeniach obu definicji powodują, że nurt związany z FSF i projektem GNU obstaje przy odróżnianiu wolnego oprogramowania (aspekt prawny/ideowy) od otwartego oprogramowania (aspekt techniczny).

Licencje oprogramowania open source

Wszystkie prawa i odpowiedzialność za oprogramowanie open source znajdują się w przepisach licencji, na której oprogramowanie jest rozpowszechniane. Prawnie podlega ono ochronie z powodu praw autorskich, dlatego licencja musi zawierać jasną informację o możliwości modyfikacji kodu przez użytkownika. Oryginalnie licencje oprogramowania miały na celu ochronę praw twórców, w przypadku wolnego oprogramowania działają dokładnie odwrotnie - każdy może je zmieniać. Pierwszą licencją open source było prawdopodobnie pozwolenie na kopiowanie GNU Emacs, edytor tekstu stworzony w 1985 roku przez Stallmana. Z biegiem czasu pojawiły się inne rodzaje licencji - spis aktualnych znajduje się na tej stronie. Wszystkie łączą trzy podstawowe, wspomniane wcześniej zasady: dostęp do kodu, możliwość jego modyfikacji oraz dalszej dystrybucji. Jedną z ciekawszych jest copyleft, czyli odwrotność copyright. Termin ten został użyty przez Li-Chen Wanga, autora interpretatora języka BASIC o nazwie Palo Alto Tiny BASIC. Kod źródłowy tego interpretera, który został opublikowany w maju 1976 r w czasopiśmie Dr. Dobb's Journal, zawierał w nagłówku następujący tekst: TINY BASIC FOR INTEL 8080; VERSION 1.0; BY LI-CHEN WANG; 10 JUNE, 1976; @COPYLEFT; ALL WRONGS RESERVED.

Najbardziej rozpowszechnione są licencje BSD - skupiają się na prawach użytkownika, zezwalają nie tylko na modyfikacje kodu źródłowego i jego rozprowadzanie w takiej postaci, ale także na rozprowadzanie produktu bez postaci źródłowej czy włączenia do zamkniętego oprogramowania, pod warunkiem załączenia do produktu informacji o autorach oryginalnego kodu i treści licencji. Inna popularna to GNU - została tworzona w 1989 roku przez Richarda Stallmana i Ebena Moglena na potrzeby Projektu GNU. Druga wersja licencji GNU została wydana w roku 1991, a trzecia – 29 czerwca 2007.

Open Source Initiative

Z samej swojej definicji open source nie może być - i nie jest - kontrolowane przez pojedynczą osobę czy organizację. W 1998 grupa programistów powołała do życia Open Source Initiative (OSI), organizację non-profit, mającą promować ideę wolnego oprogramowania w przemyśle programistycznym. Stworzyli założenia dla licencji oprogramowania o otwartym kodzie źródłowym, a oprócz trzech podstawowych założeń doszła także informacja o zakazie dyskryminacji jakichkolwiek grup społecznych oraz urządzeń.

Gdzie powstaje open source?

Oprogramowanie open source powstaje praktycznie wszędzie - od uniwersytetów i największych korporacji po domorosłych programistów. Proces jego powstawania nie różni się od programów innego typu, z jednym wyjątkiem - kod może zostać udostępniony społeczności podobnie myślących informatyków, którzy pomagają w wyłapywaniu błędów, a także jego ulepszaniu. I wszystko to wykonują oczywiście za darmo. Społeczność jest zorganizowana i podzielona na grupy dotyczące różnego rodzaju projektów. Są to zarówno pojedyncze aplikacje, jak i całe ich zestawy. Wszystkie wersje są dostępne przez cały czas i każdy ma w nie wgląd. Jedną z najbardziej znanych społeczności open source jest GitHub.

Czasem projekt zaczyna się od jednej osoby, czasem tworzy go społeczność lub grupa zainteresowanych tym samym efektem programistów. Zazwyczaj każdy zajmuje się tylko tym obszarem, który najlepiej zna. Zdarza się także, że niektóre projekty są sponsorowane przez firmy komercyjne, które potrzebują odpowiedniego oprogramowania dla siebie, a zdarzały się również sytuacje, że najbardziej zdolni programiści otrzymywali od nich propozycje pracy lub wynagrodzenie.

Przykłady oprogramowania open source

Oprogramowanie open source jest praktycznie wszędzie we współczesnym internecie oraz na komputerach. Najbardziej znanym przykładem jest oczywiście Linux, wariant Unixa, który kontroluje miliony serwerów. Inne, doskonale znane większości użytkowników, to serwer sieciowy Apache, baza danych MySQL oraz WordPress. Istnieje także wiele frameworków, jak Ruby on Rails czy .Net Core. Open source oferuje także darmowe alternatywy dla komercyjnego, nierzadko drogiego oprogramowania. Na przykład GIMP to alternatywa dla Photoshopa, a LibreOffice Productivity Suite dla MS Office. Ale open source dotyczy także urządzeń mobilnych i tu bez wątpliwości perfekcyjnym przykładem jest Android. Google często korzysta z open source - nie tylko opiera na nim swój system mobilny, ale również przeglądarkę Chrome - wyrasta ona z Chromium.

Jednak oprogramowanie open source nie zastąpiło komercyjnego. Na początku lat 90-tych miłośnicy Linuxa głosili wszem i wobec, że już rok-dwa i system ten zdominuje desktopy. Minęło niemal 30 lat i w chwili obecnej Linux traktowany jest jako system dla hobbystów. Może zmienić to zwiększające się zainteresowanie SaaS - usługi chmurowe często opierają się na oprogramowaniu open source.

Społeczność open source

Członkowie społeczności open source mówią, że nie jest to tylko tworzenie oprogramowania, ale również pasja i filozofia życia. Może do niej dołączyć każdy, kto potrafi programować. A jeśli nie potrafi - istnieją szkolenia i kursy, prowadzone przez organizacje non-profit, które umożliwiają nauczenie się tego. Ludzie dołączają do społeczności aby poznać innych pasjonatów, a także pracować wspólnie nad lepszym oprogramowaniem, które umożliwi cieszenie się wszystkimi dawanymi przez współczesne komputery i urządzenia możliwościami. Choć społeczność dzisiaj nie jest tak widoczna, jak choćby dekadę temu, to patrząc na sukces Chrome i Androida można powiedzieć, że open source stanowi ważną część współczesnego świata. W 2001 roku, ówczesny szef Microsoftu, Steve Ballmer, powiedział, że z powodu swojej otwartej licencji "Linux jest rakiem, który z powodu swojej otwartej licencji ma destrukcyjny wpływ na kwestie własności intelektualnej", jednak ponad dekadę później zrewidował swoje poglądy, a Microsoft obecnie intensywnie używa i produkuje open source.

Co daje Ci open source?

Skoro już wiemy, czym, jest open source, to czas najwyższy sprawdzić, co Ci daje? Przede wszystkim - darmowe oprogramowanie każdego rodzaju, zaczynając od systemu operacyjnego (Linux, Android), kończąc na mniej i bardziej zaawansowanych programach, a nawet grach komputerowych. Ponadto w większości przypadków oprogramowanie jest cały czas rozwijane i aktualizowane, dzięki czemu masz coraz lepsze wersje, jednak - uwaga - w każdej chwili twórca projektu może ogłosić jego koniec i tylko od dobrej woli innych zależy, czy będzie on kontynuowany. Jednym słowem - brak gwarancji wsparcia po jego zakończeniu. Cieszące się popularnością projekty rozwijane są od lat, a szanse na długi cykl życia danego programu jest tym większy, im więcej osób go używa.

Dla osób uczących się programowania open source daje możliwość podejrzenia poprawnie napisanego kodu, zaś możliwości jego modyfikowania i sprawdzania efektów to wspaniały poligon doświadczalny, pozwalający na przeprowadzanie różnorakich doświadczeń i zdobywanie wiedzy w praktyce.