Skąd mamy (i po co nam) open source?

Matthew @ 2010-08-23 — Kategorie: Open Source, Techblog

Ostatnio kilka osób zarzuciło mi, że nie wiem co znaczy open source i mylę to z free software. Cóż… mógłbym napisać, że są głupi i się nie znają… chociaż to akurat nie byłoby zbyt dobrze przyjęte oraz po prostu nie przystoi przyszłej polskiej inteligencji. Po przemyśleniu sprawy, doszedłem do wniosku, że najlepszym wyjściem będzie poświęcenie swojego czasu, przeszukaniu źródeł (historycznych, nie kodu źródłowego :P) i podaniu tego, czym jest open source, opinii publicznej.

Historia

Aby mieć pełen obraz sytuacji najlepiej zrobimy cofając się do czasów, w których nie istniało wolne oprogramowanie. Nikt nawet myślał o softwarze w kategoriach wolności, gdyż wszystko było dostępne dla każdego… cóż, może poza źródłami oprogramowania wojskowego, ale trudno, żeby armia z uśmiechem na twarzy rozpowszechniała kod odpowiedzialny za obliczenia trajektorii pocisków balistycznych. Oczywiście, głównymi ośrodkami tworzenia wolnego oprogramowania były uczelnie (między innymi sławny MIT). Dlaczego? Po prostu gromadzili się tam wybitni naukowcy, którzy rozwijali oprogramowanie, jednocześnie trzymając się zasady, że wiedza powinna być dostępna dla każdego zainteresowanego.

Nie nazywaliśmy naszego oprogramowania „wolnym oprogramowaniem”, bo taki termin wówczas nie istniał. Ale właśnie takie ono było. Kiedy pracownicy innego uniwersytetu albo firmy chcieli przenieść jakiś program na swój system i korzystać z niego, to z chęcią się zgadzaliśmy. Kiedy widziało się kogoś korzystającego z nieznanego, interesującego programu, to zawsze można było poprosić o jego kod źródłowy — żeby go przeczytać, zmienić lub użyć jego fragmentów do stworzenia nowego programu.Richard M. Stallman

Od drugiej połowy lat 70. i z początkiem 80. sielanka miała się mieć ku końcowi. Bill Gates, w swoim liście do hobbystów, otwarcie nazwał ich działania (czyli dzielenie się kodem) kradzieżą.

Kto może pozwolić sobie na wykonanie profesjonalnej pracy za darmo? Jaki hobbysta może poświęcić trzy lata robocze na programowanie, odnajdowanie wszystkich błędów, pisanie dokumentacji i rozpowszechnianie swojego produktu za darmo? Prawda jest taka, że nikt poza nami nie zainwestował tyle pieniędzy w oprogramowanie hobbystyczne. Napisaliśmy BASIC 6800, piszemy APL 8080 i APL 6800, ale nic nie zachęca nas do tego, by udostępnić je dla hobbystów. Szczerze mówiąc, to, co robicie, to kradzież.Bill Gates

Następnie AT&T, w roku 1983 przestał udostępniać kod źródłowy systemu Unix w ramach licencji innych niż komercyjna. Spowodowało to oburzenie środowisk naukowych, które przyczyniały się do rozwoju systemów Uniksowych. W tym samym roku Richard Stallman ogłasza rozpoczęcie projektu GNU, który miał na celu stworzenie darmowego odpowiednika systemu Unix, tym samym rozpoczynając ruch wolnego oprogramowania. Jednak prace nad projektem rozpoczęły się dopiero rok później, po odejściu RMS z MITu. W następnym roku zostaje założona Fundacja Wolnego Oprogramowania (Free Software Fundation), która ma na celu promowanie wolnego oprogramowania oraz opłacanie programistów pracujących nad projektem GNU.

Na początku lat 90., nikomu nieznany student – Linus Torvalds – zaczyna pracę nad  swoim emulatorem terminala, który później przeradza się w system operacyjny Linux. 14 stycznia 1992 została wydana pierwsza wersja Linuksa (0.12), która była rozpowszechniana na licencji GPL.

Wydanie Linuksa na GPL było zdecydowanie najlepszą rzeczą, jaką uczyniłem kiedykolwiek.Linus Torvalds

Splot tych wydarzeń okazał się zbawienny dla projektu GNU, gdyż jak wiemy tworzenie jądra systemu jakoś wybitnie im nie idzie.

Jestem w stanie (cóż, niemalże) usłyszeć was pytających „dlaczego?”. Hurd zostanie wydany za rok (albo dwa, albo za miesiąc, kto wie), a ja już mam działającego miniksa.Linus Torvalds

Pokrótce: powiedz NIE NARKOTYKOM, a może nie skończysz, jak ludzie od Hurda.Linus Torvalds

I tak się toczyło życie do roku 1997. Eric Raymond opublikował swój esej Katedra i Bazar, w którym wysunął tezę o potrzebie promowania wolne oprogramowania na gruncie praktycznym. Dało to początek ruchowi open source.

W 1998, niektórzy ludzie ze społeczności wolnego oprogramowania zaczęli używać terminu „open source software” zamiast „free software” do opisywania tego co robią. Termin „open source” szybko został powiązany z innym podejściem, filozofią, wartościami, a nawet z innymi kryteriami decydującymi które licencje są akceptowalne. Wolne oprogramowanie i otwarte oprogramowanie są dzisiaj oddzielnymi ruchami z różnymi punktami widzenia i celami, chociaż możemy współpracować nad niektórymi praktycznymi projektami. Fundamentalną różnicą między tymi dwoma ruchami są ich wartości oraz spojrzenie na świat. Dla otwartego oprogramowania, znaczenie ma czy oprogramowanie powinno być open source ze względów praktycznych, nie etecznych. Jak jedna osoba powiedziała „Open source jest metodologią rozwoju oprogramowania; free software jest ruchem społecznym.” Dla ruchu open source, niewolne oprogramowanie jest połowicznie dopuszczalnym rozwiązaniem. Zaś dla ruchu free Software, niewolne oprogramowanie jest problemem społecznym i rozwiązaniem tego problemu jest wolne oprogramowanie.Richard M. Stallman

W 1998 można było podziwiać już pierwsze efekty nowego spojrzenia na wolność oprogramowania. Firma Netscape Communications udostępniła część źródeł swojej przeglądarki Netscape Navigator, co pozwoliło na stworzenie przeglądarki Mozilla a później Firefox. Co się stało później i do czego to doprowadziło wszyscy możemy się przekonać na własne oczy. :)

Tyle teorii, a gdzie praktyka?

Praktyka ogranicza się tylko do jednego: udostępniajmy kody źródłowe, gdyż tak możemy szybciej rozwijać i naprawiać oprogramowanie. Nic więcej.

Nie proszę o pieniądze. Nie proszę o seksualne przyjemności. Nie proszę o dostęp do sprzętu który projektujesz i sprzedajesz. Po prostu proszę o rzecz którą sam Ci dałem: kod źródłowy który sam mógłbym wykorzystać.Linus Torvalds

Nie ma znaczenia (jak niektórzy sugerują) że open source ma jakiś ścisły związek z serwerami czy nie powinno się do niego dopuszczać Kowalskiego. Jeżeli ktoś ma ochotę to nawet oprogramowanie hiper-inteligentnego tostera, który nigdy nie będzie przypalał wam tostów, może uczynić otwartym.

Na przykład, GPLv2 w żaden sposób nie ogranicza twojego użytkowania oprogramowania. Jeśli jesteś szalonym naukowcem, możesz używać oprogramowania na GPLv2 do realizowania swoich niecnych planów podboju świata („Rekiny z laserami na głowach!!”), a wszystko, czego GPLv2 od ciebie wymaga to oddać kod źródłowy. I to jest dla mnie w porządku. Uwielbiam rekiny uzbrojone w lasery. Chcę tylko, by szaleni naukowcy w pewien sposób mi się odpłacili. Po czym mogą mnie smażyć swoimi rekinowymi laserami ile im się podoba.Linus Torvalds

Do kogo, głównie, jest skierowany ruch open source? Wbrew pozorom nie są to geekcy, którzy po nocach klepią kolejne linijki patchy do Linuksa.

Jeśli chcesz zmienić świat, musisz zjednać ludzi, którzy wypisują duże czeki.Eric Raymond

ESR, tymi słowami, wydaje się potwierdzać, że bez wsparcia wielkich firm (i ich pieniędzy), zarówno free software jak i open source nie są w stanie zajść daleko. Dlatego tak ważnym sukcesem było udostępnienie kodu źródłowego Netscape Navigator, o który ludzie związanie z open source silnie zabiegali. Wielce prawdopodobne, że gdyby tamto zdarzenie nie doszło do skutku teraz nie cieszylibyśmy się choćby z Open Office czy wolnej Javy.

Wspaniale! Ale czym tak w zasadzie różni się się różni open source od free software? Różnica leży u podstaw tego dlaczego oba nurty chcą aby kod źródłowy oprogramowania był ogólnie dostępny. Free software wychodzi od praktyk z czasów przed powszechnymi prawami autorskimi na oprogramowanie czy zamykaniem kodu oraz ogólnie pojętej wolności, w celu możliwości dowolnego modyfikowania i rozpowszechniania programu. Natomiast open source wymienia zalety dostępności kodu programów pod względem możliwości ich dalszego rozwijania czy naprawiania błędów.

Co jednak zyskujemy wybierając open source jako drogę rozwoju naszego projektu? Oprócz takich możliwości jak (które są wspólne również dla free software):

  • samodzielne poprawianie programów i dzielenie się poprawkami z innymi,
  • szybsza nauka programowania lub po prostu podejrzenie jak ktoś rozwiązał pewien problem i zastosowania tego w swoim projekcie,
  • w przypadku porzucenia projektu mogą go wznowić zupełnie inne osoby, które uznają że z jakiś powodów warto go dalej prowadzić,

open source dopuszcza jeszcze możliwość współistnienia zamkniętego i otwartego oprogramowania, czemu free software się sprzeciwia.

Open source poza kodem?

Przy okazji, pojawił się również wątek open source poza wytwarzaniem oprogramowania. Osobiście nie zgadzam się z tym, że coś poza pisaniem programów można było włączać do ruchu open source. Jednak ciężko mi z tym polemizować. Nie dlatego, że nie miałbym na to argumentów, ale dlatego, że praktycznie nie ma terminu, który by określał takie działania. Ze sprzętem jeszcze byłoby łatwo, bo mamy open hardware. Ale taka Open Cola? Gdzie można by to zakwalifikować? W zasadzie to jest tak powszechne, że ciężko cokolwiek z tym zrobić. Czym się różni udostępnianie przepisu na colę od przekazywanego z babci na wnuczkę przepisu na ciasto drożdżowe? To samo tyczyłoby się GFDL i Creative Commons, chociaż tym dwóm licencjom bliżej do filozofii free software niż open source.

Cytaty zawarte w tym wpisie pochodzą z Wikipedii lub Wikiquote. Cała reszta (czyli opis zdarzeń) z Wikipedii, książki Po prostu dla zabawy lub filmu OS Revolution.

Komentarze:

Witam.
Fajny post.
Może się mylę ale podstawowa różnica Open a Free to tak iż we Free masz kod i program za darmo (dla każdego, do dowolnego użytku) tylko musisz podzielić się swoją pracą. Open gwarantuje tylko to pierwsze.
Pozdro.
Łukasz

@Łukasz: niestety się mylisz, jak sam RMS twierdzi: „Free software is a matter of liberty, not price. To understand the concept, you should think of ‚free’ as in ‚free speech’, not as in ‚free beer'”. Żadne z nich nie gwarantują ani darmowości kodu ani binarek w tym sensie, że nie ma takiego nakazu.

Szkoda że nie wspomniałeś o tym, że Free software wcale nie jest takie free. Tak, możesz kod czytać i modyfikować, ale pod warunkiem że ten zmodyfikowany kod będzie udostępniony pod tą samą licencją.
De facto to nic złego, wręcz przeciwnie; ale wtedy nie jest to _truly_free_, a po prostu open source. Chyba że się mylę, jeśli tak to niech mnie ktoś poprawi :).

@Marwy: to zależy od licencji na której się rozpowszechnia kod. Free software != GPL. Tutaj jest lista licencji, które są akceptowalne jako zgodne z założeniami free software: http://www.gnu.org/licenses/license-list.html

Poza tym nie mogę się zgodzić, że udostępnianie kodu po jego modyfikacji (tego który był już na GPL) czy użyciu w nim jakiegoś innego kodu wydanego na GPL nie jest truly free. Free nie odnosi się do bezpłatności w sensie pieniędzy, tylko do wolności.

>> Free odnosi się do bezpłatności w sensie pieniędzy.

Okej, może jestem idiotą, ale wcześniej piałeś

>>jak sam RMS twierdzi: “Free software is a matter of liberty, not price. To understand the concept, you should think of ‘free’ as in ‘free speech’, not as in ‘free beer’”.

Ad. część pierwsza:
Okej, to zależy od licencji. Ale GPL NIE JEST w pełni wolne, więc oprogramowanie objęte tą licencją nie powinno być nazywane wolnym. A jest. To tak jak z wolnością w państwie – jesteś wolny na tyle, na ile pozwoli ci państwo.

„Free software is a matter of the users’ freedom to run, copy, distribute, study, change and improve the software.” – wniosek z tego taki, że wg Stallmanowskiego punktu widzenia, licencje oparte na GPL są wolne, bo pozwalają na wspomniane w cytacie rzeczy, ale w rzeczywistości SĄ ograniczenia, więc jest to wolność kulawa.

@Marwy: po prostu mi „nie” zjadło, już poprawiłem.

Co do drugiego, to mylisz się trochę. Te licencje są wolne, kwestia tego czy są mniej lub bardziej liberalne (jak BSD czy X11). Jeżeli nie pasuje Ci GPL to swój program możesz wydać na innej licencji. Z drugiej strony spójrz na to z perspektywy twórcy. Wkłada wysiłek, robi oprogramowanie wolnym (w sensie zrobienia z nim co się chce) i chce by takie pozostało. Trochę niesprawiedliwe by było jakby firmy „podkradały” ten kod, używały w swoim sofcie i nie dawały go dalej. Chociaż, jak pokazuje historia, nie specjalnie im to przeszkadza.

Oprogramowanie nadal jest wolnym, możesz je zmieniać, kopiować, etc. I w tym sensie należy rozumieć free software. Po prostu niektórzy chcą by wolnym nadal pozostało. A jeżeli nie chcesz… cóż, możesz napisać je sam. Często Ci ludzie robią to za darmo, jakby wszystko na początku poszło w bardziej liberalnym kierunku, na pewno w niedługim czasie powstał by właśnie GPL, który wymusza dalsze rozpowszechnianie otwartego kodu.

Okej, okej, ja wszystko rozumiem i się zgadzam. Pisałem przecież, że GPL nie jest zła, sam najczęściej jej używam. Nie jest, natomiast, całkowicie wolna, i IMO nazywanie oprogramowania opartego na tej licencji mianem Free Software jest niewłaściwe. Oczywiście wszystko rozbija się o to, jak ktoś definiuje wolność. Oprogramowanie oparte o GPL jest tak samo wolne jak Ty czy ja – mamy prawa, ale i ograniczenia, więc – in the end – wolni nie jesteśmy. A że Stallman przyjął właśnie takie nazewnictwo – to już inna historia.

Lajkuje.

@saunterer: że co robisz?

Ty nie masz przycisku „Podoba mi się” a ja nie mam konta na fb. To lajkuję w ten sposób.

@saunterer: nadal Cie nie rozumiem…. dużymi literami (i po polsku) do mnie prosze.

Inaczej już nie umiem :(

@saunterer – podoba mi się idea „likowania” :)

Fajny wpis, dobrze że ktoś czasem porusza jeszcze ten temat…

Ajjjjjjjjjjjjjjj… dopiero teraz zakumałem o co chodzi z tym „lajkowaniem”… ;/

@streser: To dam Ci e-mail do pewnej osoby, żebyś jej to samo podział. ;D A tak serio to widzę, że mam kolejny blog do czytania. :)

A tak w zasadzie… to po kiego grzyba zawodowi programiści/testerzy czy inna śmietanka IT czyta moje wypociny? O_o

Większość cytatów pochodzi z książki o RMSie „W obronie wolności”, a Ty publikując je złamałeś jej licencję (GNU Free Documentation License – GFDL) . ;) Pełen tekst książki na przykład tutaj: http://stallman.helion.pl

@Tadek: weź się goń. Treść książki może być na licencji, a nie cytat w niej zawarty (z resztą moje pochodzą z wiki, a na wiki nie było skąd są, tylko od kogo). Cytaty osoby, która powiedziała coś nie podlegają licencjonowaniu. Byłoby zabawnie, jakby premier musiał podawać na jakiej licencji teraz gada, żeby media go mogły cytować.

@Tadek: …a potem poczytaj o prawie cytatu (nie osoby a publikacji).

Dodaj komentarz:

 

Subscribe without commenting