Wady i zalety rozwiązań Open Source
Otwarte oprogramowanie cieszy się coraz większym zainteresowaniem nie tylko developerów, firm z sektora IT, ale także szeroko rozumianego biznesu. Należy zatem zastanowić się, czy rzeczywiście warto stawiać na rozwiązania Open Source.
Open Source to buzzword, który wywołuje emocje na całym świecie od lat, ale w ostatnim czasie wydaje się, że wzrost zainteresowania otwartym oprogramowaniem nabrał wyjątkowo dużego tempa. Dotyczy to również Polski. Nieprzypadkowo to właśnie w naszym kraju odbywa się jedna z największych europejskich konferencji poświęcona tego rodzaju oprogramowaniu, czyli Open Source Day. Nad Wisłą można znaleźć bardzo wielu zwolenników otwartego oprogramowania. Przeprowadzone w 2017 roku badanie pokazuje, że 97% polskich firm z sektora IT korzysta z rozwiązań Open Source przy rozwijaniu własnych narzędzi IT. Największą popularnością cieszą się otwarte systemy operacyjne (korzysta z nich niemal 26% firm), a w dalszej kolejności otwarte bazy danych (19,4%), rozwiązania związane z automatyzacją (14,93%) i kontenerami pozwalającymi upraszczać tworzenie oraz wdrażanie nowego kodu (14,63%). Natomiast na piątym miejscu znalazły się rozwiązania chmurowe (12,24%).
Warto zauważyć, że podobna tendencja do opisanej wyżej występuje tak naprawdę na całym świecie. Z analizy firmy badawczej Forrester Research wynika, że coraz więcej firm z listy Fortune 100 korzysta z otwartego oprogramowania, wprowadzając innowacyjne rozwiązania cyfrowe. Z kolei ankieta przeprowadzona przez The Linux Foundation wśród różnych firm na całym świecie pokazała, że rozwiązania Open Source stają się coraz ważniejsze dla biznesu. Mało tego, wdrażanie najlepszych praktyk Open Source w tych firmach sprawia, że programiści stają się bardziej produktywni i bardziej zaangażowani w rozwój projektów (szczególnie w zespołach Inżynierii Produktu i DevOps). Do tego 60% programistów jest zdania, że projekty z wykorzystaniem rozwiązań Open Source, nad którymi pracowali, miały znaczący wpływ na rozwój całej zatrudniającej ich firmy. Co ciekawe, w wykorzystaniu otwartego oprogramowania przodują największe firmy (63%), które przecież mogłyby pozwolić sobie bez problemu na komercyjne rozwiązania. Małych podmiotów, korzystających z Open Source, jest zaledwie 37%. Skąd tak duże zainteresowanie otwartym oprogramowaniem? Zanim to sprawdzimy, warto dokładnie wytłumaczyć, co kryje się za terminem Open Source.
Czym jest Open Source?
Często używa się terminów „otwarte oprogramowanie” lub „wolne oprogramowanie”, ale co to właściwie oznacza? Najwięcej osób sądzi, że Open Source to po prostu darmowe oprogramowanie. Rzeczywiście może być bezpłatne, ale nie zawsze jest takie. Tutaj warto podkreślić, że otwarte oprogramowanie to nie kwestia ceny, ale wolności. Takie zdanie można znaleźć w oficjalnym dokumencie z definicją Open Source. Wolność odnosi się do prawa użytkowników w zakresie uruchamiania programu w dowolnym celu (pierwszy rodzaj wolności, tzw. wolność 0), analizowania i dostosowania programów do własnych celów (wolność 1), rozpowszechniania kopii (wolność 2) czy ulepszania aplikacji (wolność 3). Oczywiście najistotniejszym warunkiem w przypadku otwartego oprogramowania jest powszechny dostęp do kodu źródłowego.
Nie można zapomnieć, że oprogramowanie Open Source również posiada licencję, a właściwie różne rodzaje licencji. Główny podział tych licencji to:
- copyleft – komercjalizacja niedozwolona;
- non-copyleft – komercjalizacja dozwolona.
Do najczęściej używanych licencji Open Source należą:
- GNU GPL (General Public License) – to licencja wirusowa, która oznacza, że efekty pracy bazujące na tej licencji również muszą być udostępniane jako GPL. To licencja copyleft.
- BSD (Berkeley Software Distribution License) – liberalna licencja, która pozwala modyfikować kod źródłowy i w takiej postaci go dystrybuować, nawet bez kodu źródłowego. Takie oprogramowanie może stać się nawet częścią zamkniętego oprogramowania (należy jednak dołączyć informacje o autorach oryginalnego kodu i treści licencji). To licencja non-copyleft.
- GNU LGPL (Lesser General Public License) – tutaj licencja copyleft nakładana jest jedynie na kod źródłowy, natomiast dzieła pochodne mogą być już udostępniane komercyjnie.
To oczywiście kilka przykładów najpopularniejszych licencji otwartego oprogramowania. Warto dodać, że obecnie istnieje ponad 2000 różnych licencji w projektach Open Source. Osobiście jestem wielkim fanem open source i pracuję na co dzień z otwartym systemem Umbraco CMS (Dowiedz się więcej we wpisie Co to jest Umbraco CMS i do czego służy? Poznaj najlepszy CMS dla biznesu).
Zalety oprogramowania Open Source
Skoro otwarte oprogramowanie jest tak popularne, to znak, że wiele osób dostrzega jego liczne zalety. Jakie są zatem plusy rozwiązań Open Source? Warto znowu odwołać się do badania The Linux Foundation. Według nich 26,6% developerów za największą zaletę uważa elastyczność otwartego oprogramowania, czyli możliwość dostosowania rozwiązań Open Source do potrzeb konkretnej firmy. Nieco mniej, bo 25,18% badanych podkreśla brak uzależnienia od jednego dostawcy, natomiast 20,92% ankietowanych za największą zaletę otwartego oprogramowania uważa efektywność kosztową. Jak widać, dla każdego impulsem do używania oprogramowania Open Source może być inna przesłanka.
Powyższe badanie już zasygnalizowało, z jakiego powodu otwarte oprogramowanie jest często brane pod uwagę przy rozwijaniu różnych projektów na rzecz biznesu. Wspomniano tam między innymi o aspekcie finansowym. Bez wątpienia można tu mówić o niskim koszcie początkowym, ponieważ korzysta się z istniejącego już kodu źródłowego. Zatem gotowe narzędzie potem wzbogaca się o nowe rozwiązania. Z raportu 451 Group wynika, że 83% firm korzystających z Open Source może się pochwalić dużymi oszczędnościami związanymi z implementacją zarówno otwartego oprogramowania, jak i komercyjnych projektów, które są oparte na Open Source.
Ogromną zaletą otwartego oprogramowania jest jego duża elastyczność. Takie rozwiązania można z reguły łatwo modyfikować, dodawać nowe funkcjonalności, moduły, można dokonywać transformacji narzędzi zgodnie z potrzebami biznesowymi firmy. Nie ma tu ograniczeń, które narzuca komercyjne oprogramowanie. Open Source pozwala łatwo tworzyć unikalną infrastrukturę IT.
Ważną zaletą jest także uniezależnienie od jednego dostawcy. Jeśli większość oprogramowania pochodzi od jednego producenta, firma uzależnia się od jego warunków finansowych, poprawek, kolejnych wersji, wsparcia technicznego i narażona jest na różne perturbacje, gdy dostawca ma na przykład kłopoty finansowe. Brak przywiązania do płatnego produktu pozwala na większą swobodę, nie trzeba się podporządkowywać wymaganiom danego oprogramowania, ale można go dostosować do własnej infrastruktury IT.
To oczywiście nie wszystkie zalety Open Source. Warto zwrócić uwagę, że nad takim oprogramowaniem pracuje często bardzo szeroka społeczność, a wśród niej nie brakuje wręcz wybitnych i niezwykle doświadczonych developerów. To często przekłada się na wysoką niezawodność otwartego oprogramowania. Duża grupa ludzi, która pracuje nad danym oprogramowaniem Open Source, ma też większą szansę szybciej wyłapać różnego rodzaju bugi. To zwiększa także bezpieczeństwo otwartego oprogramowania, ponieważ potencjalne luki są błyskawicznie wyłapywane. Również programiści mają większą swobodę. Nie są związani tajemnicą, więc mogą opowiadać o pracach nad oprogramowaniem Open Source, dzielą się pomysłami, rozwiązaniami i problemami związanymi z takimi projektami ze znajomymi, ale również na konferencjach, spotkaniach itd. Do tego wielu developerów ma tę satysfakcję, pracując nad otwartym oprogramowaniem, że może się pochwalić swoim kodem, jego wysoką jakością, niebanalnymi rozwiązaniami. Wszystko to byłoby niemożliwe w przypadku zamkniętego oprogramowania. Społeczność obserwuje takich programistów, więc dbają o jakość kodu. To również ważny aspekt. Dobrym przykładem jest popularna na GitHubie platforma Umbraco CMS.
Czy są jakieś wady Open Source?
Oczywiście byłoby dużą naiwnością sądzić, że Open Source nie ma żadnych wad. Dla wielu firm problemem może być brak regularnego wsparcia technicznego. Co prawda nad oprogramowaniem może pracować szeroka społeczność, ale robią to z pasji, a nie dlatego, że muszą. To nie ich praca, więc pomoc w rozwiązywaniu różnych problemów zależy od ich dobrej woli, a nie jest powinnością. W przypadku narzędzi Open Source nie można liczyć na szkolenia, na regularną pomoc. Niekiedy trzeba po prostu czekać, aż ktoś zajmie się danym problemem, a może to trwać naprawdę długo. Oczywiście taki problem jest szczególnie kłopotliwy dla firmy, która korzysta z otwartego oprogramowania, a nie ma własnych ludzi mogących rozwiązywać na bieżąco problemy techniczne związane z tym oprogramowaniem.
Niebezpieczeństwem w przypadku Open Source może być także fakt, że wiele projektów umiera śmiercią naturalną. Po jakimś czasie społeczność może stracić zainteresowanie rozwijaniem danego narzędzia Open Source. Jest jeszcze jedna ważna kwestia. Wspomnieliśmy, że otwarte oprogramowanie jest z reguły bezpieczniejsze. Mogą się jednak pojawić problemy. Wśród setek lub tysięcy programistów, którzy pracują nad danym narzędziem, może znaleźć się osoba niemająca dobrych intencji. Łatwo wyobrazić sobie sytuację, gdy ten programista wprowadza do oprogramowania złośliwy kod, wykorzystuje luki, tworzy z premedytacją bugi itd. Kod otwartego oprogramowania mogą bowiem edytować wszyscy, nie ma rygorystycznych kontroli jakości.
Narzędzia Open Source nie muszą być również tak przyjazne dla użytkowników, jak na przykład komercyjne oprogramowanie. Oczywiście nie zawsze tak jest. Jednak czasami jeden lub drugi programista jest bardziej zainteresowany rozwiązaniem jakiegoś problemu programistycznego czy wcieleniem pomysłu, który przyszedł mu kiedyś do głowy, że nie skupia się na przykład ma przyjaznym interfejsie.
Poznaliśmy tu oczywiście tylko część zalet i wad otwartego oprogramowania. Zarówno jednych, jak i drugich można znaleźć o wiele więcej, ale nie o to tu przecież chodzi tak naprawdę. Open Source to inny sposób myślenia niż komercyjne oprogramowanie i mimo wszystko wydaje się jednak, że plusy narzędzi Open Source przewyższają minusy. Niektórzy doświadczeni developerzy twierdzą, że jeśli ktoś nie koduje Open Source, nigdy nie nauczy się sprawnie współpracować w zespole i nie nabierze odpowiedniego nawyku podchodzenia do informacji. Jeśli nawet nieco w tym przesady, otwarte oprogramowanie to dobry sposób na rozwój programisty i korzyści biznesowe dla firmy. Nie jest wcale przypadkiem, że ostatnio nawet Microsoft otworzył się na Open Source.