subota, 20 aprila, 2024
Oslobađanje

Nekoliko filozofskih misli o softveru: Razvoj softvera

Autor: Dejan Maglov

Uvod

Ma koliko se čovek, kao vrsta, trudio da bude kreativan, uvek se to svodi na oponašanje prirode. Čovekov ideal je veštački stvoriti nešto što je priroda odavno već stvorila. U informatičkom svetu, ideal je kreirati veštačku inteligenciju po uzoru na nas same, odnosno naš mozak. Šezdesetak godina razvoja informatike je dovoljan period da možemo da podvučemo neke prve crte i analiziramo razvoj iz filozofske perspektive.

Kreacionizam ili evolucija

Proučavajući prirodu, čovek je razvio dve vodeće teorije nastanka i razvoja života (postanka), kreacionističku i teoriju evolucije. Kreacionistička teorija je starija i zasnovana je na dogmi. Kreacionističku teoriju podržava većina vodećih religija sveta bez veće želje za dokazivanjem ispravnosti iste. Tokom istorije čovečanstva je, čak, bilo opasno po život dovoditi u pitanje postojanje Stvoritelja života (Boga). Stvoritelju nije samo dodeljena uloga kreatora života, nego se tvrdi da Stvoritelj upravlja kopiranjem, modifikovanjem, kombinovanjem i uništavanjem svojih kreacija.

Za razliku od kreacionističke teorije, evolucionistička teorija nije baš jasno i nedvosmisleno objasnila sam početak nastanka života (postoje teorije usmerene u tom pravcu). Po evoluciji, dalji razvoj života je prepušten stihiji po nekim jasnim pravilima.

Pravila su:

  • Jedinka ima određen vek trajanja
  • Jedinke se same razmnožavaju (kopiraju)
  • Polno razmnožavanje (kombinovanje) omogućava modifikovanje originala
  • Najjače i najprilagodljivije jedinke opstaju

Evolucijska teorija nije nikad 100% negirala postojanje Stvoritelja života (možda pod uticajem religije), ali ga je svela samo na Kreatora i nekoga ko je uspostavio pravila po kojima se evolucija dalje odvija bez njegove direktne intervencije (jedna od teorija).

Softver i teorije postanka

Prosto je neverovatno koliko softver podseća na živi organizam.

Softver ima:

  • svoj životni vek
  • ima svoje ekosisteme (hardver)
  • razmnožava se kopiranjem
  • može se kombinovati sa drugim softverom (kombinovanje i modifikacija)
  • može biti jednoćelijski (u jednoj datoteci) ili višećelijski (koristi više različitih biblioteka)
  • može biti složen organizam sa različitim funkcijama (OS sa aplikativnim softverom)

Smrt softvera nastaje:

  • nestankom njegovog ekosistema (hardvera)
  • zastarevanjem
  • biva „pojeden” od strane nekog većeg softvera
  • izumire zato što postoji bolji softver za istu funkciju

Ovo su prirodni uslovi za „život” softvera. Vlasnički softver ima još nekoliko uslova koji zavise od njegovog vlasnika.

Nismo sigurni da li je neko na ovaj način razmišljao o softveru. U svakom slučaju, čovek je krajem dvadesetog veka dobio priliku da preko softvera eksperimentalno proveri teorije postanka.

Kreacionizam

Kreacionističku teoriju proverava vlasnički softver. Zakon o zaštiti intelektualnih prava je stvorio uslove da ovaj softver uvek bude u vlasništvu svog stvoritelja, tako da stvoritelj vlasničkog softvera pored kreiranja ima moć da kontroliše kopiranje, modifikovanje, kombinovanje i smrt svoje kreacije.

Vlasnički softver nema toliko vidljive karakteristike „živog” organizma. On je samo roba sa svojom tržišnom vrednošću koja je ekvivalentna upotrebnoj vrednosti (svrsi).

Karakteristike:

  • Svaki vlasnički softver je nastao kao potreba da zadovolji neke potrebe njegovog stvoritelja (funkcionalne, materijalne, duhovne, i druge potrebe)
  • Njegov život je ograničen uglavnom na period dok služi svom vlasniku
  • U toku svog života može biti kontrolisano kopiran, modifikovan i kombinovan
  • Poneki može u toku svog života i da se „odmetne” u „divljinu” i pomoću pirata bude kopiran nezavisno od svog stvoritelja
  • Život mu prestaje kad više ne zadovoljava potrebe svog vlasnika
  • Retki srećni vlasnički softveri nakon svog komercijalnog života budu pušteni u „divljinu” sa besplatnom licencom da umru „prirodnom” smrću bez mogućnosti da se modifikuju i da produže svoj život.

Sa druge strane, ako se život na Zemlji posmatra kroz prizmu kreacionizma, onda može da se postavi filozofsko pitanje da li su i živa bića zaista živa, ili se sve odvija prema nekom Božijem planu bez sopstvene volje Božijih kreacija. Sa tim u vezi, onda i večno pitanje svrhe postojanja čoveka, dobija na važnosti. Ako se čovek odmetne i prestane da obavlja funkciju zbog koje je kreiran, da li će ga Bog (Stvoritelj) ukinuti kao nešto nepotrebno?

Postoji još jedan problem vezan za kreacionistički pristup softveru. Čovek nije savršen i ne može da igra ulogu Boga. Da li je neko čuo da je Bog ukinuo neku svoju kreaciju zato što je kreirao neku savršeniju, pa zbog toga nema vremena da održava prethodnu verziju? Ili, da je ukinuo neku svoju kreaciju zato što se oženio i ima preča posla od održavanja svoje kreacije?

Evolucija

U svetu softvera nije moguće da on nastane spontano. Slobodni softver takođe ima kreatora kao i vlasnički softver, međutim njegov razvoj više liči na evoluciju nezavisnu od kreatora.

Karakteristike:

  • Kreator slobodnog softvera stvara proizvod sa određenom funkcijom i uspostavlja pravila daljeg razvoja. Nakon toga, slobodan softver se pušta u „divljinu” (nije obavezno, ali bez puštanja softvera u divljinu, on nema sve karakteristike slobodnog softvera)
  • Na dalji razvoj slobodnog softvera kreator može da ima presudni uticaj, ali i ne mora
  • Softver u ovom slučaju „živi” svoj slobodan život po principu – najjači i najprilagodljiviji opstaju
  • Najjači projekti okupljaju zajednice koji se dalje brinu o razvoju
  • Neki evoluiraju u potpuno nepredvidljivim pravcima iz ugla kreatora

Kada na ovakav način posmatramo softver, on nije samo slobodan za kopiranje, modifikovanje i kombinovanje, nego ispada da je suštinski slobodan po principu „žive” jedinke.

Ovaj model razvoja softvera se pokazao kao vrlo efikasan. Iako je nastao znatno kasnije nego model vlasničkog softvera, i pored svih prepreka je po razvoju stigao vlasnički softver, a u nekim elementima i prestigao.

Mane i prednosti vlasničkog i slobodnog softvera

Vlasnički softver je za sada ekonomski jači. Iz ove tvrdnje proizilaze sve prednosti ovog modela. Novac ovom modelu obezbeđuje timove najboljih, najkvalitetnijih kreativaca sa zacrtanim rokovima, što omogućava da manji timovi obavljaju više posla u kraće vreme. Po potrebi taj novac prilagođava i ekosisteme (čitajte hardver) po meri kreiranog softvera. Novac omogućava bolji marketing za ovaj softver i bolje, preciznije skeniranje potreba korisnika softvera.

Slobodni softver se sa druge strane pomalo ponaša kao divlja zver, koja ukoliko nije strogo pod kontrolom, može da se razvija u nepredviđenim pravcima. Ovakvo poređenje niste verovatno nigde mogli da čujete. Ako ste dugogodišnji korisnik slobodnog softvera, setićete se bar nekoliko primera da ste naleteli na idealan softver za vas, koji je vremenom sa svojim razvojem malo „podivljao” i postao nepristupačan za vas.

Slobodni softver je sada u divljini i male su šanse da će ga više iko zaustaviti u njegovom razvoju. Dok je u početku trebalo kreirati prve slobodne softvere, sad je veće umeće pohvatati ih u divljini i „pripitomiti” ih da obavljaju zadate radnje. Ipak, ne treba paničiti – svi najbolji projekti slobodnog softvera okupljaju oko sebe FLOSS zajednice, koje striktno vode računa o svom projektu i ne dozvoljavaju da on „podivlja”. FLOSS zajednice jesu pravi krotitelji divljih zveri i vode računa ne samo o tome da on ne „podivlja”, nego i da dugoročno radi posao za svoje korisnike na najbolji i predvidiv način. Upravo FLOSS zajednice su jedan od ključnih faktora uspeha slobodnog softvera.

Umesto zaključka

Šta je poenta ove pričice? Prevashodno upoređenje trenutnog stanja i odnosa između vlasničkog i slobodnog softvera kroz teorije koje su svima jasne ili bar mislimo da su nam jasne. Cilj nije bio da se ocrni jedna ili druga strana i jedan koncept postavi kao jedino ispravan. Ovi koncepti će još dugo koegzistirati bez mogućnosti da jedan konačno pobedi. Verovatnije je da će u budućnosti doći do približavanja ovih koncepata.

Sa rastom upotrebljivosti slobodnog softvera povećavaće se i interesovanje za njega. To će dovesti do dela komercijalizacije slobodnog softvera, ali ne u smislu da će se softver prodavati, nego će se prodavati održavanje i podrška jer uvek će biti korisnika koji će radije da plate održavanje nego da to sami uče. Sa druge strane, padaće cene vlasničkog softvera, što će verovatno dovesti do oslobađanja dela tog softvera i prepuštanja FLOSS zajednici razvoj i održavanje manje bitnih delova vlasničkog softvera sa ciljem uštede i koncentracije vlasničkih razvojnih timova na, za njih, bitne delove. Ovo su naše pretpostavke na osnovu već uočenih tendencija. Da li će to baš tako biti? Videćemo u budućnosti.