Smrt Dennisa Ritchija, čovjeka na čijim je ramenima stajao Jobs

Nije bio Steve Jobs. Nije imao njegovu karizmu. Nije stvorio njegov kult ličnosti. Nije svijetu dao iPhone. Njegov život nije nimalo zanimljiv, nema spektakularnih padova i ponovnih uspona. Javnost nema pojma tko je on.

Pa ipak, čuli ste za Unix, C, C++? Bez tih stvari programiranje računala bi se vjerojatno i dalje obavljalo u sobama laboratorija u kojima rade čudni stričeki u bijelim kutama koji prespajaju kablove. Ritchie je stvorio tehnološke temelje na kojima su Jobs i Gates izgradli svoja carstva. Dao im je ramena na kojima su stajali.

Smrt Dennis Ritchieja nije potakla bujice suza koje su se prolijevale virtualom poslije smrti Steve Jobsa. Trebale su, no kult ličnosti nikad nema veze sa stvarnim zaslugama. “Kad je tjedan dana ranije umro Steve Jobs, bilo je velikih izljeva žalosti, i to je bilo vrlo dirljivo i opravdano. Ali Dennis je bio mnogo važniji, a javnost nema pojma tko je on bio,” rekao je Rob Pike, programerska legenda i trenutni zaposlenik Googlea koji je proveo 20 godina radeći u uredu preko puta Ritchieja u čuvenim Bell Labs, koji su odgovorni za velik dio naše današnje tehnologije. Objavom na Google+, Pike je objavio svijetu da je Ritchie umro u svom domu u New Jerseyu, siromašnom i hladnom rođaku New Yorka, daleko od glamura i tople kalifornijske klime Silicijske doline u kojoj je malo ranije umro Jobs. Smrt je nastupila nakon duge bolesti, tijekom vikenda, i iako su geekovi i hard core techno freakovi odreagirali, kolektivni odziv s weba je bio vrlo skroman i to je velika nepravda spram Ritchiejevog golemog doprinosa suvremenom svijetu, neusporedivo većem od onog Stevea Jobsa. Dennis Ritchie je otac C programskog jezika, i s kolegom istraživačem iz Bell Labsa Kenom Thompsonom koristio je taj isti C da bi stvorio UNIX, na temelju kojeg je sagrađen velik dio današnjeg svijeta — uključujući carstvo Steve Jobsa, Apple. CNN-ov GeekOut blog kaže: ‘Bez Ritchieja, vi ovo ne biste čitali’. Skoro sve na webu koristi te dvije stvari: C i UNIX, kaže Pike za ‘Wired’.

“Browseri su napisani u C-u. UNIX kernel — na kom radi praktički cijeli interet – je napisan u C-u. Web serveri su napisani u C-u, a ako nisu, napisani su u Javi ili C++, koji su derivati C-a, ili Pythonu ili Rubyju, koji su implementirani u C-u. I sav mrežni hardware koji pokreće te programe, mogu vam praktički jamčiti, je projektiran u C-u. Stvarno je teško prenaglasiti koliko je suvremene internetske i računalne ekonomije sagrađeno na onom što je Dennis stvorio.”  Čak i Windowsi su bili prvotno napisanu u C-u, dodaje on, a UNIX je baza i za Mac OS X, Appleov desktop operativni sustav, i iOS, koji pokreće iPhone i iPad. “Jobs je bio kralj vidljivog, a Ritchie kralj onog što ostaje sakriveno,” kaže Martin Rinard, profesor elektronike i računalnih znanosti na MIT-u. “Jobsova genijalnost je bila u tome da je stvarao proizvode koji se ljudima dopadaju i koje žele imati, jer je imao ukusa i stila i mogao je napraviti privlačne gadgete. Ritchie je stvarao stvari pomoću kojih su znanstvenici i inženjeri mogli stvoriti baznu infrastrukturu koju ljudi ne vide, ali je svaki dan koriste.”

Od B do C

Dennis Ritchie stvorio je C jer su on i  Ken Thompson trebali alat pomoću kojeg će stvoriti UNIX, operativni sustav koji neće biti vezan za jedan tip računala već neovisan o hardwareu, što je bila najveća revolucija od nastanka računala. Izvorni UNIX kernel bio je napisan u assembleru, ali uskoro su dečki uvidjeli da trebaju jezik “višeg nivoa”, nešto što ćem im dati bolju kontrolu nad podacima i ubrzati rad. Svi koji su ikad pokušali isprogramirati nešto i najjednostavnije u assembleru, znaju da je to Sizifov posao, pa i ako hoćete samo zbrojiti dva i dva. Oko 1970., pokušali su napraviti novu verziju Fortrana, ali ispalo je da to nije to, i Ritchie je predložio novi jezik baziran na Thompsonovoj kreaciji poznatoj kao B. Ovisno o tome u koju legendu vjerujete, B je imao ime ili po Thompsonovoj supruzi Bonnie ili BCPL-u, jeziku razvijenom na Cambridgeu sredinom šezdesetih. Što god da je istina, C je zamijenio B. B je bio interpretirani jezik — što znači da ga je izvršavao drugi software koji je bio posrednik između njega i procesora — ali  C je bio kompajlirani jezik. prevodio se izravno u strojni kod, i potom izvršavao izravno na procesoru. Ali u tim danima, C je bio smatran jezikom visoke razine – da razjasnimo, jezici više razine su oni bliži engleskom, a niže bliži strojnom kodu, binarnom slijedu jedinica i nula koje služe kao instrukcije registrima procesora. Dao je Ritchieju i Thompsonu fleksibilnost koja im je trebala, a koja je asembleru nedostajala, ali istovremeno je bio brz, mnogo brži od bilo kojeg interpretiranog jezika. Ta prva verzija jezika nije se mnogo razlikovala od one koju koristimo danas, ali je bila jednsotavnija. Imala je sve strukture podataka i “tipove” za određivanje varijabli, i to je ono što su Ritchie i Thompson upotrijebili da bi napisali UNIX.  Ritchie se znao našaliti da C ima “snagu assemblera ali je zato razumljiv koliko i…, pa asembler.” Drugim riječima, rekao je da je C nešto što nije veličanstvena kreacija, nego je i dalje vrlo blisko hardwareu. Danas, C je smatran jezikom niske razine, ne visoke. Ali Ritchiejeva šala je bila malo nepravedna prema novom jeziku. C je imao strukturirane podatke – a to je bio upravo dovoljno visok nivo. “Kad pišete ogroman program — a UNIX je to bio — morate imati pod kontrolom interakciju svih mogućih različitih dijelova i komponenti: svih korisnika, podatkovnog sistema, diskova, izvršenja programa, i da biste time mogli učinkovito upravljati, morate imati dobru reprezentaciju podataka s kojima radite. To je ono što mi zovemo strukturama podataka,” kaže Pike. “Napisati kernel bez strukturiranih podataka i učiniti ga konzistentnim i elegantnim poput UNIX-a bio bi mnogo, mogo veći izazov. Trebali su način da povežu i grupiraju podatke, a to im Fortran nije omogućavao.” U to vrijeme, to je bio neuobičajen način pisanja operativnog sustava, i to je omogućilo Ritchiejui  Thompsonu da počnu razmišljati o prijenosu OS-a na druge hardverske platforme, što su i uradili u kasnim sedamdesetima. To je pokrenulo proces u kojem je UNIX preplavio sve i postao svjetski standard.

Apple, Microsoft, i ostali

Istovremeno dok je UNIX postao standardni operativni sustav za gotovo sva računala na svijetu, što je dramatično pojeftinilo razvoj i omogućilo naglo širenje računala posvuda jer niste morali ispočetka učiti operativni sustav za svaki novi model računala svakog proizvođača, C je neovisno o UNIX-u krenuo u osvajanje svijeta, seleći iz Bell Labsa na najbolja svjetska sveučišta i u Microsoft, ključnu softversku firmu osamdesetih. “Razvoj C programskog jezika je bio velik korak naprijed … C je pogodio točno pravi balans, omogućio je programerima pisati na višem nivou i budu mnogo produktivniji, ali kad vam je potrebno možete točno kontrolirati baš sve što se događa unutar računala,” kaže Bill Dally, glavni znanstvenik NVIDIA-e i profesor na Stanfordu. “Odredio je smjer kojim će krenuti programiranje za nekoliko desetljeća.” Pike ukazuje na drugu bitnu stvar, strukture podataka koje je Richie ugradio u C dale su zamah objektno orijentiranim modernim jezicima poput C++ i Jave. Revolucija je počela 1973, kad je Ritchie objavio znanstveni rad o jeziku, i pet godina kasnije, on i kolega Brian Kernighan objavljuju knjigu “C Programming Language”. Kernighan je napisao prve tutorijale, i u jednom trenutku “zavrnuo Denisu ruku” da napiše s njim knjigu. Pike je pročitao knjigu dok je još bio student na sveučilištu u Torontu.  “Taj priručnik je uzor jasnoće i čitljivosti u usporedbi s kasnijim manualima. S pravom klasik”. “Pročitao sam knjgu ležeći bolestan u krevetu, i zaboravio sam da sam bolestan.” Poput mnogih drugih studenata, Pike je već prije toga počeo koristiti C. C se brzo širio kampusima u Americi jer je Bell Labs javno objavio UNIX izvorni kod. Time je UNIX, između mnogih drugih stvari koje je pokrenuo, bio i djed ideje open sourcea. Pike ne pretjeruje kad kaže da Ritchiejev rad ne može biti precijenjen, i premda je Ritchie primio Turingovu nagradu 1983. i nacionalnu medalju za tehnologiju 1998., on još uvijek nije dovoljno cijenjen. Najfascinantnije nije to što je on napisao dvije tako važne stvari, već što je, bez postojećeg modela ili uzora, postavio principe programiranja i koncepte operativnih sustava koje su slijedili svi nakon njega. Jednostavno, on je tako genijalno i logično posložio stvari da nitko iza njega nije ni pokušao to bitnije promijeniti na konceptualnoj razini.

Kernighan i Pike opisuju ga kao nevjerojatno povučenu, privatnu osobu. “Radio sam u uredu preko puta njegovog 20 godina, i svejedno mi se čini da ga nikad zapravo nisam upoznao,” kaže Pike. Ali to ne objašnjava baš sve. Steve Jobs je držao svoju privatnost daleko od javnosti, ali njegovo inzistiranje na privatnosti je samo hranilo kult ličnosti koji ga je okruživao. Ritchie je živio i radio u posve drukčijem okruženju i vremenu, i zato nikad neće dobiti svoje mjesto pod reflektorima. Kao i svim pravim genijima, Ritchieju je sudibina ostati razmjerno nepoznat. Svijet radije pamti spektakularne inženjere poput Leonarda ili spretne trgovce poput Jobsa nego ozbiljne znanstvenike koji stvaraju stvari o kojima malo znamo i koje nemaju nikakve komercijalne privlačnosti u mraku i tišini laboratorija.  Ali oni koji su bitni za budućnost svijeta, za razliku od široke javnosti, razumiju njegovu veličinu. “Poznata je Newtonova izreka o tom da je vidio dalje od ostalih jer je stajao na leđima divova,” kaže Kernighan. “Mi svi danas stojimo na Dennisovim ramenima.”

fizzit.net

Odgovori

Skip to content