Ljubavno pismo učenju
Početkom devetnaestog veka brojevi su već upravljali velikim delom sveta, premda računari još nisu postojali. Pomorci su zavisili od astronomskih i navigacionih tablica, inženjeri od proračuna konstrukcija, banke i osiguravajuća društva od kamatnih i statističkih pregleda, dok su se naučnici služili logaritmima, trigonometrijskim vrednostima i efemeridama. Sve te podatke izračunavali su ljudi, često organizovani u grupe čiji su članovi neumorno izvodili unapred određene aritmetičke korake. Engleska reč computer tada je označavala upravo osobu koja računa, a pouzdanost čitavih oblasti ljudskog delovanja počivala je na njenoj pažnji, istrajnosti i sposobnosti da tokom dugog rada ne načini nijednu omašku.
Takav sistem bio je spor, skup i izuzetno osetljiv na greške. Pogrešno izračunata ili prepisana cifra mogla je da se prenese kroz čitavu kolonu, dospe u štampano izdanje i zatim utiče na rad hiljada korisnika. Provera je zahtevala novo računanje, dok je ručno slaganje štampe otvaralo dodatni prostor za netačnosti. U vremenu u kojem su mašine već preuzimale sve složenije poslove u tekstilnim fabrikama, rudnicima i metaloprerađivačkim radionicama, matematičko računanje ostajalo je vezano za zamorljivo ponavljanje ljudskih pokreta i stalnu budnost ljudskog uma.
Charles Babbage je u tom raskoraku prepoznao inženjerski problem. Industrijska revolucija pokazala je da se složen fizički posao može rastaviti na precizne operacije i poveriti mehanizmu, pa je Babbage isto načelo primenio na računanje. Ukoliko se matematički postupak može opisati konačnim nizom nedvosmislenih koraka, mogao bi ga izvršavati pravilno konstruisan uređaj, oslobođen umora, rasejanosti i nedoslednosti. Njegova početna zamisao bila je usmerena na mašinu koja bi automatski izračunavala numeričke tablice i neposredno ih štampala, čime bi se povezali proračun, provera i objavljivanje rezultata u jedinstven, pouzdan tok.
Iz te potrebe nastala je Diferencna mašina, nazvana prema metodi konačnih razlika. Taj matematički postupak omogućava izračunavanje vrednosti određenih funkcija uzastopnim sabiranjem, čime se izbegava neprekidno množenje i deljenje, mnogo zahtevnije za mehaničko izvođenje. Babbage je apstraktni algoritam preveo u sistem zupčanika, osovina, brojčanih točkova i mehanizama za prenos cifara. Položaj svakog točka predstavljao je jednu decimalnu cifru, dok je njihovo usklađeno kretanje omogućavalo da rezultat jednog koraka postane polazište za naredni.
U toj konstrukciji dogodio se važan susret matematike i materijala. Algoritam, dotad zapisan na papiru i namenjen ljudskom izvršiocu, dobio je fizički oblik. Matematičko pravilo postalo je raspored delova, a tok računanja pretvoren je u precizno kretanje mehanizma. Babbage je time pokazao da se postupak može odvojiti od čoveka koji ga obavlja i ugraditi u mašinu sposobnu da ga ponavlja uvek na isti način. Upravo će ta mogućnost prevođenja formalnog pravila u izvršivu konstrukciju postati jedno od temeljnih načela računarstva.
Babbage je 1822. godine javno predstavio princip Diferencne mašine, a britanska vlada ubrzo je podržala njen razvoj. Projekat je zahtevao hiljade veoma preciznih delova, znatno složenijih od proizvoda uobičajenih radionica toga vremena. U saradnji sa izuzetnim alatničarem i inženjerom Josephom Clementom razvijao je nove postupke obrade metala, merne instrumente i standarde preciznosti. Mašina namenjena unapređenju računanja tako je istovremeno podsticala razvoj proizvodne tehnologije bez koje nije mogla biti izgrađena.
Prva Diferencna mašina ipak nije dovršena. Konstrukcija se menjala tokom rada, broj delova i troškovi neprekidno su rasli, a odnosi između Babbagea, Clementa i državnih ustanova postajali su sve napetiji. Vlada je finansirala poduhvat bez odgovarajućeg modela za upravljanje dugotrajnim i istraživački neizvesnim projektom, dok je Babbage nastavljao da usavršava nacrte pre nego što bi prethodna verzija bila završena. Njegova sposobnost da stalno uočava bolje rešenje produbljivala je zamisao, ali je istovremeno otežavala izgradnju stabilne, konačne konstrukcije.
Iz teškoća Diferencne mašine izrasla je ideja neuporedivo većeg dometa. Tokom tridesetih godina devetnaestog veka Babbage je počeo da zamišlja uređaj koji bi, prema promenljivim uputstvima, mogao da izvršava različite vrste proračuna. Nazvao ga je Analitička mašina. Diferencna mašina bila je specijalizovana za određenu klasu matematičkih zadataka, dok je Analitička mašina zamišljena kao programabilan sistem opšte namene, sposoban da menja ponašanje bez promene sopstvene osnovne konstrukcije.
U njenoj arhitekturi pojavile su se funkcionalne celine koje prepoznajemo i u savremenim računarima. Deo nazvan store trebalo je da čuva brojeve i međurezultate, obavljajući ulogu nalik memoriji, dok je mill bio namenjen izvođenju aritmetičkih operacija, kao udaljeni mehanički prethodnik procesora. Posebni sklopovi upravljali bi izborom operacija, redosledom izvršavanja, prenosom vrednosti između memorije i računskog dela, kao i ispisivanjem dobijenih rezultata.
Razdvajanje prostora za podatke od jedinice koja ih obrađuje omogućilo je da isti uređaj obavlja različite poslove. Mašina je trebalo da sabira, oduzima, množi, deli, poredi rezultate i bira nastavak računanja prema zadatom postupku. Njena svrha više nije bila trajno određena rasporedom zupčanika, pošto je konkretan zadatak mogao da se zada skupom instrukcija. U toj zamisli jasno se pojavila razlika između fizičkog uređaja i programa koji određuje njegovo ponašanje.
Za unošenje instrukcija Babbage se oslonio na princip bušenih kartica korišćenih na Jacquardovim razbojima. Raspored otvora na karticama određivao je koje će se niti podizati i kakva će šara biti utkana, pokazujući da promenljiv niz uputstava može upravljati istom mašinom i stvarati različite rezultate. U Analitičkoj mašini kartice su trebalo da određuju operacije, promenljive nad kojima se one izvode i način kretanja podataka kroz sistem. Umesto tkane šare, njihov proizvod bio bi tok matematičkog računanja.
Babbage je razradio različite vrste kartica za operacije, promenljive i upravljanje njihovim redosledom. Ponovno provođenje određenog niza kartica kroz čitač omogućilo bi ponavljanje operacija, čime se njegova zamisao približila savremenim programskim petljama. Predvideo je i da nastavak računanja može zavisiti od prethodno dobijenog rezultata, uvodeći princip uslovnog grananja. Mašina je time sticala sposobnost da svoj dalji rad prilagodi stanju sopstvenog proračuna, sledeći formalno zadato pravilo.
Razlika između mašine i programa otvorila je mogućnost tehnološke opštosti. Fizički mehanizam predstavljao je sposobnost računanja, dok su instrukcije određivale njegovu trenutnu namenu. Jedan uređaj mogao je da dobija nove zadatke bez ponovne izgradnje, a budući korisnici mogli su da osmišljavaju postupke koje prvobitni konstruktor nije morao pojedinačno da predvidi. Na tom načelu počiva čitav digitalni svet u kojem ista fizička mašina obrađuje tekst, prikazuje slike, vodi poslovne evidencije, upravlja industrijskim procesima ili izvršava modele veštačke inteligencije.
Analitička mašina živela je u hiljadama stranica tehničkih crteža, tabela, beležaka i posebne mehaničke notacije kojom je Babbage prikazivao odnose između delova i kretanje podataka kroz sistem. Tokom više decenija razvio je brojne verzije mehanizama za sabiranje, prenos cifara, čuvanje vrednosti, čitanje kartica i štampanje rezultata. Njegovo neprekidno usavršavanje svedoči o izuzetnoj dubini razumevanja, ali objašnjava i zašto projekat nikada nije dobio jednu stabilnu, potpuno zaključenu konstrukciju pogodnu za izgradnju u celini.
Razvoj mašine obuhvatao je širu zajednicu inženjera, crtača, majstora i matematičara. Posle Babbageovih predavanja u Torinu 1840. godine, italijanski inženjer i matematičar Luigi Federico Menabrea objavio je na francuskom jeziku opširan prikaz Analitičke mašine. Ada Lovelace je taj rad prevela na engleski i dopunila beleškama znatno obimnijim od izvornog teksta. Njena tabela za izračunavanje Bernoullijevih brojeva ostala je jedan od najpoznatijih ranih prikaza niza operacija namenjenog programabilnom računaru.
Sačuvana dokumenta pokazuju sadržajnu razmenu ideja između Babbagea i Lovelaceove, kao i njihove različite, međusobno dragocene doprinose. Babbage je razvio arhitekturu mašine, njene instrukcije i brojne programske postupke, dok je Lovelaceova njene mogućnosti predstavila jezikom koji je jasnije otkrivao domet opšte programabilnosti. Razumela je da bi mašina mogla da obrađuje različite vrste formalno predstavljenih odnosa ukoliko se oni izraze simbolima i pravilima. Njihova saradnja spojila je konstrukcionu preciznost sa imaginacijom sposobnom da nasluti oblasti primene koje još nisu postojale.
Analitička mašina trebalo je da radi pomoću decimalnih točkova, osovina i mehaničkog prenosa, pa bi prema savremenim merilima bila ogromna, složena i spora. Svaka nepravilnost u izradi mogla je da izazove zastoj, dok je prenošenje cifara kroz dugačke nizove zupčanika zahtevalo izuzetno pažljivo usklađivanje. Njena mehanička priroda ograničavala je brzinu, ali ne i dubinu arhitektonske zamisli. Babbage je razumeo da programabilan sistem zahteva memoriju, jedinicu za obradu, upravljanje instrukcijama, ulaz, izlaz i pouzdan način predstavljanja podataka.
Razmišljao je i o efikasnosti računskih postupaka, naslućujući da različiti putevi do istog rezultata mogu zahtevati veoma različito vreme izvršavanja. Postojanje mašine koja neumorno sledi instrukcije prirodno je otvaralo pitanje kako te instrukcije urediti što delotvornije. Više od jednog veka pre nego što je računarstvo postalo akademska disciplina, u njegovom radu pojavila se svest da vrednost programa zavisi i od načina na koji koristi raspoložive operacije, memoriju i vreme.
Posebnu pažnju posvetio je štampačkom mehanizmu koji bi rezultate neposredno prenosio na papir ili na ploče pogodne za umnožavanje. Tačan proračun nije mnogo vredeo ukoliko bi se rezultat zatim pogrešno prepisao ili odštampao, pa je Babbage želeo da automatizuje čitav proces, od početnih podataka do završene tablice spremne za objavljivanje. Njegovo razmišljanje obuhvatalo je celovit sistem rada, uključujući mesta na kojima nastaje greška, način njenog sprečavanja i oblik u kojem rezultat stiže do korisnika.
Prestanak državne podrške pokazao je koliko uspeh velikog tehnološkog poduhvata zavisi od mnogo više činilaca nego što je genijalnost pronalazača. Bili su potrebni stabilna specifikacija, održivo finansiranje, pouzdani proizvođači, upravljanje promenama i poverenje između konstruktora i institucija. Babbageovo vreme nije posedovalo proizvođače računarske opreme, zajednicu programera, standardizovane komponente ni tržište koje bi jasno zahtevalo programabilne uređaje. On je pokušavao da istovremeno stvori arhitekturu, način programiranja, proizvodne metode i jezik kojim bi objasnio svrhu novog sistema.
Zbog toga između Analitičke mašine i savremenih elektronskih računara ne postoji neprekinut proizvodni razvoj. Graditelji prvih računara dvadesetog veka polazili su od novih potreba, matematičke logike, relejne i elektronske tehnologije, ratnih istraživanja i rada mnogih drugih mislilaca. Sličnosti sa Babbageovim nacrtima imaju drugačiju, podjednako značajnu vrednost: pokazuju da je još u mehaničkom dobu prepoznao funkcionalna pitanja sa kojima se susreće svaka programabilna računarska mašina.
Sačuvani crteži omogućili su kasnijim generacijama da provere ostvarivost njegovih konstrukcija. Londonski Science Museum izgradio je Diferencnu mašinu broj 2 prema nacrtima koje je Babbage razvio krajem četrdesetih godina devetnaestog veka. Glavni računarski deo završen je 1991, a pripadajući štampački mehanizam 2002. godine. Mašina je uspešno radila, potvrđujući da je njegova konstrukcija bila inženjerski održiva i da se mogla izraditi stepenom preciznosti dostižnim viktorijanskoj tehnologiji.
To kasno ostvarenje pretvorilo je nacrte u pokretni dokaz. Zupčanici su izvršavali aritmetičke korake, prenosili cifre i stvarali rezultate na način koji je Babbage predvideo više od jednog veka ranije. Potpuna Analitička mašina i dalje nije izgrađena, jer je iza nje ostala ogromna i slojevita dokumentacija sa brojnim razvojnim verzijama, ali njeni planovi nastavljaju da budu predmet istraživanja istoričara računarstva, matematičara i inženjera.
Babbageova priča pokazuje koliko brižljivo sačuvana dokumentacija može produžiti život tehničke ideje. Njegova najveća mašina nije opstala kao dovršen uređaj, ali su njena logika i konstrukcija ostale dostupne u crtežima, opisima, tabelama i mehaničkoj notaciji. Zahvaljujući njima, ljudi gotovo dva veka kasnije mogu da proučavaju, rekonstruišu i proveravaju njegovu zamisao. U digitalnoj civilizaciji, u kojoj znanje o sistemu lako nestane zajedno sa izvornim kodom, dokumentacijom ili ljudima koji su ga gradili, taj primer nosi posebnu težinu.
Njegove mašine promenile su i mesto na kojem tražimo uzrok greške. U ručnom računanju omaška se obično povezivala sa umorom, nepažnjom ili nedovoljnim znanjem pojedinca, dok automatizovani postupak usmerava odgovornost prema algoritmu, ulaznim podacima i kvalitetu konstrukcije. Mehanizam dosledno izvršava zadato pravilo, čak i kada je to pravilo pogrešno. Automatizacija zbog toga može smanjiti broj slučajnih ljudskih omaški, ali istovremeno povećava domet greške ugrađene u sam sistem.
Savremeni digitalni svet obnavlja Babbageovu misao svaki put kada se podaci smeštaju u memoriju, instrukcija upućuje procesoru, petlja ponavlja postupak ili dobijeni rezultat određuje dalji tok izvršavanja. Između njegovih nacrta i današnjih računara nalaze se radovi Georgea Boolea, Alana Turinga, Claudea Shannona, Johna von Neumanna i mnogih drugih, zajedno sa razvojem releja, vakuumskih cevi, tranzistora, integrisanih kola, programskih jezika i mreža. Babbageovo mesto na početku tog dugog puta počiva na njegovom ranom uvidu da se računanje može organizovati kao opšti automatski proces kojim upravljaju formalne instrukcije.
Neuspeh da dovrši svoje najambicioznije mašine produbio je istorijsko značenje njegovog rada, jer razmak između nacrta i mogućnosti epohe pokazuje koliko je daleko njegova misao zakoračila. Video je arhitekturu programabilnog računara pre nastanka komponenti, industrije i društvenih potreba sposobnih da je pretvore u svakodnevni uređaj. U buci zupčanika koje za života nije uspeo da sastavi u celinu, već je čuo ritam programiranja: podatke koji se čuvaju, operacije koje ih preobražavaju i instrukcije koje istoj mašini neprekidno daju nove svrhe.
Najveća Babbageova realizacija zato živi u precizno oblikovanoj zamisli novog odnosa između matematike i mašine. Računanje je počelo da napušta isključivo područje ljudskog zanata i da postaje izvršiv sistem, dok se mašina od namenskog mehanizma preobražavala u otvoren prostor budućih mogućnosti. Charles Babbage ostaje otac mehaničkog računara zato što je među prvima celovito zamislio kako fizički uređaj, podaci i promenljive instrukcije mogu zajedno izgraditi opštu mašinu digitalnog sveta.