Jak skutecznie GPL osiąga swoje cele? [Zamknięte]

16

Zasadniczo istnieją dwa rodzaje licencji FOSS, gdy odnoszą się one do komercyjnego wykorzystania kodu - powiedzmy typ GPL i typ BSD. Pierwszy z nich zasadniczo ogranicza się do komercyjnego wykorzystania (przez użycie mam również na myśli modyfikację i redystrybucję, a także tworzenie dzieł pochodnych itp.) Kodu na licencji, a drugi jest znacznie bardziej liberalny.

Jak rozumiem, ideą licencji typu GPL jest zachęcenie ludzi do porzucenia zastrzeżonego modelu oprogramowania i zamiany na kod FOSS, a licencja jest instrumentem, który zachęca ich do tego - tj. „Możesz użyć tego fajnego oprogramowania , ale tylko jeśli zgodzisz się przyjść do naszego obozu i grać zgodnie z naszymi zasadami ".

Chcę zapytać - czy ta strategia była jak dotąd skuteczna? Tzn. Czy są jakieś ważne osiągnięcia w postaci jakiegoś dużego projektu przechodzącego od zamkniętego do otwartego z powodu GPL lub jakiegoś oprogramowania tworzonego w otwartym tylko dlatego, że GPL tak to zrobiło? Jak duży jest wpływ tej strategii - w porównaniu, powiedzmy, ze światem, w którym każdy miałby licencje typu BSD lub wydałby cały kod open source w domenie publicznej?

Zauważ, że nie pytam, czy model FOSS jest udany - nie ma wątpliwości. Pytam, czy konkretny sposób zachęcania ludzi do przejścia z własności na FOSS używany przez licencję typu GPL i nieużywany w licencjach typu BSD był udany. Nie pytam też o zalety samej GPL jako licencji - tylko o fakt jej skuteczności.

StasM
źródło
4
GPL nie nakłada żadnych ograniczeń na użytkowanie. Ogranicza się tylko do dystrybucji .
whatsisname
1
Kontrast powinien być z oprogramowaniem prawnie zastrzeżonym, a nie komercyjnym. Dużo handlu odbywa się dzięki darmowemu oprogramowaniu.
Lars Wirzenius
2
˙sı ʇı ʇɐɥʍ uo ɹǝƃuıɟ ʎɯ ʇnd ǝʇınb ʇ, uɐɔ ı ʇnq 'uǝʇʇıɹʍ sɐʍ ן dƃ ǝɥʇ uǝɥʍ ɯoɹɟ ʇuǝɹǝɟɟıp sɯǝǝs p ןɹ oʍ ǝɥʇ ʇnoqɐ ƃuıɥʇǝɯos
Tim Post

Odpowiedzi:

10

Po pierwsze, w pytaniu tkwi nieodłączna subiektywność - nie ma sposobu, aby się upewnić, a historię można interpretować w dowolny sposób. To stara debata i jedna z kluczowych kwestii w debacie open source vs. wolne oprogramowanie. Musisz także zdefiniować, co masz na myśli, osiągając jego cele. Trudno argumentować, że GPL i FSF nie przyczyniły się do tego, aby Open Source stał się znaczącym ruchem ostatnich 2-3 dekad. Jednak nie osiągnął swoich celów, aby cały kod był wolnym oprogramowaniem.

Wzorem oprogramowania GPL jest oczywiście Linux i wszystko, co pochodzi z FSF (gcc itp.). Co ciekawe, w przypadku systemu Linux GPL nie została wybrana ze względu na swoje stanowisko polityczne, ale ze względu na ideę wzajemności, jak wielokrotnie stwierdził Linus Torvald. Daję ci mój kod, ale musisz mi dać swój w zamian, jeśli używasz mojego.

Jeśli chodzi o samego linuxa, myślę, że GPL była bardzo cenna - ostatnim przykładem jest BTRFS, nowy fs opracowany w Oracle. Główny autor BTRFS stwierdził, że jedynym powodem, dla którego Oracle zgodziła się na korzystanie z GPL, jest to, że nie miała wyboru. Większe pytanie dotyczy tego, czy sam linux odniósł sukces z powodu GPL, czy pomimo. Różne czynniki, takie jak niewiarygodne przywództwo Linusa, problemy z prawami autorskimi do projektu * BSD w tym czasie itp. ... uniemożliwiają udowodnienie / obalenie hipotezy.

W przypadku gcc Stallman kilkakrotnie pisał, dlaczego GPL uratowała projekt przed „propietaryzacją”.

David Cournapeau
źródło
3
Stallman napisał kilka rzeczy, które są genialne. Napisał także kilka rzeczy, które mają wątpliwy związek z rzeczywistością. Twierdzenie, że GPL uratowała gcc przed „zastrzeżeniem”, niekoniecznie czyni to.
PO PROSTU MOJA poprawna OPINIA
jasne, ale jest to prawdą w odniesieniu do wszelkich twierdzeń na ten temat - ostatecznie będzie to zależeć od twojej własnej opinii w tej sprawie. Nie sądzę, aby kiedykolwiek istniała jednoznaczna odpowiedź, zwłaszcza że konsekwencje pytań mają charakter ideologiczny (zarówno dla licencji typu GPL, jak i BSD / MIT).
David Cournapeau,
Przykład Oracle jest prawidłowy, dzięki. Jeśli chodzi o sukces Linuksa, mam wątpliwości, czy GPL miało duże znaczenie, ponieważ istnieją oczywiste przykłady systemów operacyjnych na licencji BSD. Są nieco mniej popularne, ale bardzo wątpię, że powodem jest GPL. Jeśli chodzi o gcc, nie jestem pewien, co dokładnie oznacza tutaj „zastrzeżenie”, ale Intel ma własne kompilatory (lepsze niż gcc), więc jeśli Stallman chciał zapobiec temu scenariuszowi, poniósł porażkę.
StasM
Miałem na myśli, że gdyby gcc były np. BSD, ludzie mogliby dodawać swoje ulepszenia bez zwracania kodu społeczności. GCC jest (było) napisane w taki sposób, że rozszerzanie go bez integracji z prywatnym API było trudne do uniknięcia ( gcc.gnu.org/wiki/GCC_Plugins ).
David Cournapeau,
18

Powiedziałbym, że nieograniczone licencje, takie jak licencje BSD, MIT i Apache, zrobiły znacznie więcej w celu promowania FOSS niż GPL.

Przykłady:

  • Projekt Zamkowy,
  • jQuery,
  • SQLite,
  • Apacz
  • Hibernacja i nHibernate,
  • ASP.NET MVC,
  • JSON.ORG,

i wiele innych.

Większość firm jest zbyt ostrożna wobec GPL, aby zezwolić na kod GPL w dowolnym miejscu w pobliżu ich wysiłków programistycznych, chyba że sama firma faktycznie działa w ramach modelu GPL / usług o wartości dodanej.

Robert Harvey
źródło
5
Nie można zgodzić się więcej.
konfigurator
1
Chciałbym również wspomnieć o licencji LGPL, która rozwiązuje niektóre z problemów ze standardowym GPL: en.wikipedia.org/wiki/LGPL
andre
W jaki sposób którekolwiek z powyższych działań promuje przyjęcie licencji FOSS?
Mark H
13
Nie rozumiem tej odpowiedzi: dlaczego lista kilku projektów dowodzi, że BSD / MIT zrobiło więcej niż GPL dla open source? Możesz uzyskać podobną listę dla projektów GPL (linux, gcc, gnome, kde, qt, mysql, emacs itp.), I to również nie udowodniłoby GPL.
David Cournapeau,
1
@George: tak, QT to LGPL, nie GPL, przepraszam za zamieszanie. Jednak nie sądzę, żeby to zmieniło mój punkt widzenia.
David Cournapeau,
8

GNU GPL odnosi sukcesy pomimo egzekwowania FLOSS, nie z tego powodu. Firmy w większości dobrowolnie przyczyniają się do wydawania kodu na licencji GPL i go publikują. Nie ma w nim istotnych algorytmów i bibliotek, które zmusiłyby komercyjnych programistów do deproprietaryzacji.

Apple stanowi dobry przykład. Zaadaptowali KHTML i rozszerzyli go do WebKit. I udostępnili kod z powrotem społeczności open source. Choć można przypuszczać, że dzieje się tak, ponieważ zostali zmuszeni przez LGPL, wydaje się to mało prawdopodobne. W przypadku Darwin i obszaru użytkownika BSD bardzo dobrowolnie publikują kod. Z LLVM rozpoczęli nawet nowy projekt FLOSS. Jednak oczywiście Apple pozostaje w dużej mierze zastrzeżonym dostawcą oprogramowania.

Android jest podobny. Oczywiście wsparcie sprzętowe odgrywa tutaj ważną rolę, ale Google mógł przyjąć bazę kodów BSD i zabrać ją na własność. Ale wybrali Linuxa. W ten sposób chętnie wnoszą wkład, nie dlatego, że nie było alternatywy innej niż GPL.

Openoffice to ciekawsza historia, ponieważ w pewnym momencie była rzeczywiście zastrzeżona. Ale znowu konwersja LGPL była dobrowolna, niepotrzebna. Licencja typu * GPL umożliwiła jednak w tym przypadku. Akademicka licencja typu BSD nie byłaby wystarczająca, aby firma Sun wydała Openoffice, ponieważ ktoś inny mógł wówczas opatentować kod. I pod tym względem GNU * GPL odnosi sukcesy.

Klauzula wzajemności / wirusów nie prowadzi bezpośrednio do większej liczby otwartych kodów. Ale dostawcy oprogramowania wykorzystują to na swoją korzyść, kiedy chcą, i dlatego przyczyniają się do puli FLOSS. Jednak większość dostawców robi to niechcianie. Widzę niewielką różnicę między licencjami typu BSD a licencjami typu GPL, jeśli chodzi o zachęcanie do większego wkładu kodu.
Podsumowując, GNU GPL odnosi sukcesy, ale także napędza licencje w stylu BSD / MIT tam, gdzie są one bardziej odpowiednie. Ale można również po prostu zmierzyć sukces w „ilości kodu”, który moim zdaniem jest rzeczywistą miarą FSF.

Mario
źródło
5
Zabawne, że powinieneś wspomnieć o Androidzie, ponieważ celowo udało się znaleźć lukę w GPL, która pozwoliła im wydać niemodyfikowalną platformę. (Coś, co ograniczają późniejsze wersje GPL). Google absolutnie nie podziela tych samych ideałów co FSF, a fakt, że Android jest oprogramowaniem FOSS, jest w dużej mierze nieistotny, ponieważ nikt nie ma zasobów, aby konkurować z Google na własnej platformie (gdyby mieli konkurencję, o którą powinni się martwić, to „ wybraliśmy alternatywne rozwiązanie). Ponadto Apple nie uruchomił LLVM.
Mark H
@sparkie: To interesujące. Jeszcze wczoraj przeczytałem artykuł, w którym programista Google zatrzasnął dostawców telefonów za blokowanie telefonów komórkowych przed oprogramowaniem układowym Androida innych firm. (Chociaż nie mam wątpliwości, że wysiłki Googles związane z otwartym oprogramowaniem mają głównie charakter prezentacyjny.)
Mario
Nie zapomnijmy o jednym z największych projektów GPL, Linux. Żaden z dużych dostawców, którzy dodali do niego swój kod (IBM, Oracle itp.), Nie miał opcji rozwidlenia i przywrócenia „ulepszonego jądra klasy korporacyjnej”, musieli go upublicznić. Ale prawdopodobnie takie uniwersalne elementy infrastruktury dotyczą całego obszaru, na którym GPL jest bardziej przydatna niż licencje w stylu BSD.
9000
3

Patrząc na Manifest GNU , nie jest jasne, czy jednym z celów było przekonanie korporacji do wydania oprogramowania FOSS. Oto cytat:

Aby móc nadal korzystać z komputerów bez hańby, postanowiłem zebrać wystarczającą ilość wolnego oprogramowania, aby móc się dogadać bez żadnego oprogramowania, które nie jest wolne.

Jeśli spojrzymy tylko na ten cel, to projekt GNU w dużej mierze się udało. Mamy system operacyjny GPL, pakiet biurowy, bazy danych i wiele innych aplikacji, które można dowolnie modyfikować i rozpowszechniać.

Larry Coleman
źródło
Jak rozumiem, ostatecznym celem jest stworzenie jak największej ilości oprogramowania, aby być wolnym, a ponieważ wiele programów jest pisanych przez podmioty komercyjne, ważne jest, aby uczynić je również wolnym. Jeśli celem było po prostu napisanie oprogramowania, które byłoby używane bez niewolnego oprogramowania, dlaczego nie po prostu umieścić go w domenie publicznej? Oczywiście wirusowa natura GPL ma pewne cele, których nie można osiągnąć za pomocą licencji PD, a nawet licencji BSD. Jak myślisz, jakie są te cele?
StasM,
GPL zapobiega strategii „obejmowania i rozszerzania”, aby ktoś nie mógł wziąć na przykład Emacsa, dodać rozszerzeń, które stały się tak popularne, że nie można bez nich żyć, i wydać całość na zastrzeżonej licencji. To powiedziawszy, manifest GNU dość jasno określa cel GPL, przynajmniej pierwotnie.
Larry Coleman
1

Myślę, że obie (licencje typu GPL i BSD) są ważne dla świata FOSS. Używanie GPL widzę w dwóch grupach. Jednym z nich jest grupa bardzo zaangażowanych zwolenników Open-Source. Wierzą, że możliwość ponownego przekształcenia Open-Source w pracę zastrzeżoną zaszkodzi światu OSS. Osobiście uważam, że to nie jest duży problem. PC-BSD (zastrzeżony wariant BSD) nie szkodzi społeczności BSD. Drugą grupą, która przyjmuje GPL, są duże firmy. Korzystają z licencji, aby zachować większą kontrolę nad produktem (na przykład w celu wsparcia modelu biznesowego). Konkurs będzie miał problemy z zarabianiem pieniędzy na innym oprogramowaniu licencjonowanym na licencji GPL. Dzięki temu firma może wyprzedzać konkurencję, jednocześnie zdobywając dobrą karmę na potrzeby Open-sourcingu.

Memento
źródło
2
zapominasz o trzecim obozie, który moim zdaniem jest dość znaczący: wzajemność. Oznacza to, że nie dbasz o oprogramowanie własnościowe, ale nie chcesz, aby Twój kod został wydany jako oprogramowanie typu open source do użytku w prawach własności. GPL daje ci to, BSD nie. Przynajmniej w tym obozie jestem.
David Cournapeau,
0

Moja osobista perspektywa to indywidualny programista, od pewnego czasu nie zatrudniony z powodu niepełnosprawności i mający nadzieję (lub marzenie), że będę mógł zarabiać na życie dzięki jedynej cennej umiejętności, jaką posiadam.

GPL jest używana przez cały czas do projektów komercyjnych. Problemem jest to, co czasami określa się mianem „wirusowej”, co oznacza, że ​​jeśli użyjesz jakiegoś kodu GPL w projekcie, prawdopodobnie potrzebujesz GPL całego kodu dla tego projektu. Niektórzy twierdzą, że wykluczono dynamiczne linkowanie. FAQ GPL twierdzi, że dynamiczne linkowanie do wtyczek jest zabronione ze względu na wspólne struktury danych - http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins. Wydaje się to dziwne, ponieważ każda aplikacja Windows dynamicznie łączy się ze składnikami Windows i udostępnia struktury danych Windowsowi (aplikacja jest pod wieloma względami wtyczką systemu operacyjnego), ale istnieją aplikacje GPL dla systemu Windows, w tym wiele wydanych przez GNU. Może to oznacza, że ​​ukrywanie wskaźników jako uchwytów i wykonywanie większości dostępów za pomocą funkcji nie jest liczone jako współdzielenie struktur danych, co byłoby luką, którą każdy specjalnie zaprojektowany interfejs API wtyczki lub dynamicznie połączona biblioteka mógłby prawdopodobnie wykorzystać, ale oczywiście indywidualny programista musi grać bezpiecznie przez takie problemy.

W każdym razie istnieją dobre powody „wirusowej” natury GPL, ale dla małego programisty, który desperacko potrzebuje zarabiać na życie, wygląda to podejrzanie jak oddawanie pracy za darmo. Nie wszyscy możemy zarabiać, pobierając opłaty za wsparcie lub skutecznie sprzedając podręczniki, ponieważ między innymi nie wszyscy mamy odpowiednie umiejętności. Ponadto, jeśli Twój produkt ma nieodpowiednią, bezpłatną instrukcję obsługi, rzeczywistą instrukcją prawdopodobnie będzie przepełnienie stosu lub Superuser lub cokolwiek innego - nie twoja płatna instrukcja. I to przy założeniu, że ktokolwiek w ogóle chce to zrozumieć.

Z tego punktu widzenia licencje w stylu BSD są bardzo atrakcyjne. Przyznaję, że hipokryzją jest wykorzystywanie innych prac o otwartym kodzie źródłowym, a jednocześnie utrzymywanie zamkniętych produktów, ale należy to równoważyć z innymi problemami.

OTOH, tak naprawdę nigdy nie wypuściłem niczego, otwartego ani zamkniętego - przynajmniej nie od czasu szeregu wtyczek, które w zasadzie upubliczniłem około dziesięć lat temu (a jak nauczyło mnie dodatkowe doświadczenie, nie były tak dobrze napisane ). Cała ta sprawa jest dla mnie akademicka, przynajmniej na razie.

Jednak za każdym razem, gdy patrzę na bibliotekę z licencją w stylu GPL, moją pierwszą myślą jest „jeśli uzależnię się od tego, ograniczę swoje opcje”.

Steve314
źródło
Podstawowe biblioteki systemu Windows nie są objęte GPL, więc nie musisz GPL swojej aplikacji, jeśli się do nich odwołujesz. Nie jestem pewien, na jakiej licencji mają licencję, ale nie jest taka, która mówi: „Twoja aplikacja musi być zamkniętym źródłem, jeśli masz do niej link”. Problem dotyczy tylko łączenia z biblioteką GPL. Biblioteki Windows nie są GPL.
jsternberg
Chodzi mi o to, że aplikacja (faktycznie wtyczka systemu operacyjnego) jest objęta licencją GPL. Jeśli zakazane jest pisanie wtyczki GPL dla programu innego niż GPL Photoshop (ponieważ nie można zwolnić źródła Photoshopa), dlaczego nie jest zabronione pisanie „wtyczki” GPL dla systemu Windows innego niż GPL? Na przykład dowolna aplikacja wiersza polecenia działa na dynamicznych dowiązaniach systemu Windows do bibliotek DLL, takich jak user32.dll, i udostępnia struktury danych (przynajmniej łańcuchy) interfejsom API we / wy konsoli. Dostęp ten można uzyskać pośrednio, za pośrednictwem standardowych interfejsów API biblioteki, ale istnieją również standardowe implementacje bibliotek rozpowszechniane na licencjach GNU.
Steve314,
Właściwie - myślę, że istnieją standardowe biblioteki na licencjach GNU, ale nie jestem pewien, czy to oznacza GPL.
Steve314,
1
@ Steve314: Przeczytaj uważnie GPL. Możesz łączyć się ze standardowymi komponentami systemu, chociaż nie pamiętam dokładnego języka. GPL została starannie zaprojektowana pod kątem praktyczności - praktyczności w promowaniu określonego poglądu ideologicznego, ale mimo to praktyczności.
David Thornley,
1
@steve: zapomnij o łączeniu, itp ... GPL nigdy się do tego nie odnosi (tak jak LGPL). GPL mówi, że oprogramowanie pochodne musi zostać wydane na licencji GPL, a jego pochodzenie celowo pozostawia się niezdefiniowane, chociaż pomysł polega na tym, że jeśli oprogramowanie nie może działać bez oryginału bez istotnej zmiany, jest ono pochodną. Jeśli budujesz aplikację na systemie operacyjnym, system operacyjny nie jest pochodną aplikacji (związek nie odzwierciedla)
David Cournapeau,
-2

Myślę, że kiedy ludzie myślą o GPL, myślą w ideałach GNU, w których oprogramowanie powinno być wolną myślą, aby pomysły zaczęły się rozprzestrzeniać i że duże firmy są złymi facetami, ponieważ nie pozwalają na to. Problem polega na tym, że sposób myślenia nie kupuje wielu programistów, ponieważ chcą po prostu kodować, mieć programy, a także własne życie, co niekoniecznie wiąże się z oprogramowaniem, zgodnie z tym poglądem BSD i inne licencje są znacznie bardziej atrakcyjne, w tym samym sensie, że Linus jest bardziej popularny niż Richard Stallman dla programistów, ponieważ pierwszy chce po prostu zrobić swoje (podobnie jak wielu z nas), a drugi chce zmienić cały świat. Tak więc ostatecznie GPL jest jak Michaił Gorbaczow, ktoś, kto rozpoczyna ewolucję, ale nie jest skazany na sukces.

Coyote21
źródło