7Jul
Geeks często opisują programy jako "open source" lub "free software". Jeśli zastanawiasz się dokładnie, co oznaczają te terminy i dlaczego mają znaczenie, czytaj dalej.(Nie, "darmowe oprogramowanie" nie oznacza tylko, że możesz je pobrać za darmo.)
Niezależnie od tego, czy program jest open-source, czy nie, nie ma znaczenia dla programistów, w ostatecznym rozrachunku ma znaczenie również dla użytkowników. Licencje na oprogramowanie typu open source zapewniają użytkownikom swobodę, której w przeciwnym razie nie mieliby.
Image Credit: Quinn Dombrowski o Flickr
Definicja Open Source
Jeśli program jest open-source, jego kod źródłowy jest swobodnie dostępny dla jego użytkowników. Jego użytkownicy - i wszyscy inni - mają możliwość pobierania tego kodu źródłowego, modyfikowania go i dystrybuowania własnych wersji programu. Użytkownicy mają również możliwość dystrybucji tak wielu kopii oryginalnego programu, jak chcą.Każdy może korzystać z programu w dowolnym celu;nie ma opłat licencyjnych ani innych ograniczeń oprogramowania. OSI ma bardziej szczegółową definicję "otwartego źródła" na swojej stronie internetowej.
Na przykład system Ubuntu Linux jest systemem operacyjnym typu open source. Możesz pobrać Ubuntu, utworzyć dowolną liczbę kopii i przekazać je znajomym. Możesz zainstalować Ubuntu na nieograniczonej ilości komputerów. Możesz tworzyć remisy płyty instalacyjnej Ubuntu i dystrybuować je. Jeśli byłeś szczególnie zmotywowany, możesz pobrać kod źródłowy programu w Ubuntu i zmodyfikować go, tworząc własną dostosowaną wersję tego programu - lub samego Ubuntu. Licencje open-source pozwalają na to, podczas gdy licencje z zamkniętym kodem nakładają na ciebie ograniczenia.
Przeciwieństwem oprogramowania open source jest oprogramowanie o zamkniętym kodzie źródłowym, które posiada licencję ograniczającą użytkowników i przechowującą z nich kod źródłowy.
Firefox, Chrome, OpenOffice, Linux i Android to niektóre popularne przykłady oprogramowania open-source, podczas gdy Microsoft Windows jest prawdopodobnie najbardziej popularnym oprogramowaniem zamkniętego źródła.
Open Source a wolne oprogramowanie
Aplikacje open source są ogólnie dostępne bezpłatnie - chociaż nic nie stoi na przeszkodzie, aby programista pobierał opłaty za kopie oprogramowania, jeśli pozwolą później na redystrybucję aplikacji i jej kodu źródłowego.
Jednak nie o to chodzi w "wolnym oprogramowaniu"."Wolny" w wolnym oprogramowaniu oznacza "wolny jak na wolności", nie "wolny jak w piwie". Obóz wolnego oprogramowania, kierowany przez Richarda Stallmana i Free Software Foundation, koncentruje się na etyce i moralności używania oprogramowania, które może byćkontrolowane i modyfikowane przez użytkownika. Innymi słowy obóz wolnego oprogramowania koncentruje się na swobodzie użytkownika.
Richard Stallman. Zdjęcie wykonane przez Fripog na Flickr.
Ruch oprogramowania typu open source został stworzony, aby skupić się na bardziej pragmatycznych powodach wyboru tego typu oprogramowania. Adwokaci korzystający z otwartego oprogramowania chcieli skupić się na praktycznych korzyściach płynących z używania oprogramowania o otwartym kodzie źródłowym, które byłoby bardziej atrakcyjne dla przedsiębiorstw niż etyki i moralności.
W końcu zarówno zwolennicy wolnego oprogramowania, jak i wolnego oprogramowania opracowują ten sam rodzaj oprogramowania, ale nie zgadzają się z tym komunikatem.
Rodzaje licencji
Istnieje wiele różnych licencji używanych w projektach open source, w zależności od tego, który programista preferuje ich program.
GPL, czyli Powszechna Licencja Publiczna GNU, jest szeroko stosowana przez wiele projektów open-source, takich jak Linux. Poza wszystkimi powyższymi definicjami open-source, warunki GPL określają, że jeśli ktokolwiek modyfikuje program open source i dystrybuuje pracę pochodną, musi także rozpowszechniać kod źródłowy dla swojej pracy pochodnej. Innymi słowy, nikt nie może wziąć kodu open-source i stworzyć z niego programu o zamkniętym kodzie źródłowym - musi on zwrócić swoje zmiany z powrotem do społeczności. Microsoft określił GPL jako "wirusową" z tego powodu, ponieważ wymusza ona programy zawierające kod GPL w celu wydania własnego kodu źródłowego. Oczywiście programiści programu mogą zrezygnować z używania kodu GPL, jeśli jest to problem.
Niektóre inne licencje, takie jak licencja BSD, nakładają mniej ograniczeń na programistów. Jeśli program jest licencjonowany na podstawie licencji BSD, każdy może włączyć kod źródłowy programu do innego programu. Nie muszą wprowadzać swoich zmian z powrotem do społeczności. Niektórzy widzą, że jest to jeszcze bardziej "darmowe" niż licencja GPL, ponieważ daje to programistom swobodę włączania kodu do ich własnych programów o zamkniętym kodzie źródłowym, podczas gdy niektórzy ludzie postrzegają go jako mniej "darmowy", ponieważ odbiera on prawaod użytkowników końcowych programu pochodnego.
Korzyści dla użytkowników
Nie chodzi tylko o suche, nieistotne rzeczy, które mają znaczenie tylko dla programistów. Najbardziej oczywistą zaletą oprogramowania open-source jest to, że można go uzyskać za darmo. Przykład powyższego Ubuntu Linux wyraźnie to pokazuje - w przeciwieństwie do Windows, możesz zainstalować lub rozpowszechniać dowolną liczbę kopii Ubuntu, bez żadnych ograniczeń.Może to być szczególnie przydatne serwery - jeśli konfigurujesz serwer, możesz po prostu zainstalować na nim Linuksa.jeśli konfigurujesz wirtualny klaster serwerów, możesz łatwo powielić pojedynczy serwer Ubuntu. Nie musisz się martwić o licencjonowanie i ile instancji Linuksa możesz uruchomić.
Program open-source jest również bardziej elastyczny. Na przykład nowy interfejs Windows 8 rozczarował wielu długoletnich użytkowników systemu Windows. Ponieważ system Windows jest zamknięty, żaden użytkownik systemu Windows nie może korzystać z interfejsu systemu Windows 7, modyfikować go i sprawić, by działał poprawnie w systemie Windows 8.( Niektórzy użytkownicy systemu Windows próbują, ale jest to żmudny proces inżynierii wstecznej i modyfikowania plików binarnych.)
Gdy na pulpicie Linux, takim jak Ubuntu, wprowadzono nowy interfejs pulpitu, na którym niektórzy użytkownicy nie są fanami, użytkownicy mają więcej opcji. Na przykład, kiedy GNOME 3 zostało wydane, wielu użytkowników Linuksa było jednakowo wyłączonych. Niektórzy zabrali kod do starej wersji GNOME 2 i zmodyfikowali go tak, aby działał na najnowszych dystrybucjach Linuksa - to jest MATE.Niektórzy zabrali kod do GNOME 3 i zmodyfikowali go, aby działał w sposób preferowany - to jest cynamon. Niektórzy użytkownicy właśnie przełączyli się na istniejące alternatywne komputery stacjonarne. Jeśli system Windows był open-source, użytkownicy Windows 8 mieliby większy wybór i większą elastyczność.Wystarczy spojrzeć na CyanogenMod, popularną, opartą na społeczności dystrybucję Androida, która dodaje funkcje i obsługę nowych urządzeń.Oprogramowanie
Open-source pozwala także programistom "stać na barkach gigantów" i tworzyć własne oprogramowanie. Obserwuj systemy Android i Chrome OS, które są systemami operacyjnymi opartymi na systemie Linux i innym oprogramowaniu o otwartym kodzie źródłowym. Rdzeń systemu operacyjnego Apple X - a także iOS - został zbudowany na kodzie open-source. Valve zaciekle pracuje nad przeniesieniem swojej platformy gier Steam na system Linux, ponieważ umożliwiłoby to stworzenie własnego sprzętu i kontrolę nad własnym losem w sposób, który nie jest możliwy w systemie Microsoft Windows.
To nie jest wyczerpujący opis - napisano na ten temat całe książki - ale teraz lepiej zorientuj się, czym właściwie jest oprogramowanie open source i dlaczego jest dla ciebie przydatne.