GNUčionica VI – Ask not what FLOSS can do for u…

…već kako da vratite zajednici bar deo uloženog truda i rada. Krenimo redom.
Probali ste i instalirali linux. Svideo vam se i odlučili ste da ga zadržite i koristite. Odlično. Koliko i kako ćete ga koristiti samo je vaša stvar jer ključna reč u priči o linuxu je sloboda.

Malo filozofije

Za ljude kojima je dovoljno da na računaru odrade posao i ne tiče ih se šta se sve u pozadini dešava dalja priča biće vrlo suvoparna i nebitna, ali oni koji se zainteresuju za svet slobodnog softvera uskoro će otkriti da u njemu postoji nešto što se zove zajednica. Sve se radi za zajednicu i od zajednice. Ne, FLOSS nije sekta kompjuterskih zaluđenika. Nije ni komunizam. Niko vas ni na šta ne tera, sami odlučujete koliko i kako ćete se uključiti u celu priču. Sećate se? Sloboda? Ako želite da samo koristite proizvode zajednice slobodnog softvera ne postoji apsolutno nikakva moralna, pravna ili bilo kakva druga prepreka koja bi vas u tome sprečila (sem vendor locking-a i sličnih svinjarija), sa druge strane, ukoliko prihvatite filozofiju koja stoji iza zajednice vrlo je verovatno da ćete poželeti da se na neki način i uključite u istu. Naravno, i ovde važi da imate slobodu da sami birate i određujete način učestvovanja.
Po čemu se to slobodan softver razlikuje od vlasničkog (propriatery) softvera?
Nećemo mnogo širiti priču, internet je prepun textova na tu temu za sve one koji žele da se edukuju, ovde ćemo samo pojasniti dve, po meni, najbitnije razlike: odnos korisnik-softver i metod razvoja.

Korisnik i njegov softver

U svetu vlasničkog softvera vi kao korisnik ne posedujete program koji koristite i koji ste možda platili (pošto postoji i besplatan softver koji nije slobodan), vi samo imate pravo da isti koristite. To pravo (za)kupljeno kroz licencu za neki softver vam omogućava da softver upotrebljavate u skladu sa pravilima koje je postavio proizvođač istog i ništa više od toga. Da bi videli koliko restriktivna ta pravila mogu da budu dovoljno je da pročitate EULA-u (End User Licence Agreement – Ugovor o licenciranju za krajnjeg korisnika). Ograničeni ste sa svih strana i nemate mnogo uticaja na to kako se, koliko brzo i na koji način razvija softver koji koristite (niti šta se u njemu nalazi). Zavisite od drugih i još im možda plaćate za to…
U svetu slobodnog softvera vi kao korisnik ne posedujete program koji koristite STOP! say that again? Pa u čemu je onda razlika!? Razlika je što vam slobodne licence (da, i ovde postoje licence, ali imaju drugi smisao i svrhu) daju slobodu, umesto što vas ograničavaju. Iako postoji neka minorna razlika između termina “slobodan softver” i “softver otvorenog koda” u suštini se sve svodi na isto, a to je da se korisnik ne ograničava, što najbolje sumiraju 4 slobode definisane od strane Free Software Foundation (Fondacija za slobodni softver):
0 – sloboda da se program pokreće u bilo koju svrhu (nulta sloboda)
1 – sloboda da se program proučava i menja
2 – sloboda da se program umnožava da bi se pomoglo bližnjem
3 – sloboda da se program poboljšava i da se te promene puštaju u javnost, tako da cela zajednica ima koristi
(detaljnije na http://www.fsfe.org/documents/freesoftware.sr.html)
I to je to. 4 rečenice koje oslobađaju nasuprot stranama teksta u vlasničkim licencama koje vam diktiraju šta i kako možete da radite.
Ovde je potrebno razjasniti još jednu stvar koja unosi dosta konfuzije među novopridošlima. free as in free speech, not as in free beer. Slobodno (free) nije isto što i besplatno (free), iako je najveći broj aplikacija u svetu slobodnog softvera besplatan i slobodan, ne postoji ograničenje ili zabrana naplaćivanja. Primera radi mnoge kompanije funkcionišu na principu prodaje podrške korisnicima slobodnog softvera i tu nema ništa loše. Oni su slobodni da naplate podršku koju pružaju, vi ste slobodni da njihove usluge koristite ili ne. Opet ta ključna reč – sloboda.

A kako (se) sve to radi?

Pored razlika u filozofiji koja stoji iza programa u svetu vlasničkog i slobodnog softvera, razlike postoje i u načinu na koji se isti razvija.
Princip razvoja vlasničkog softvera je da jedan čovek ili tim programera ulože rad i vreme (tj. novac u krajnjoj liniji) i naprave proizvod koji će licencirati i od toga ostvaruju zaradu. Ovaj princip vam je svakako poznat jer najpoznatije firme u svetu softvera rade po njemu, a samim tim su vam poznate i sve mane i prednosti.
Sa druge strane, svet slobodnog softvera funkcioniše na principima deljenja i saradnje. Primera radi, programer Pera napravi neku jednostavnu aplikaciju i njen izvorni kod objavi na internetu (objavljivanje izvornog koda je preduslov slobodnog softvera). Drugi programer Laza uvidi da se u tom kodu nalazi nešto što je njemu potrebno i bez mnogo cimanja on jednostavno iskoristi nađeno rešenje i poboljša svoj program. Naravno, u obavezi je da izvršene izmene objavi pod istim uslovima. Neki treći programer Mika u Perinom programu napravi izmene koje ga poboljšavaju i na taj način svi imaju koristi. Od samih developera do krajnjih korisnika tih programa. Deluje konfuzno? Možda, ali radi. Najbolji primer je linux (i pri tome mislim na linux kao kernel tj. jezgro operativnog sistema GNU/Linux, ali o tome nekom drugom prilikom)! Započet kao projekat finskog studenta Linusa Torvaldsa linux ima sve atribute slobodnog softvera. Nakon objavljivanja izvornog koda 1991 godine, linux od kućnog hobija postaje zvezda FLOSS zajednice i projekat sa nekoliko hiljada učesnika. Kada na ovo dodate još par hiljada ljudi koji na isti način rade na drugim projektima od najosnovnijih mrežnih protokola i drajvera za uređaje pa do grafičkih okruženja i desktop aplikacija i sve zajedno sklopite u jednu celinu dobijate GNU/Linux distribuciju. Potpun operativni sistem sa gomilom potrebnog i nepotrebnog softvera, svima dostupan i bez ograničenja. Slobodan.

I šta sad?

Sad kad ste se upoznali sa filozofijom i zajednicom na vama je da odlučite koliko i kako želite da se angažujete. Ukoliko vas ništa od ovoga ne interesuje, sasvim dovoljno će biti da koristite slobodan softver i rad svih onih ljudi neće biti uzaludan. Ostali željni akcije imaju dosta opcija za uključivanje. Iako mnogima na pamet padne “pa treba da budeš programer da bi pomagao” ovo nije sasvim tačno. Rad na kodu nekog programa je svakako najdirektniji vid pomoći i uključivanja u zajednicu (primera radi, Ivanu Čukiću se nije svideo izgled novog KDE menija pa je napravio svoj), ali nikako nije jedini. Svako može da doprinese. Evo nekoliko predloga za neprogramere:

  • prevod i lokalizacija (ukoliko imate znanje stranog jezika možete se uključiti u neki od projekata prevođenja dokumentacije i/ili korisničkog interfejsa i na taj način omogućiti drugima da na lakši način upotrebljavaju slobodan softver. Aktuelni su mnogi domaći projekti lokalizacije kao npr. OO.org ili GNOME, a mnogi pojedinci samostalno rade na lokalizaciji pojedinih aplikacija)
  • pomoć drugim korisnicima (ako ste iskusniji korisnik računara i dobro baratate linuxom ili nekim drugim slobodnim softverom, a pritom imate malo slobodnog vremena, uključite se na neki forum, sajt ili IRC kanal sa tematikom iz koje imate znanje i pomozite drugim korisnicima)
  • pišite (pisanje dokumentacije, how-to tekstova, objašnjenja, uputstava i drugih vidova korisnih tekstova takođe je način da pomognete)
  • pričajte (pomenite ljudima oko sebe da koristite nešto što bi možda moglo da ih zainteresuje, ali izbegavajte advocacy, takve rasprave obično prerastu u svađu i vređanje, a i ne znam nikoga ko je zbog advokatisanja počeo da koristi slobodan softver)
  • delite (diskove sa linux distribucijama, vesti o zanimljivom slobodnom softveru ili dešavanjima, linkove ka korisnim i interesantnim mestima na internetu, slobodan softver je jedna od onih stvari koje vam posle deljenja ne ostaje manje 😉 Većina foruma ima teme u kojima se javljaju ljudi sa podacima šta imaju za razmenu i gde se nalaze, pa je relativno lako doći do željenih diskova)

I najvažnije koristite slobodan softver. Ne zbog zajednice ili filozofije ili developera ili bilo čega drugog, koristite zbog sebe. I pored nekih mana koje ima, jer ništa što čovek (a pogotovo gomila ljudi) napravi nije savršeno, slobodan softver ima daleko više prednosti i kvaliteta od kojih je najveći svakako – sloboda.

PS. Zahvaljujem Walker-u na predlozima za poboljšanje.

Do sledeće GNUčionice – Live long and prosper!

DODATAK 22.06.2009: Posle cele priče o free, slobodnom i besplatnom softveru jedan od najboljih načina za pomoć zajednici mi je potpuno ispao iz vida. Iako je najčešće proizvod projekata zajednice otvorenog koda besplatan, to ne znači da ne možete materijalno pomoći njegovom razvoju. Ukoliko vam se neki program, distro ili slično svidi, a u mogućnosti ste, pogledajte na zvaničnoj strani projekta da li se i kako prihvataju donacije. One mogu biti ne samo u novcu već i u IT opremi ili uslugama.
Jedan deo programera koji su angažovani u FLOSS-u je stalno zaposlen, vrlo često na samom projektu sa zajednicom (ukoliko neka od velikih firmi ima interesa za konkretan softver), ali velika većina svoj kod razvija u slobodno vreme. Retki su oni koji su uspeli da obezbede redovno finansiranje svog projekta na takav način da mogu da mu se posvete puno radno vreme.