Ljubavno pismo učenju

Drugi deo: Hrabri vizionari koji su izgradili digitalni svet
Richard Stallman – pobuna protiv zatvorenog softvera
VIII. Otvoreni softver – pravo svakog čoveka
34. Richard Stallman – pobuna protiv zatvorenog softvera

U ranim godinama računarstva programi su nastajali u sredinama u kojima se znanje prirodno kretalo od čoveka do čoveka. Računari su bili veliki, skupi i retki, dok softver još nije bio jasno izdvojen kao proizvod zaključan licencama, poslovnim tajnama i zabranama pristupa. Istraživači, studenti i inženjeri čitali su tuđi izvorni kod, popravljali pronađene greške i dodavali funkcije koje su bile potrebne čitavoj radnoj grupi. Poboljšana verzija vraćala se među kolege, gde je postajala nova osnova za dalja pitanja, eksperimente i rešenja. Svaki doprinos nosio je trag prethodnih autora, ali je istovremeno otvarao prostor sledećem čoveku da program razume dublje i učini ga korisnijim.

Takva kultura postojala je početkom sedamdesetih godina u Laboratoriji za veštačku inteligenciju Masačusetskog instituta za tehnologiju. Njeni računari predstavljali su zajedničko radno okruženje koje su istraživači neprestano prepravljali, proširivali i prilagođavali. Programeri su sebe nazivali hakerima u izvornom značenju te reči: ljudima koji uživaju u razumevanju sistema, pronalaženju domišljatih prečica i stvaranju elegantnih tehničkih rešenja. Učilo se čitanjem tuđih programa, razgovorima pored terminala, posmatranjem načina na koji iskusniji kolega razmišlja i zajedničkim traganjem za uzrokom greške. Znanje nije bilo izloženo kao dokaz nadmoći pojedinca, već je kružilo kao radni materijal čitave zajednice.

Richard Stallman je u laboratoriju došao 1971. godine i intelektualno sazrevao upravo u takvoj atmosferi. Radio je sa ljudima koji su razvijali operativni sistem ITS, Lisp mašine, programske alate i uređivače teksta. Granica između autora i korisnika bila je propustljiva, jer je čovek koji dovoljno dobro razume program mogao već narednog dana postati njegov saradnik. Dostupan izvorni kod omogućavao je početniku da uči iz najboljih postojećih rešenja, a iskusnom programeru da prepozna slabost koju prvobitni autor nije opazio. Tako se širila odgovornost za zajednički sistem, zajedno sa osećanjem da svako može doprineti njegovom kvalitetu.

Takvo radno okruženje stvaralo je posebnu vrstu pripadnosti. Ljudi su se okupljali oko problema koji je trebalo rešiti, a položaj u hijerarhiji imao je manju težinu od jasnoće ideje i vrednosti doprinosa. Greška jednog programera mogla je postati lekcija za sve, dok je poboljšanje koje je osmislio jedan član tima olakšavalo rad čitavoj laboratoriji. Niko nije morao da započne od prazne stranice ako je neko pre njega već razumeo deo problema. Rad se nastavljao tamo gde je prethodni čovek zastao, pa je zajednica čuvala svoje intelektualno pamćenje u kodu, dokumentaciji i svakodnevnoj spremnosti da se znanje podeli.

Razvoj računarske industrije postepeno je menjao takve odnose. Softver je sticao sve veću tržišnu vrednost, kompanije su zatvarale izvorni kod, a ugovori su ograničavali njegovo kopiranje, proučavanje i menjanje. Programeri koji su nekada slobodno razmenjivali rešenja prelazili su u privatne kompanije i potpisivali sporazume o poverljivosti. Ono što je prethodnog dana pripadalo zajedničkom radu moglo je ubrzo postati poslovna tajna. Korisnik je dobijao izvršni program koji računar može da pokrene, ali bez čitljivog izvornog oblika pomoću kojeg bi čovek mogao da razume njegovu unutrašnju logiku, popravi nedostatak ili ga prilagodi sopstvenim potrebama.

Jedan zaglavljeni štampač omogućio je Stallmanu da posledice te promene oseti u naizgled sasvim običnom radnom danu. Laboratorija je ranije koristila štampač čiji je upravljački program bio dostupan istraživačima. Uređaj se nalazio na mestu udaljenom od većine terminala, pa bi ljudi ponekad slali dokumente na štampanje, odlazili po njih i tek tada otkrivali da se papir zaglavio mnogo ranije. Red za štampanje nastavljao je da raste, poslovi su čekali, a vreme čitave grupe gubilo se zbog problema koji niko nije mogao da vidi sa svog radnog mesta.

Dostupan izvorni kod omogućio je programerima da način rada uređaja prilagode stvarnom životu laboratorije. Upravljački program izmenjen je tako da pošalje poruku kada se dokument odštampa i upozori korisnike kada se papir zaglavi. Obaveštenje nije zahtevalo složenu tehnologiju, ali je menjalo ponašanje čitave zajednice. Čovek koji bi prvi primio poruku mogao je da ode do štampača, oslobodi papir i tako pomogne svima čiji su dokumenti čekali. Jedna mala programska intervencija povezala je tehničko znanje, brigu o vremenu drugih ljudi i spontanu uzajamnu pomoć.

U toj epizodi vidi se vrednost radnog okruženja u kojem ljudi smeju da uče jedni od drugih. Programer je posmatrao svakodnevni problem, prepoznao obrazac, otvorio kod i pronašao rešenje koje prvobitni proizvođač nije predvideo. Kolege su zatim koristile poboljšani sistem, uočavale njegove prednosti i mogle da predlože sledeću izmenu. Znanje se uvećavalo kroz dodir različitih iskustava: neko je razumeo uređaj, neko potrebe korisnika, neko programski sistem, a zajedničko rešenje postajalo je bolje od onoga što bi izolovani pojedinac verovatno zamislio.

Kada je u laboratoriju stigao noviji Xeroxov laserski štampač, uređaj je bio tehnički napredniji, ali njegov upravljački program više nije bio dostupan istraživačima. Papir se i dalje zaglavljivao, red za štampanje se i dalje zaustavljao, a korisnici su ponovo odlazili do uređaja ne znajući da njihovi dokumenti nisu završeni. Stallman je želeo da uvede funkciju čiju je vrednost laboratorija već upoznala, ali je za takvu izmenu morao imati izvorni kod.

Saznao je da istraživač na drugom univerzitetu poseduje odgovarajući kod i zamolio ga da ga podeli. Kolega je odbio jer se ugovorom obavezao da ga neće prosleđivati. Tehničko rešenje bilo je poznato, čovek sposoban da ga primeni bio je spreman da uloži rad, a čitava zajednica imala bi neposrednu korist. Prepreku je stvaralo pravilo koje je saradnju pretvorilo u povredu ugovora i naložilo jednom stručnjaku da znanje uskrati drugom.

Stallmana je pogodilo saznanje da poslovna obaveza može raskinuti solidarnost među ljudima koji razumeju isti problem. U njegovom dotadašnjem iskustvu dobar programer pomagao je kolegi zato što se time unapređivao zajednički sistem. U novom poretku znanje se moglo posedovati bez prava da se prenese, dok je profesionalna odanost kompaniji dobijala prednost nad pomoći ljudima iz iste istraživačke zajednice. Kvar štampača tako je otkrio mnogo veći kvar u odnosima među ljudima: mogućnost saradnje postojala je, ali ju je ugovor namerno zaustavljao.

Priča o štampaču često se navodi kao osnivački trenutak pokreta slobodnog softvera, iako je Stallmanova odluka sazrevala tokom dužeg perioda. Vrednost te epizode nalazi se u njenoj svakodnevnosti. Zatvoreni kod više nije predstavljao apstraktno pitanje vlasništva, jer je neposredno uticao na ritam rada, kvalitet rešenja i spremnost kolega da pomažu jedni drugima. Kada je pristup kodu uskraćen, zajednica je izgubila mogućnost da sopstveno iskustvo pretvori u poboljšanje od kojeg bi svi imali korist.

Istovremeno se raspadala laboratorijska kultura u kojoj je Stallman naučio da programiranje može biti oblik zajedničkog stvaralaštva. Razvoj Lisp mašina, računara prilagođenih programskom jeziku Lisp i istraživanjima veštačke inteligencije, doveo je do osnivanja kompanija zainteresovanih za komercijalizaciju laboratorijskih dostignuća. Mnogi članovi tima napustili su akademsko okruženje, a delovi softvera koje su nekada zajedno gradili našli su se iza novih poslovnih granica. Poboljšanja više nisu slobodno kružila među ljudima koji su poznavali isti sistem, pa se sa kodom rasipalo i osećanje zajedništva koje je laboratoriju činilo intelektualnim domom.

Stallman je neko vreme samostalno ponovo stvarao funkcije koje su razvijali programeri kompanije Symbolics, nastojeći da laboratorijski sistem ne zaostane za zatvorenom verzijom. Taj iscrpljujući poduhvat pokazao je snagu njegove programerske veštine, ali i granice pojedinačne upornosti. Jedan izuzetno sposoban čovek mogao je napisati ogromnu količinu koda, dok se kultura saradnje mogla sačuvati jedino pravilima koja ljudima omogućavaju da nastavljaju, proveravaju i poboljšavaju rad svojih prethodnika. Za obnovu izgubljene zajednice bili su potrebni novi tehnički temelji, organizacija i pravni okvir koji će štititi deljenje znanja.

U septembru 1983. godine Stallman je objavio nameru da napravi GNU, potpuno slobodan operativni sistem nalik Unixu. Naziv je oblikovao kao rekurzivni akronim „GNU’s Not Unix”, odnosno „GNU nije Unix”. Duhovita konstrukcija pratila je veoma promišljenu tehničku odluku. Unix je već imao uticajan model rada, poznate alate i programske interfejse, pa je kompatibilnost omogućavala da ljudi u novi sistem prenesu postojeće znanje i programe. GNU je trebalo da preuzme korisne arhitektonske ideje, dok bi njegov kod bio napisan iznova i dostupan pod uslovima koji korisniku čuvaju slobodu.

Zamisao je obuhvatala čitavo računarsko okruženje. Operativnom sistemu bili su potrebni jezgro koje upravlja hardverom, kompajleri koji prevode izvorni kod, biblioteke sa zajedničkim funkcijama, komandno okruženje, uređivači teksta, programi za povezivanje prevedenih delova, alati za otkrivanje grešaka, dokumentacija i mnogobrojne svakodnevne komande. Ako bi samo jedan presudan deo ostao zatvoren, korisnik bi i dalje zavisio od dozvole njegovog vlasnika. Stallman je zato moralno načelo pretvorio u dugoročan inženjerski poduhvat koji je zahtevao rad čitave zajednice.

Sloboda u GNU projektu nije određivala cenu programa. Softver je mogao biti prodavan, ugrađivan u komercijalne proizvode ili podržavan kroz plaćen stručni rad. Presudna su bila prava korisnika: da program koristi u bilo koju svrhu, da prouči njegov rad i prilagodi ga svojim potrebama, da kopije podeli sa drugima i da objavi poboljšanu verziju kako bi od nje korist imala šira zajednica. Pristup izvornom kodu omogućavao je da te slobode postanu praktične, jer se program bez koda razumljivog čoveku teško može proučavati i smisleno menjati.

Među prvim velikim ostvarenjima projekta nalazio se GNU Emacs. Njegova arhitektura dopuštala je korisnicima da menjaju komande, stvaraju nove načine rada, povezuju uređivač sa drugim alatima i svoje dodatke dele sa zajednicom. Program je tako postajao okruženje koje raste zahvaljujući svojim korisnicima. Ljudi koji su ga koristili mogli su istovremeno biti autori proširenja, ispitivači, prevodioci dokumentacije, održavaoci i učitelji novim članovima zajednice. Otvorenost je živela u samoj konstrukciji programa, jer je svaki korisnik dobijao mogućnost da ga prilagodi i preda dalje u boljem obliku.

GNU projektu bio je potreban i slobodan kompajler, pošto bi izgradnja slobodnog sistema pomoću zatvorenog alata sačuvala zavisnost koju je projekat želeo da prevaziđe. Stallman je razvio GNU C Compiler, kasnije proširen u GNU Compiler Collection. Objavljivanje prve verzije 1987. godine omogućilo je programerima da proučavaju kompajler, popravljaju ga i prilagođavaju različitim procesorima. Tokom narednih decenija GCC je postao jedan od temelja razvoja operativnih sistema, serverskih platformi, ugrađenog softvera, istraživačkih projekata i brojnih komercijalnih proizvoda.

Oko Emacsa i GCC-a nastajao je sve širi skup slobodnih alata. GNU Debugger pomagao je programerima da prate izvršavanje programa i pronalaze greške, GNU Make automatizovao je izgradnju složenih projekata, Bash je postao široko korišćeno komandno okruženje, dok su biblioteke i osnovne komande oblikovale svakodnevni prostor za razvoj softvera. Te programe stvarali su i održavali brojni autori, timovi i volonteri. GNU je rastao upravo zahvaljujući sposobnosti ljudi da se uključe u već započet posao, pronađu mesto na kojem mogu doprineti i svoje znanje ostave dostupnim onima koji će doći posle njih.

U GNU manifestu iz 1985. godine Stallman je pozvao programere, univerzitete, proizvođače i korisnike da učestvuju u projektu. Doprinos se mogao dati pisanjem koda, testiranjem, dokumentovanjem, prevođenjem, obezbeđivanjem računarske opreme ili finansijskom podrškom. Takva širina pokazivala je da zajednički poduhvat ne počiva samo na nekolicini programerskih zvezda. Kvalitetan sistem nastaje kada različite sposobnosti pronađu zajednički cilj i kada se poštuje i rad čoveka koji ispravlja duboku tehničku grešku i trud onoga ko drugima omogućava da razumeju dokumentaciju.

Stallman je iste godine osnovao Free Software Foundation, Fondaciju za slobodni softver, kako bi projekat dobio trajniju organizacionu osnovu. Fondacija je mogla da zapošljava programere, prikuplja sredstva, objavljuje softver, vodi pravne poslove i obrazuje javnost o digitalnim slobodama. Time je zajednica dobila ustanovu sposobnu da čuva njene vrednosti i kada se pojedini saradnici povuku. Tehnički razvoj, pravna zaštita, dokumentacija i javno delovanje povezani su u strukturu koja je mogla nadživeti jednu laboratoriju i jednu generaciju programera.

Najdovitljiviji pravni izraz te filozofije postao je copyleft. Stallman je autorsko pravo upotrebio tako da autor dozvoljava korišćenje, proučavanje, menjanje i dalje deljenje programa, uz obavezu da svako ko distribuira izvedenu verziju sačuva iste slobode za naredne korisnike. Znanje se tako nije oslanjalo na promenljivu dobru volju svakog primaoca. Sloboda je putovala zajedno sa programom i njegovim budućim izmenama.

Ta zamisao sazrela je u GNU Opštoj javnoj licenci, poznatoj kao GPL. Prva verzija objavljena je 1989. godine, druga 1991, a treća 2007. godine, posle dugog javnog razmatranja. Licenca je omogućavala prodaju i komercijalnu upotrebu programa, ali je od distributera zahtevala da korisnicima sačuva prava koja je i sam dobio. Zajednički kod mogao je donositi ekonomsku vrednost, dok poboljšane verzije koje se distribuiraju nisu smele postati zatvorena vrata pred ljudima čiji je prethodni rad ugrađen u njih.

Copyleft je u tehničku saradnju uneo načelo uzajamnosti. Zajednica dopušta široku upotrebu svog rada, a oni koji dalje dele njegove izvedene verzije obavezni su da isto pravo prenesu svojim korisnicima. Takav model ne uklanja potrebu za novcem, organizacijom i odgovornim upravljanjem, ali stvara uslove u kojima znanje može da se gomila bez stalnog vraćanja na početak. Ispravka pronađena na jednom mestu može koristiti ljudima širom sveta, dok novo poboljšanje ponovo ulazi u zajedničku riznicu.

GNU projekat se do početka devedesetih približio potpunom operativnom sistemu, ali njegovo jezgro GNU Hurd još nije bilo spremno za široku upotrebu. Linus Torvalds je 1991. godine započeo razvoj jezgra Linux, koje je ubrzo objavljeno pod drugom verzijom GNU GPL-a. Linux se mogao povezati sa već razvijenim GNU kompajlerom, bibliotekama, komandnim okruženjem i sistemskim alatima. Susret dva projekta pokazao je koliko kompatibilnost i slobodne licence ubrzavaju stvaranje: jedna zajednica donela je jezgro, druga veliki deo korisničkog okruženja, a njihovo povezivanje omogućilo je nastanak praktičnog slobodnog sistema.

Stallman je zato insistirao na nazivu GNU/Linux, želeći da se sačuva svest o dugogodišnjem radu GNU zajednice i filozofiji koja je tom radu dala pravac. Rasprava o nazivu ostala je jedno od trajnih neslaganja računarske kulture, ali istorijska slika zahteva priznanje mnogobrojnih doprinosa. Linux jezgro popunilo je presudnu prazninu, GNU alati obezbedili su veliki deo okruženja potrebnog za njegovu izgradnju i upotrebu, dok su distribucije povezale hiljade programa koje su razvile brojne druge zajednice.

Slobodni operativni sistemi mogli su da se kopiraju, proučavaju i prilagođavaju potrebama škola, univerziteta, kompanija, državnih ustanova i pojedinaca. Student je mogao učiti iz alata koje koriste profesionalci, istraživački centar prilagoditi sistem novom eksperimentu, a mala kompanija izgraditi uslugu bez stvaranja čitavog operativnog okruženja od početka. Kada bi prvobitni tim napustio projekat, dostupni kod i dokumentacija davali su drugim ljudima mogućnost da nastave njegovo održavanje.

Taj razvojni model nije sam po sebi garantovao kvalitet, bezbednost ni pravednu raspodelu rada. Otvoren projekat može ostati bez održavalaca, zavisiti od malog broja iscrpljenih stručnjaka ili donositi veliku korist kompanijama koje malo ulažu u njegovu budućnost. Mogućnost čitanja koda takođe ne znači da svaki korisnik poseduje znanje potrebno da ga razume. Sloboda licence otvara vrata saradnji, dok prolazak kroz ta vrata zahteva obrazovanje, vreme, finansiranje, odgovorno vođstvo i kulturu u kojoj se doprinosi ljudi poštuju.

Krajem devedesetih godina izraz „otvoreni kod” približio je takav način razvoja mnogim kompanijama i programerima zainteresovanim za praktične prednosti dostupnog izvornog koda. Stallman je zadržao izraz „slobodni softver” jer je želeo da u središtu razgovora ostanu prava korisnika. Otvoren razvoj može ubrzati pronalaženje grešaka i doneti kvalitetnija rešenja, dok pitanje slobode zahteva da se razmotri kome program daje kontrolu, ko sme da ga menja i od čije odluke korisnik zavisi.

Ta pitanja postala su još važnija kada su programi ušli u telefone, automobile, medicinske uređaje, kućne aparate, obrazovne platforme i javne ustanove. Uređaj može pripadati čoveku, a da njegov softver ostane pod udaljenom kontrolom proizvođača. Funkcija može nestati nakon ažuriranja, popravka može biti zabranjena, podaci mogu odlaziti na server koji korisnik ne kontroliše, dok čitav proizvod može prestati da radi kada kompanija ugasi određenu uslugu. Stallmanova pobuna protiv zatvorenog softvera zato je prerasla okolnosti jedne laboratorije i postala pitanje svakodnevnog građanskog života.

Snaga njegovog doprinosa nalazi se u spoju ideje i ostvarenja. Pokrenuo je izgradnju operativnog sistema, napisao važne programe, okupio saradnike, osnovao instituciju i pomogao da se oblikuje licenca koja štiti zajednički rad. Sloboda je dobila kompajler, uređivač, debager, biblioteke, komandne alate, dokumentaciju, pravne odredbe i organizaciju. Filozofija je tako postala upotrebljiva infrastruktura na kojoj su drugi ljudi mogli da rade, uče i stvaraju.

Richard Stallman nije sam izgradio sav slobodni softver, kao što ni GNU ne obuhvata čitav savremeni otvoreni ekosistem. Linux su razvijali Linus Torvalds i široka zajednica održavalaca, GNU programe brojni autori i timovi, distribucije nove zajednice i kompanije, a korisnici su prijavljivali greške, prevodili dokumentaciju i pomagali početnicima. Stallmanov presudan doprinos leži u tome što je rasutu tradiciju deljenja preoblikovao u jasno izrečen cilj, tehnički projekat i pravni mehanizam sposoban da nadživi laboratoriju u kojoj je ta tradicija počela da nestaje.

Jedan zaglavljeni štampač u toj istoriji ostaje snažna slika svega što zajednica dobija kada ljudi mogu da dele znanje. Programer je uočio problem koji je opterećivao kolege, prilagodio sistem njihovim stvarnim potrebama i svoje rešenje ostavio svima. Radno okruženje postalo je prijatnije zato što je znanje jednog čoveka pretvoreno u zajedničku korist. Kada je izvorni kod zatvoren, izgubljena je i mogućnost da briga o drugima dobije tehnički oblik.

GNU je iz tog iskustva izveo dalekosežnu pouku: najbolje rešenje često nastaje kada prvi autor nema poslednju reč, kada početnik sme da zaviri u rad iskusnijeg čoveka, a stručnjak može da popravi ono što proizvođač nije predvideo. Deljenje znanja omogućava zajednici da pamti, uči iz grešaka i gradi dalje od granica pojedinačnog iskustva. Osećanje pripadnosti tada ne nastaje iz zajedničkog radnog prostora ili imena ustanove, već iz poverenja da će ono što danas naučimo sutra pomoći nekome koga možda nikada nećemo upoznati.

Stallmanovo najtrajnije nasleđe zato živi u svakom programu čiji se kod može otvoriti, razumeti, unaprediti i predati sledećem čoveku sa istim pravima. Njegova pobuna pokazala je da tehnologija može biti prostor zajedničkog učenja, u kojem se sposobnost pojedinca umnožava kroz saradnju. Kada znanje kruži, ono se ne troši deljenjem. Postaje preciznije, bogatije i otpornije, a ljudi koji ga stvaraju dobijaju dragoceno osećanje da ne rade jedni pored drugih kao usamljeni izvršioci, već zajedno grade svet u kojem svako može da nastavi tamo gde je neko pre njega zastao.

← Prethodna priča Povratak na sadržaj Sledeća priča →