Prawdopodobnie znasz listę licencji open source oficjalnie zatwierdzonych przez OSI. Najbardziej godne uwagi jest GPL, MIT, [wstaw tutaj swoją ulubioną licencję].
Niedawno natknąłem się na projekt, który chociaż był open source (twórca udostępnił cały kod źródłowy), nie był oficjalnie open source na jednej z tych oficjalnych licencji.
Wydało źródło, ale nie obiecało, że opublikuje je w przyszłości.
Pozwolił na sugestie modyfikacji, ale nie złożył obietnic, że zaakceptuje poprawki i zabronił zewnętrznej dystrybucji wersji z łatami zewnętrznymi.
Pozwoliło to na wykorzystanie oprogramowania w projektach komercyjnych lub płatnych, ale zabroniło sprzedaży samego oprogramowania.
Przypuszczam, że można go nazwać „dostępnym źródłem”, a nie otwartym, jak nam się wydaje.
Rozumiem, dlaczego zespół zarządzający firmy nie chce robić interesów z tym oprogramowaniem. Nie mogą go rozwidlić, nie mogą go sprzedać, nie mogą stworzyć własnej wersji oprogramowania, rozpowszechniać go ani sprzedawać.
Ale czy miałoby to dla ciebie znaczenie jako część zespołu inżynierów oprogramowania, który właśnie korzysta z tego oprogramowania? Nadal mogę z tym skończyć, mogę użyć go w projekcie, za który otrzymuję wynagrodzenie (ale nie mogę sprzedać samego oprogramowania, co i tak nie jest moim biznesem), i mogę wprowadzić zmiany w kodzie, aby działał inaczej w zależności od moich potrzeb (ale nie mogę upublicznić tych modyfikacji), a jeśli chcę oficjalnie udostępnić te modyfikacje innym, zatwierdzenie zależy od samego projektu i decydują, czy włączyć je do oficjalnej wersji lub nie.
Wiemy zatem, że firma, która chce oprzeć swoją działalność na oprogramowaniu „dostępnym źródle”, nie może tego zrobić, ale czy jako osoba z zespołu inżynierii oprogramowania, czy te różnice byłyby dla Ciebie ważne, czy wydają się mniej istotne?
Ciekawe, co myślą o tym inni.
Odpowiedzi:
W przypadku projektów, które musiałyby zostać opracowane od zera, funkcje zapewniane przez to oprogramowanie, z pewnością nie jest to wygodne.
Ale to, czy porównywalny pakiet open source byłby lepszy, zależy od innych czynników:
Odpowiadając na nie , aby którykolwiek z tych czynników wskazuje na OSS jest lepszym wyborem.
Przez większość czasu sam kod nie jest czynnikiem decydującym. Trzeba zbadać większy obraz.
Projekty SIDEBAR OSS nie mogą legalnie obiecać, że utrzymają przyszłe wersje otwarte lub że będą przyszłe wersje. To jeden z powodów, dla których posiadanie otwartej licencji jest tak korzystne. Ponadto projekty OSS nie muszą akceptować łatek od autorów (szczególnie bez przeniesienia własności lub praw).
źródło
Pytanie do tej i każdej innej biblioteki zewnętrznej dotyczy konserwacji .
Jaka jest żywotność twojej aplikacji i jaka jest pozorna żywotność tej biblioteki? Twój powinien być najkrótszy.
Kto będzie naprawiał błędy w tej bibliotece? Jak wygląda stąd, twoja firma powinna wyraźnie przydzielić zasoby w przyszłości na utrzymanie tego oprogramowania, ponieważ nie możesz polegać na innych błędach naprawczych. Nie możesz dzielić obciążenia konserwacyjnego z nikim innym, ponieważ nie możesz udostępnić źródła. Chcesz znaleźć nieuchwytny błąd warunku wyścigu w kodzie, którego nie znasz?
Już sama ta myśl może sprawić, że korzystanie z biblioteki będzie zbyt drogie.
Może to być nieistotne, jeśli biblioteka jest bardzo solidna, solidna i łatwa w obsłudze na poziomie źródła, ale z mojego doświadczenia wynika, że presja rówieśników w prawdziwych projektach open source po prostu poprawia kod, ponieważ zazwyczaj robisz co możesz.
Osobiście uważałbym bardzo ostrożnie, czy przyjąłbym ten lub inny kod zewnętrzny, ponieważ jedynym powodem korzystania z kodu innych ludzi jest to , że nie musisz sam sobie z nim radzić . Pomyśl także o przyszłych opiekunach - powinieneś robić ćwiczenia przeciwpożarowe zmieniając kod w bibliotece, aby sprawdzić, czy można to w ogóle zrobić. Mogą tu być BARDZO paskudne niespodzianki.
Czy masz swobodę omawiania przedmiotowej biblioteki?
źródło
Szczerze mówiąc, nie rozumiem, dlaczego zespół zarządzający firmy miałby problemy z korzystaniem z takiej biblioteki „dostępnego źródła”. Jeśli chodzi o integrację z własnym produktem, mogą po prostu uznać go za bibliotekę o zamkniętym źródle.
Dla mnie, jako programisty, nie ma znaczenia, czy biblioteka jest „open source” czy „dostępnym źródłem”. Wolę nie dokonywać lokalnych modyfikacji biblioteki zewnętrznej, ponieważ oznacza to dodatkowe obciążenie związane z utrzymaniem. Nie tylko w przypadku znalezienia błędów w moich lokalnych modyfikacjach, ale także w związku z ponownym włączaniem modyfikacji, kiedy pojawia się nowe wydanie biblioteki.
Jedyne sytuacje, w których IMHO „open source” bije licencję „dostępnego źródła” opisaną w pytaniu, to kiedy
źródło
Dlatego Free Software Foundation używa terminów „darmowy” lub „niewolny” do opisania oprogramowania. Nie odnoszą się one do ceny, ale ograniczenia, które są nakładane na użytkowanie lub dystrybucję oprogramowania.
Wygląda na to, że trafiłeś w jeden z rzadkich przypadków, w których masz pełny dostęp do kodu źródłowego czegoś, ale oprogramowanie nie jest „Open Source” według definicji OSI .
Każdy z tych terminów może stać się mylącym. Zapłaciłem 50 USD za pierwszą kopię emacsa (na taśmie QIC), ale emacs jest wolnym oprogramowaniem . Mam kod źródłowy niektórych zastrzeżonych aplikacji, z których moja firma korzysta wewnętrznie, ale nie są one oprogramowaniem typu open source.
To, co wzbudza największą czerwoną flagę (przynajmniej dla mnie), nie gwarantuje dostępu do kodu źródłowego przyszłych wersji. Jeśli zależy ci na możliwości modyfikacji tego narzędzia, będę ostrożny. Nawet jeśli masz ustną umowę ze sprzedawcą, że zawsze będziesz mieć kod, chyba że jest to forma umowy ... umowa ta nigdy nie doszła do skutku.
Jako CTO staram się, aby nie polegać na niewolnym oprogramowaniu. W przeszłości byłem na złym końcu blokady dostawcy, błąd, którego lubię unikać. Chociaż używamy pewnych zastrzeżonych rzeczy, nasza firma nie poniosłaby nadmiernych trudności, gdybyśmy nagle nie mogli ich dłużej używać.
Wydaje mi się, że budujesz coś wokół posiadania tego oprogramowania i dostępu do kodu, więc polecam ci coś na piśmie, co mówi, że zawsze będziesz miał dostęp. Co się stanie, jeśli sprzedawca zostanie zakupiony?
źródło
To ma znaczenie. Główne problemy z opisanym przez ciebie podejściem „dostępnego źródła”:
Moja sugestia: spróbuj przekonać twórcę do wydania oprogramowania na licencji open source. To powinno być korzystne dla wszystkich - ty, ponieważ otrzymujesz oprogramowanie, którego potrzebujesz, w ramach licencji open source, twórca, ponieważ stworzenie projektu open source może znacznie zwiększyć sukces oprogramowania na dłuższą metę.
źródło