
Tako se, eto, ovih dana događa da se programska baza paketa OpenOffice.org, koji je pod nadzorom tvrtke Oracle, duplicira u projektu nazvanom LibreOffice. Da bismo stvar dodatno zakomplicirali, tu je i Go-oo, verzija OpenOffice programa sa ubačenim stvarima koje Oracle nije ubacio u OpenOffice.
Tako sad imamo tri različite verzije uredskog alata. Što to znači krajnjem korisniku i kako to može završiti?
Trenutno, uredski korisnik neće dobiti velike glavobolje zbog teške odluke – koji od tri gotovo istovjetna komada softvera treba koristiti? Faktički, rad u sva tri softvera – originalnom i u dva “forka” gotovo je identičan. No, neke razlike postoje. LibreOffice je svjež “otpadnik” od izvorne baze softvera, trenutačno je u fazi bete i ne preporučuje se za produkcijska okruženja. To ga automatski diskvalificira u uredima i osobnoj upotrebi. No, za razliku od njega, Go-oo je proizvod koji nudi zanimljive prednosti u odnosu na “original”: veću kompatibilnost sa MS Office dokumentima, podržava polja, zna čitati MS Works dokumente, i što je posebno zgodno – nudi veću kompatibilnost sa VBA makroima u Excelu, te može prikazivati dijagrame rađene u Visiu. Njegova mana – određena ovisnost o Novellu. Njegova slatka tajna – Go-oo nema DRM.
Krajnjem korisniku ova priča zaista drži vodu tek kad je u pitanju funkcionalnost i bogatstvo opcija, pa je u ovom slučaju Go-oo u prednosti nad izvornim OpenOffice paketom. Već i sama poboljšana kompatibilnost sa MS Office formatima veliki je adut, mnogima dovoljan razlog za prelazak na Go-oo.
I tu otprilike prestaje interes običnog korisnika za forkove i verzije, svađe i razmirice, neslaganja i disparitetne vizije. Šteta, jer se u pozadini priče krije jedna vrlo zanimljiva filozofija, pa pročitajte ovaj tekst do kraja – reći će vam nešto zanimljivo i možda neočekivano o prirodi slobodnog softvera.
Razdvajanje razvojnog procesa nekog softvera (što se, kako smo rekli, kolokvijalno naziva “forkanje” - po u svijetu Unixa poznatom sistemskom pozivu “fork” ne nastaje nečijim hirom.
Iza takvih poteza uvijek stoje ozbiljni problemi koje zajednica koja razvija određeni softver ne može na miran ili efikasan način razriješiti. Ponekad su ti problemi tehničke prirode, jer netko treba funkcionalnost koju drugi ne trebaju; u tom slučaju se dio programera odvoji od glavne struje i brije po svome. To ne mora nužno biti destruktivna stvar – odličan primjer je Linux kernel: osim općeg, tj. mainstream kernela, korisnici Linuxa mogu koristiti kernele koji su na neki način modificirani, pa uključuju opcije koje su u mainstream kernelu isključene ili uopće nisu integrirane. Tako, primjerice, postoje forkovi kernela koji su optimizirani za realtime aplikacije, oni koji su optimizirani za rad na velikim poslužiteljima, a svakako najzanimljivija dva forka su onaj koji je učinio Oracle sa svojim “Unbreakable Linux Kernel” forkom vrlo izazovnog naziva (koji, vjerujem, neće dugo biti istinit), ali isto tako i fork koji je učinio Google kad je uzeo Linux kernel i od njega napravio – Android.
Da, Android. Ono čudo koje pokreće hrpetinu modernih “pametnih” telefona u svojoj biti je Linux sa šarenim grafičkim sučeljem. Makes you wonder, doesn't it?
Treći veliki faktor su proizvođači tzv. embedded uređaja, malih i jednostavnih uređaja koji šute i rade svoj posao: kućna kina, media playeri, set top boxovi, NAS i slično... imate li nešto od toga, vjerojatnost da to čudo vrti neku vrst Linux kernela je poprilična.
Najzad, da bismo stvar pojednostavili do kraja: u načelu, svaku Linux distribuciju (Ubuntu, Debian), Red Hat, Mint, Gentoo...) možemo smatrati nekom vrstom forka jer je riječ o derivatima iste početne baze: kolekcije Linux kernela i GNU softvera. Dapače, neke distribucije su nastale upravo kao fork neke druge distribucije: Ubuntu je fork Debiana, Mint je fork Ubuntua...
Osim tehnološkog, postoji i socijalni moment koji utječe na razdvajanje koda. To su najčešće ideološka neslaganja ili neslaganja u fundamentalnom smjeru razvoja softvera. Dobar primjer za to je Joomla, jedan od najpopularnijih Web CMS sustava. Joomla je fork CMS proizvoda nazvanog Mambo, a nastao je kad su se nezavisni developeri pobunili zbog neobičnog shvaćanja GPL licence od strane tvrtke koja je vlasnik Mambo CRM-a. Iako se na kraju kratke ali prilično žestoke svađe tvrtka priklonila stavu kojeg su dijelili nezavisni developeri, sukob je bio toliki da se dio njih jednostavno nije više htio vratiti u okrilje starog sustava. Tako je iz proizvoda Mambo nastao proizvod Joomla. Isprva su te dvije aplikacije bile gotovo identične, u smislu da su se template-i i ekstenzije pisani za jednu aplikaciju mogli koristiti u drugoj, ali vremenom je fork, baš kao i grane pravog stabla, učinio te dvije aplikacije samostalnim entitetima sa malo dodirnih točaka.
Forkanje ne mora tako završiti – forkanje može završiti (ili biti trajan proces) razmjenom najboljih rješenja između različitih forkova – što je relativno čest slučaj sa forkovima Linux kernela. Jednostavno, stvari koje se pokažu najboljima budu bez puno lomljenja ega prihvaćene u drugim kernelima. Simpatičan i javnosti zanimljiv primjer je odluka Google-a da ideje iz svog forka (Android) vrati u zajednicu Linux developera (koji, inače, nemaju previše lijepih komentara na to što je Google učinio od Linux kernela :-). U ovakvom stilu forkanja grane stabla se često dodiruju i isprepliću, čineći cijelu strukturu čvršćom.
Vratimo se sad na fork OpenOffice aplikacije nazvan LibreOffice. Za razliku od Go-oo forka koji je najvećim dijelom tehnološki fork jer implementira promjene koje Oracle nije htio ubaciti u OpenOffice, LibreOffice je ideološki fork. U biti tog forka je želja za većim angažmanom i, što je važnije, većim utjecajem zajednice na razvoj aplikacije. Oracle je komercijalna tvrtka i ima svoj zacrtani razvojni put i svoje interese. Takav rigidan stav doveo je do napuštanja OpenSolaris OS-a kojeg je Oracle dobio u miraz kupnjom tvrtke Sun Microsystems. Jednakom lakoćom kojom je Oracle odlučio škartirati OpenSolaris, tvrtka se može odlučiti škartirati OpenOffice, ako je to u njenom interesu. Obzirom na veliku popularnost tog softvera ne čini se vjerojatnim da bi se Oracle odlučio na takav korak, no ova situacija lijepo pokazuje ovisnost softvera neke tvrtke o njenim promjenjivim planovima za budućnost. Vjerojatno vam je sad jasnije zašto LibreOffice – to je fork koji je u potpunosti pod kontrolom zajednice, pa ako Oracle ikad odluči škartirati OpenOffice (a Novell odluči škartirati Go-oo), na životu će ostati LibreOffice.
Ljepota slobodnog softvera je što je ovako nešto moguće napraviti, što se tako nešto događa i što nema jedne jedinstvene sile o čijoj će volji ovisiti sudbina neke aplikacije.
Je li, dakle, dobro što se OpenOffice – forka? Da, i to iz više razloga!
Ponajprije, tako se (na, istina, pomalo umjetan način) stvara konkurencija na tržištu – koji ćete od tri forka koristiti ovisi samo o vašim preferencijama i mogućnostima koje neki fork nudi, a za koje ste vi zainteresirani. Tako kupci dobivaju mogućnost izbora, a proizvođači gube monopolski položaj (pa makar bila riječ o, u suštini, istovjetnoj aplikaciji). Kupcu - super.
Zatim, sukladno situaciji koja se već događa sa Linux kernelom, posve je moguće da tri grupe u većoj ili manjoj mjeri surađuju, pa one najbolje stvari završe u sva tri forka. Takav neobičan način razvoja softvera jača poziciju sve tri grupe, pri čemu ostavlja dovoljno mjesta za njihove različitosti. Tako tri isprepletene grančice postaju čvršće.
Najzad, u slučaju propasti jednog forka, ostali nastavljaju živjeti. Forkovi najčešće propadaju kad izgube sve developere (ili u slučaju ego-forka, kad jedan jedini developer koji je napravio fork shvati da mu se nitko drugi nije pridružio, pa odustane), bilo zbog novčanih problema, bilo zbog drugih razloga. Ako usahne OpenOffice, uvijek će ostati LibreOffice. I obrnuto.
Iako forkanje softvera na prvi pogled izgleda kao rasipanje resursa zbog paralelnog rada više različitih, nepovezanih timova na faktički identičnim stvarima, praksa pokazuje kako taj događaj ne mora nužno biti negativan – evolucijsko grananje softvera odlična je stvar, jednako kao i razmjena ideja među forkovima i dodatna sigurnost preživljavanja softvera. Forkanje se u tom smislu ponaša slično evoluciji – ne želimo imati monokulturu softvera, monokulture su štetne po okoliš i osjetljive na poremećaje; e-raznolikost je ključ zdravog e-kosustava.
Najzad, u krajnjoj liniji, od svog tog kaosa i anarhije direktnu korist imaju – korisnici. To su, naime, oni za koje se softver i piše.
Autor je jedan od vodećih domaćih informatičara i ekspert za slobodni softver, informatički novinar, bivši stručni savjetnik za informatiku u poglavarstvu Grada Zagreba i vlasnik tvrtke Operacijski sustavi. Jedan je od 25 najboljih IT konzultanata u Hrvatskoj, prema izboru korisnika tih usluga. Njegove tekstove možete pronaći na njegovom osobnom blogu oddparity.org.

