Blog post objavljen uz najavu 4 konferencije.
MS NetWork konferencija predstavlja najbolji i najmasovniji IT događaj u našoj zemlji, sa najvećom koncentracijom IT stručnjaka na jednom mjestu. Iz godine u godinu postaje sve bolja i bolja, a siguran sam da će se u tom pravcu nastaviti i po četvrti put. Ono po čemu ova konferencija ostaje zapamćena jeste po ljudima koje sretneš, idejama koje razmjenjuješ, i diskusijama koje vodiš. I sve to se dešava vrlo neformalno i opušteno pa diskusije nekad odu u vrlo čudnom, ali svakako zanimljivom smjeru.
Prije par dana razmišljao sam o tome šta je bilo prvo, kompjuter ili program? Vjerojatno su neki već čuli ovu priču. Kako se može napraviti program, a da kompjuter ne postoji? To je svakako jedno je od logičkih pitanja ovdje. Ali, ko je bio prvi programer?
Ovdje ćemo pokušati odgovoriti na pitanje iz naslova, a diskusija će biti vjerojatno predmet nekih kružoka na konferenciji. Činjenica da smo generacija koja živi u doba personalnih kompjutera, interneta i pametnih telefona, čini nas privilegovanom generacijom. Današnji stepen razvoja tehnologije, koja je prisutna u svakodnevnom životu, rezultat je evolucije ljudskog bića, a prije svega istrajnog rada i odricanja stotina nadarenih ljudi tokom hiljada godina ove civilizacije. Samo možemo pretpostaviti koliko je genijalnih ljudi živjelo na zemlji koji su doprinijeli današnjem naučnom stepenu, a koji su pali u historijski zaborav zbog nepostojanja zapisa o njima ili zbog činjenice da su skončali život zato što se nekom lokalnom vladaru nisu svidjela njihova promišljanja. Bilo kako bilo, danas se historija tumači na osnovu ostavštine pisanih i stvaralačkih djela koja svjedoče o permanentnoj genijalnosti ljudskog roda. Kao što je poznato, zanimanja softverskog inženjera, programera ili IT inženjera, prvenstveno se percipiraju kao muški posao, iako imamo mnogo primjera gdje su žene razvile sjajne karijere u IT industriji, no ogromnu većinu ipak čini muška populacija.
Nakon ovakvog faktičkog stanja danas, ne možemo ni pomisliti da je prvi programer bila žena, i to kakva žena. Priča o prvoj programerki dosta dugo je bila daleko od javnosti, jer to tada uopće nije bilo važno. Međutim, kada je kompjuterska nauka počela da postaje nešto oko čega se vrti veliki novac, i kada su počeli da se razvijaju programski jezici visokog nivoa, tek tada su ljudi počeli kopati po starim arhivama i tražiti ko je to bio prvi programer u historiji čovječanstva, i šta je prvo nastalo, kompjuter ili program.
Mnogo prije prvih programskih jezika, nije bilo popularno praviti razliku između hardvera i softvera, pa na primjer kad se kaže „isprogramirati“ bilo je slično kao kad se kaže „zalemiti“ ili „zavariti“ Možete zamisliti kako bi ljudi prije 100 ili više godina pomislili kad bi kazali da ste našli bug u programu. Historija kaže da je prvi uređaj koji se mogao isprogramirati konstruisao Charless Babbage, dok se za prvog programera tog istog uređaja smatra kćerka engleskog poete i lorda, Augusta Ada King Lovelance (1815-1852.). Ova mlada žena bila je privržena prirodnim naukama, prvenstveno matematici, a otac ju je iz milja zvao „Princeza paralelograma“. Danas kad bi nekoj ljepšoj polovini dao kompliment da je kao paralelogram, vjerojatno bi dobio „petaka iza ušiju“.
Babbageov dizajn mehaničkog kompjutera služio je za izračunavanje polinomskih funkcija, a mogao se instruirati da izvršava zapisani program. Program zapisan na karticama sekvencijalno bi izvršavao mehanički kompjuter. Zanimljivo da se ova mašina za računanje sastojala od mlina (eng. mill) i skladišta (eng. storage), koji po funkciji koji su obavljali odgovaraju današnjim procesorima i memoriji. Ovakva mašina trebala je posebno educirane ljude koji bi izrađivali programe, a tu dolazimo do Ade i njene uloge u svemu ovom.
Babbageova mašina koja se mogle programirati.
Kako navode izvori u periodu 1842-43, Ada je radila na prevodu Babbagovih predavanja oko najnovijeg mehaničkog kompjutera tzv. analitičke mašine, koju je Babbage dizajnirao poslije neuspjeha sa prvom mašinom iz 1822. godine. Kako je Ada bila upoznata s njegovim radom na prvoj mašini, napravila je posebnu sekciju u kojoj je elaborirala razlike u dizajnu. U tu svrhu napravila je primjer programa koji računa Bernulijeve brojeve. Njena implementacija računanja Bernulijevog niza racionalnih brojeva smatra se prvom implementacijom kompjuterskog programa, a Ada kao prvi programer, odnosno programerka.
Augusta Ada King Lovelance (1815-1852.)
Ada se 1842. godine našla u službi prevodioca Babbagovih predavanja, koje je držao na Univerzitetu u Torinu. Naime, ova predavanja posredno su bila prevedena na francuski jezik i objavljena u Ženevskoj biblioteci, kada je Ada bila zamoljena da ova predavanja prevede na engleski jezik. Tokom prevođenja Ada je davala određene komentare i pojašnjenja na prevod, a njena posebna Sekcija G sadržavala je program napisan za računanje Bernulijevih brojeva.
Slučajno ili ne, prevod Babbagovih predavanja koje je Ada prevela čekali su više od 100 godina da ponovo vide svjetlo dana i da postanu historija. Naime, 1953. godine nacrti Babbagove analitičke mašine postali su i formalno najstariji zapisi koji govore o prvom modelu kompjutera, a Adini zapisi kao prvi napisani kompjuterski program. Na žalost, Charless Babbage nikad nije završio svoj mašinski kompjuter. Mnogo godina kasnije, tačnije 2008. godine, Babbagov prvi kompjuter ipak je konstruisan i nalazi se u Computer Museum History u Kaliforniji.
Konačno, dolazimo do odgovora, šta je prvo nastalo kompjuter ili program? Vjerojatno ste se pitali kako se može napraviti program za kompjuter koji ne postoji. Ipak, tako se i desilo, Ada napravila program za kompjuter koji nikad nije bio napravljen, a prvi programer u stvari je bio žena. Krajem sedamdesetih i početkom osamdesetih godina prošlog stoljeća, u čast prvog programera nastao je programski jezik nazvan ADA. Historija se poigrala sa prvim programiranim kompjuterom i prvim programom, na način da kompjuter nije bio napravljen, a program testiran. Radujem se nastavku diskusije na konferenciji!
PS: pictures are taken from http://www.computerhistory.org/babbage/