Czy ma dla Ciebie znaczenie to, że oprogramowanie jest „dostępnym źródłem”, ale nie „otwartym źródłem”


11

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.


1
Myślałem, że po części OSS polegało na tym, że nie polegałeś na kimś innym, aby zaakceptować i rozpowszechniać łatkę, miałeś źródło, dzięki któremu mógłbyś zrobić wszystko sam (łącznie z ustawieniem tego wszystkiego jako konkurencyjnej gałęzi / produktu) jeśli chcesz)?
Jon Hopkins,


Wygląda na to, że postanowienia licencyjne były dość jasne w odniesieniu do tego oprogramowania. Wygląda na to, że należy napisać własny kod zamiast korzystać z kodu licencjonowanego w sposób, który nie pozwala na faktyczne użycie kodu w taki sposób, w jaki jest potrzebny.
Ramhound,

Odpowiedzi:


5

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:

  • czy zostanie wykorzystany do świadczenia niektórych usług lub w pakiecie w ramach innego produktu?
  • czy mają zasoby do samodzielnego ulepszania i utrzymywania produktu?
  • czy istnieje przewaga konkurencyjna w korzystaniu z tego oprogramowania nad wersją open source (w kodzie lub zarządzaniu projektem)?

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).


2

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?


2

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

  • licencja na nasz produkt wymaga również ujawnienia źródeł zawartych bibliotek
  • zajmujemy się produkcją ulepszonej / rozszerzonej wersji biblioteki

1

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?


-1

To ma znaczenie. Główne problemy z opisanym przez ciebie podejściem „dostępnego źródła”:

  • Nie masz kontroli nad swoim przeznaczeniem technologicznym, jeśli nie masz możliwości modyfikowania źródła. Często hakowanie źródła może być lepszym rozwiązaniem niż niepotrzebne obejście.
  • Nie masz żadnej gwarancji, że oprogramowanie będzie nadal konserwowane, i nie masz opcji awaryjnej, aby zrobić to sam, jak w prawdziwym oprogramowaniu open source.
  • Ponieważ brzmi to jak licencja niestandardowa, prawdopodobnie masz większe ryzyko prawne w porównaniu do korzystania z czegoś dobrze znanego i sprawdzonego, jak licencje GPL lub BSD.
  • Jeśli nie jest to prawdziwe oprogramowanie typu open source, nie uzyskasz wokół tego samego poziomu pomocnej społeczności, co jest dużą zaletą dla wielu projektów typu open source

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ę.


To, co do cholery jest „prawdziwym open source”, jak mi opisuje licencja, wydaje mi się prawdziwe.
Ramhound,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.