W tym odcinku przybliżamy pojęcia Open Source i Free Software, które są kluczowe w rozmowach o tematach najbliższych naszej inicjatywie: prywatności i odzyskiwaniu kontroli nad naszymi urządzeniami. Opowiadamy o tym, czym różni się wolne (free) oprogramowanie od oprogramowania otwartoźródłowego (open source) oraz o pozytywnych skutkach rezygnacji z własnościowych programów.

W tym odcinku:

  • dowiecie się, czym jest wolne oprogramowanie (Free Software) i czym różni się od otwartego oprogramowania (Open Source);
  • poznacie fundację GNU, która stoi w obronie praw użytkowników związanych z oprogramowaniem;
  • posłuchacie o trudnościach, jakie napotykamy w trakcie rozmawiania o wolnym/otwartym oprogramowaniu;
  • wysłuchacie naszych rozważań dotyczących możliwego wpływu wolnego/otwartego oprogramowania na sferę publiczną, w tym edukację.

Odcinek jest dostępny między innymi na naszych instancjach Funkwhale oraz PeerTube:

Gorąco zapraszamy do komentowania odcinka w naszych social mediach i na kanałach PeerTube oraz YouTube.

Kilka uzupełnień

Dlaczego otwarty kod jest jak ciastka ze składem napisanym na opakowaniu?

Aby w pełni dowieść do brzegu nasze porównanie otwartego oprogramowania do ciastek ze składem na opakowaniu, warto wspomnieć o pojęciu kodu źródłowego.

Photo by Rai Vidanes / Unsplash

Najczęściej gdy programista tworzy aplikację, to pisze ją w języku zrozumiałym dla ludzi (a przynajmniej pewnej grupy ludzi we flanelowych koszulach). W wielu wypadkach aby komputer był w stanie uruchomić daną aplikację, jej kod musi przejść proces kompilacji. Wtedy jej kod źródłowy (zrozumiały dla ludzi) jest tłumaczony na kod maszynowy (zrozumiały dla komputera).

Wymaga to nadludzkiego wysiłku, aby zrozumieć sposób działania aplikacji, mając dostęp tylko do jej kodu maszynowego. A gdy pobieramy programy z Internetu (np. w postaci plików .exe), to dostajemy tylko kod maszynowy, a nie źródłowy. Gdy ktoś zdecyduje się opublikować kod źródłowy aplikacji, wtedy mówimy, że aplikacja jest Open Source, ma „otwarte źródła”.

My Life
Photo by Arian Darvishi / Unsplash

Jak wspomnieliśmy w odcinku, samo otwarcie źródeł nie daje tak wielu korzyści i swobód dla końcowego użytkownika, jak Wolne Oprogramowanie. Aby program otwarty stał się programem wolnym/libre, to musi zostać opatrzony licencją, która zapewnia określone prawa jego użytkownikom.

Zaciemniony kod

Wiele „stron” internetowych osiąga poziom złożoności wystarczający do zaklasyfikowania ich jako aplikacje bardziej niż strony. Kod takich aplikacji internetowych najczęściej jest napisany w języku JavaScript, który nie podlega takiemu procesowi kompilacji, jak ten opisany powyżej. Można wysłać do przeglądarki kod w tym języku który dokładnie odpowiada kodowi źródłowemu i umożliwia wnikanie w to, co aplikacja tak naprawdę robi.  

Niemniej jednak w celu przyspieszenia wczytywania stron, kod poddaje się „minifikacji”, co zmniejsza jego objętość - a przy okazji także jego czytelność. Minifikacja jest możliwa z uwagi na fakt, że treść kodu źródłowego można zmienić tak, aby jego zachowanie pozostało takie samo. Umożliwia to zaciemanianie tego, co kod robi naprawdę. Poniżej przykład działania takiego zaciemniania na krótkim fragmencie kodu. Najpierw widać kod przed zaciemnianiem, a poniżej po zaciemnianiu:

var person = {
  firstname:"John",
  lastname:"Doe",
  age:50,
  eyecolor:"blue"
};

delete person.age;
document.getElementById("demo").innerHTML =
person.firstname + " is " + person.age + " years old.";
var a=['demo','innerHTML','Doe','\x20is\x20','John','\x20years\x20old.','blue'];(function(b,c){var d=function(e){while(--e){b['push'](b['shift']());}};d(++c);}(a,0xeb));var b=function(c,d){c=c-0x131;var e=a[c];return e;};var h=b,g={'c':h(0x131),'d':h(0x136),'e':0x32,'f':h(0x133)};delete g['e'],document['getElementById'](h(0x134))[h(0x135)]=g['c']+h(0x137)+g['e']+h(0x132);

Fact checki

  1. Słowo „libre” funkcjonuje w j. angielskim, zostało zapożyczone z j. francuskiego i łaciny;
  2. Stworzona przez GNU licencja GPLv3.0 w istocie wymaga, aby zmiany w kodzie udostępnionym na tej licencji były publikowane na tej samej licencji;
  3. Microsoft zmienił nazwę usługi DreamSpark na Microsoft Azure Dev Tools for Teaching;
  4. Microsoft Office 365 umożliwia przeglądanie zagregowanych statystyk dotyczących konkretnych aplikacji z tego pakietu oraz, co ostatnio wzbudziło kontrowersje, szacowanie produktywności swoich pracowników. Nie znaleźliśmy informacji jakoby Office 365 sprawdzał ilość czasu spędzanego w Edge lub strony w nim przeglądane;
  5. Osoba zgłaszająca do Poznańskiego Budżetu Obywatelskiego projekt aplikacji mobilnej do nawigacji i informacjach turystycznych, ograniczonej do obszaru Wartostrady, wyceniła jej wykonanie na 900 tysięcy złotych.
  6. Zaskakująco trudno było znaleźć istotną aplikację, która jest open source, ale nie jest free/libre. O ile rozróżnienie pomiędzy tymi dwoma pojęciami jest istotne dla pełnego obrazu sytuacji walki o prawa użytkowników w świecie oprogramowania, o tyle znaleźliśmy tylko kilka niszowych aplikacji, które mają otwarty kod, a nie są udostępniane na licencjach free/libre.

Źródła

  1. Strona Fundacji Wolnego Oprogramowania (FSF);
  2. Zdjęcie w coverze: Deva Williamson z Unsplash.