U poslednjih dvadeset i pet godina, koliko radim sa programerima, ne prestaje da me fascinira do koje mere većina tih ljudi razmišlja drugačije od ostalih. U proseku, to su veoma inteligentne osobe, kojima, medjutim, obično nedostaje šire obrazovanje - što im, povremeno, limitira imaginaciju i kreativnost. Zato sam razmišljao o tome kako da koncipiram kurs filozofije za softveraše. S jedne strane, da im ponudim malo širu perspektivu gledanja na sopstvenu profesiju, kao i na život u celini, a, s druge, da sebi omogućim da ponovo razmišljam o filozofiji iz jednog potpuno novog ugla, pošto su u pitanju ljudi koji sa lakoćom shvataju neke pojmove i teze, koje su tradicionalno veoma teške ’početnicima’.
Recimo, jedan od prvih i osnovnih filozofskih pojmova, koji se uči na samom početku istorije antičke filozofije, je pojam logosa, koji se pojavljuje još kod Heraklita.
Ovo je pojam koji nije lako objasniti ’normalnim’ studentima, pošto, sa jedne strane, ima jezičku konotaciju – pa se tako može prevoditi kao ’reč’ ili ’diskurs’ – a, sa druge, sugeriše otelotvorenje, pošto je biće odredjeno ’rečju’, pa se tako logos može prevesti i kao ’racio’. Programeri, naravno, ovo shvataju bez problema kao program, dakle kao ono od čega svakodnevno lepo zarađuju za život, kao jezički kod koji omogućuje manifestaciju nekih pojava. Pa im je tako odmah jasna i prirodna veza filozofije i religije, u antičko doba, pošto postojanje ’logosa’ teško da može da se objasni drugačije sem postojanjem tvorca, dakle, prvobitnog kolege, kosmičkog programera, u neku ruku prvog software arhitekte, proces analitičara i interfejs dizajnera.
Ne treba posebno naglašavati da ovakav pristup omogućuje da se, već na prvom času, postigne identifikacije studenata sa onim što se studira. Zar nije fascinantno da je prva poznata filozofija, prva vizija totaliteta, prvi konzistentni izraz apstraktne misli čovečanstva zasnovan upravo na programerskoj paradigmi? Što odmah nameće sledeće pitanje: ako je ova paradigma ispravna, kako je moguće da je čovečanstvo već u prvom pokušaju filozofskog artikulisanja stvarnosti došlo do ovog odgovora? Ljudima koji su ionako navikli da skaču sa jedne na drugu funkciju, umesto da kod pišu linearno, neće biti čudno da se ovde odmah skokne do tridesetih godina 20. veka i pomene Martin Hajdeger, koji je smatrao da je inicijalno ’otkrivanje Bića’ najautentičnije, pa tako i najistinitije, zbog čega je izneo tezu da čitava Zapadna civilizacija već više od 2500 godina živi u „zaboravu Bića“. Što je, naravno, suprotno Hegelovom shvatanju da je istorija filozofije progres u sve potpunijem i sve adekvatnijem razumevanju totaliteta. Jedna velika viševekovna debata o odnosu znanja i istorije, koja ima dodirne tačke sa teorijama kao što su ’rekapitulacionizam’, ’kognitivni evolucionizam’, kao i ’epistemološki realizam ili relativizam’, odjednom se otvara kao na dlanu ljudima koji ’programersku paradigmu’ ne samo da odmah razumeju, već je svakodnevno i žive…
Naravno, postoji opcija da je ova primordijalna ’programerska paradigma’, koja podrazumeva tvorca, zapravo pogrešna - kao što to sugeriše naturalizam, koji dominira modernom filozofijom pod uticajem nauke. Kako onda razumeti logos? Možda kao nešto što se generiše tokom procesa samo-konstitucije i samo-regulacije Svemira? I da li nas to onda tera da drugačije razmišljamo i o samom programiranju, možda u kontekstu vizije ’samoregulišućeg koda’, zasnovanog na inteligenciji koja ne bi poticala od nekog programera, već bi se interno generisala i konstantno unapređivana unutar samog ’automata’? Ovim se odmah najranija filozofska teza povezuje sa savremenom teorijom veštačke inteligencije, što obavezuje da se definiše šta je inteligencija uopšte i kakve su sličnosti i razlike izmedju prirodne i veštačke inteligencije. A to je, naravno, jedno krajnje aktuelno i moderno filozofsko pitanje.
Pa onda, kada se jednom ovako povežu početak i kraj, čovek lakše može da se koncentriše i na ono što se dešavalo u medjuvremenu, kada je pojam ’logosa’ doživeo velike transformacije, koje su omogućile Aristotelu da zasnuje nauku koju je nazvao logikom, koja je mnogo kasnije - u ’matematičkoj verziji’ koju su predložili Rasel i Vajthed u knjizi Principia Mathematica - trebalo da postane osnova jednog ’veštački konstruisanog’, ali mnogo preciznijeg, jezika filozofije.
Nema tog programera koga neće zanimati na koji način je ovaj revolucionarni projekat matematičke logike uticao na izgradnju prvih programskih jezika, kao što je FORTRAN (od FORmula TRANslation). Što ne znači da neće imati strpljenja da, pre toga, sazna kako je pojam logosa, kao ’racija’, i logike kao analitičke discipline, uticao na pojavu racionalizma i na debatu izmedju racionalista i empirista o prirodi ljudskog saznanja.
Zar nije fascinantno da samo jedan pojam, kao tema prvog časa, omogućuje ovako dugu šetnju kroz istoriju filozofije, sa mnogobrojnim digresijama, ali uz jasnu ideju povezivanja najranijih shvatanja sa najaktuelnijim debatama! Ako bi čovek, onda, odabrao da na drugom času govori o Pitagori, pa spomenuo pitagorejsku tezu: da se „u osnovi svega nalaze brojevi“, diskusija bi zapretila da se prenese sa predavanja na kafanu.
Jer kako stati, kada se jednom zaključi da su brojevi delovi numeričkih sistemima, od kojih je jedan binarni sistem, koji se nalazi u samoj osnovi kompjuterskog programiranja. Za programere, teza da se sve sastoji iz brojeva, označava apsolutnu istinu, nešto očigledno i nesumnjivo, pošto se egzekucija svakog programa obezbedjuje prevođenjem u binarni kod asemblera. I, naravno, svakom je jasno da binarni sistem nije jedini ili ekskluzivni sistem, kada je programiranje u pitanju, već samo onaj koji danas upotrebljavamo, pre svega zbog odredjenih ograničenja dostupnog hardvera. Može se programirati i u jezicima koji se prevode u druge sisteme brojeva, ukoliko se naprave čipovi koji to omogućuju. Drugim rečima, Pitagorina teza je još univerzalnija i omogućuje još veću inteligenciju od one koja se u ovom momentu manifestuje u programerskoj praksi!
Da samo pomenem da druga Pitagorina teza, da je „priroda sebi slična“ ne samo što je u skladu sa najmodernijom teorijom nelinearnih procesa i fraktalnih fenomena kao rezultata tih procesa, već se može povezati i sa eksperimentima u oblasti hologramske memorije, sa kojom bi neki od studenata mogli da dođu u profesionalni kontakt, u bližoj ili daljoj budućnosti…Ili, recimo, analogija pećine, koja se pripisuje Pitagori, iako je znamo pre svega preko Platona, koja i sama može da se razume po uzoru na distinkciju programskog koda i korisničkog interfejsa...Uh, izgleda da bi ovaj drugi čas baš potrajao do duboko u noć… Tako da neću ni da pominjem treći, ili četvrti, već ću ovlaš da spomenem neki deveti, možda deseti čas, gde će objašnjenje ’Okamovog brijača’ omogućiti da se uveliko raspravlja o principima efikasnog programiranja.
Jer, ’Okamov brijač’ po prvi put povezuje pojmove elegancije i efikasnosti, tako što nalaže da se, pod pretpostavkom da je sve drugo identično, preferira ono objašnjenje nekog fenomena koje se sastoji iz manje elemenata. Drugim rečima, ovde se postavlja princip minimalno neophodnih sastojaka, odbacivanja svega suvišnog, kao kriterijum efikasnosti nekog objašnjenja. Svakom programeru ovo je deja vu jednog od prvih časova programiranja, gde je saznao ono što će mu biti često ponavljano tokom studija: da je ’očišćeni’, racionalni i elegantni kod, koji se sastoji iz minimalnog broja neophodnih elemenata, ujedno i najefikasniji (a takodje i najlakši za debug).
Stajem ovde, jer ne vredi. Previše je toga… A nisam se još ni dotakao Kanta koji je zaista prvi pokušao da opiše formativni software sa kojim se rađamo, na osnovu koga se konstituiše korisnički interfejs našeg iskustva. Izgleda da je programerska paradigma toliko sveobuhvatna da, iz njene perspektive, zaista može da se prepriča gotovo čitava istorija filozofije! Samo još da spomenem da nisu jedino metafizika, logika i epistemologija filozofske discipline u kojima programeri mogu da pronadju principe koji su im poznati iz profesionalne prakse. Toga ima i u drugim oblastima, kao što je, na primer, politička teorija, gde odredjene ideje društvene organizacije, kao što je radničko samoupravljanje, direktno koreliraju sa najsavremenijim pristupima organizaciji rada u IT sektoru, kao što su AGILE i HOLACRACY. Pa se postavlja pitanje da li je zaista realno očekivati da će ovakav tip organizacije omogućiti i najefikasniji timski učinak, s obzirom na to da je osnovni problem društvenog samoupravljanja uvek bila upravo neefikasnost – uprkos nesumnjivog humanizma…
Na kraju, samo da parafraziram Marksovu 11. tezu o Fojerbahu u terminologiji programerske paradigme;
- „Filozofi su svet samo različito tumačili, a stvar je u tome da se prekompajlira…“
Autor: Slobodan Simović