Istnieją dwie główne filozofie projektowania stojące za tworzeniem oprogramowania, zamkniętego źródła i otwartego źródła. Warunki te odnoszą się do kodu źródłowego oprogramowania i nałożonych na niego ograniczeń lub ich braku.
Wskazówka: Kod źródłowy to kod, w którym jest napisany program. Zazwyczaj oprogramowanie jest kompilowane w bardziej wydajny kod maszynowy przed dystrybucją, co utrudnia powrót do oryginalnego kodu źródłowego. Jednak dzięki kodzie źródłowemu możesz zobaczyć wszystko, do czego oprogramowanie jest przeznaczone, jak to robi i doskonale je replikować.
Co to jest zamknięte źródło?
W oprogramowaniu o zamkniętym kodzie źródłowym kod źródłowy oprogramowania zastrzeżony i prywatny. Chociaż może być bezpłatna lub płatna, możesz uzyskać tylko licencję na korzystanie z oprogramowania. Ta licencja będzie obejmować ograniczenia dotyczące takich rzeczy, jak edytowanie oprogramowania.
Dla porównania, oprogramowanie o otwartym kodzie źródłowym swobodnie publikuje swój kod źródłowy i ogólnie zachęca ludzi do współtworzenia w celu dodawania funkcji lub naprawiania błędów. Oprogramowanie typu open source jest ogólnie, ale nie zawsze, bezpłatne.
Zalety oprogramowania o zamkniętym kodzie źródłowym
Główną zaletą oprogramowania o zamkniętym kodzie źródłowym jest łatwość, z jaką programista może egzekwować swoją politykę licencyjną i prawa autorskie. Jeśli kod źródłowy jest zamknięty, nikt inny nie może go użyć do łatwego skopiowania oprogramowania. Zachowując bezpośrednią kontrolę nad projektem, łatwiej jest mieć jedną skoordynowaną wizję przyszłego rozwoju niż w środowisku open source.
Bycie jedynym programistą posiadającym oprogramowanie oznacza, że możesz pobierać za nie więcej pieniędzy, ponieważ jest mniej konkurencji. Te dodatkowe pieniądze mogą wpłynąć zarówno na rozwój oprogramowania, jak i wsparcie dla użytkowników, którzy je kupili.
Zalety oprogramowania open source
Dzięki oprogramowaniu typu open source każdy, jeśli chce, może poświęcić swój czas i wysiłek na realizację projektu. Może to skutkować znacznie większą społecznością programistów niż podobny projekt o zamkniętym kodzie źródłowym, co oznacza więcej oczu do wykrywania problemów z bezpieczeństwem.
Wskazówka: tylko dlatego, że istnieje więcej osób, które mogą szukać luk w zabezpieczeniach, nie oznacza to, że tak jest. Istnieje wiele przypadków znajdowania błędów sprzed kilkudziesięciu lat w otwartym oprogramowaniu, których nikt wcześniej nie zauważył.
Projekty open source są często utrzymywane przez entuzjastów, którzy są bardziej skłonni do jak najszybszego włączenia nowych standardów itp.
Nawet jeśli oprogramowanie o otwartym kodzie źródłowym jest udostępniane za darmo, możliwe jest oferowanie płatnej usługi wsparcia lub inne metody zapewniania źródła finansowania.
Ani otwarte, ani zamknięte źródła nie są koniecznie lepszą filozofią projektowania niż ta druga. Obie mają zalety i wady i są przydatne jako konkurencja między sobą.