Han stod på til dagen han døydde

På ein kafé ved Skillebekk i Oslo sit det ein gamal mann og ventar på meg. 75 år hev han livt, og i det lange livet hev han rokke å skapa den mest dramatiske umveltingi innanfor dataprogrammering nokosinne. Det er tysdag 6. august. Mannen er Kristen Nygaard, og um tri dagar er han daud.

– Me hev eit problem. Det problemet er at du ikkje kann objektorientert programmering.
Kristen Nygaard er ærug, men tydeleg rådvill etter at eg legg fram tilstandet mitt og det eg ynskjer å vita av honom.

Kristen Nygård (1926-2002)

Kristen Nygård (1926-2002)

Det demrar for meg at eg ikkje hev fyrebutt meg godt nog. Eg sit her attmed ein av mennene som fann upp objektorientert programmering, ein av dei viktugaste figurane i datasoga, og kjenner meg liten.

Rett nog hev eg lang røynsla med data, og eg hev programmert i nokre år. Eg totte at eg var røynd nog til å velja noko slikt til seremne, og læra undervegs. No sit Kristen på benken han fann seg attarst i kafeen og tenkjer hardt på kva han skal fortelja meg. Eg skynar at han legg upp fyrelesingi si.

Programmering, kunsti å laga system til styring av datamaskinor, var ikkje komi langt då Kristen kom inn i spelet. I byrjingi gjekk det ut på å setja um matematiske formlar til ei form som datamaskinone kunde skyna. Dette gjorde at programmi vart lange listor av bod som maskinone skulde fylgja. Maskina byrja øvst og arbeidde seg nedetter til ho kom til enden, då ho kunde sputta ut eit resultat elder taka alt på nytt, dersom programmet kravde det. Men dette førde til «stive» program som var tungvinte å byggja og, når det kom til stykkjet, var stort sét brukande til éin ting: matematiske utrekningar.

Dette var òg dét dei gamle programmeringsmåli gjekk ut på. Stutt sagt er desse programmeringsmåli språk som me menneske nyttar når me skal gjeva bod til ei datamaskin. Me skriv kodar i vanleg tekst, som me matar inn i eit program, kompilatoren. Han gjer tekstkodane um til maskinkodar, som er heilt uleselege for menneske, men som maskina skynar godt. Når kodane er ferdugt umsette, kann programmet køyrast av brukaren. Slike program er til dømes Microsoft Word og Excel.

Kristen Nygaard og Ole-Johan Dahl, som på den tidi var tilknytte Norsk reknesentral, såg at programmering kunde vera so mykje meir enn lange remsor med algoritmar. Dei laga eit nytt programmeringsmål, Simula, som var tufta på sokalla «objekt», sjølvstendige einingar innanfor eit program, som kvar hev sine eigenskapar og moglege gjerningar. Dette gjorde at programmi vart langt meir tøygjelege enn fyrr: dei kunde byggjast ut nær sagt i det uendelege, og med dette kunde ein tenkja seg langt meir innfløkte program enn det som var praktiskt mogleg fyreåt. Objekti gjorde at fråstandet millom røyndomen og reknemaskinone minka. Programmi vart «livande». Det nye målet var i fyrste rekkja tenkt nytta til simulering, difor namnet Simula.

Når ein simulerar, tek ein utgangspunkt i ein modell, ei etterlikning av røyndomen; ein kann til dømes laga ein modell av ein ferjekø. Denne ferjekøen inne i maskina verkar etter same reglar som ein røynleg ein: bilar steller seg sist i køen, og når det er tomt i ferja, kann den fyrste bilen i rekkja køyra inn.

Denne skipnaden kunde simulerast på gamlemåten òg, men det vart snøgt ovleg innfløkt. Kva um det kom ein ambulanse: då laut han få inn fyrst, må vita, og ferja koma av garde snøggast råd. Elder når ein skal samla inn ferjepengane: alle skal svara, men lastebilar meir enn småe folkevogner, og fullasta bussar meir enn sjåføren åleine. Då lyt ein leggja til nye prosedyrar, men òg brigda dei gamle.

Brått hev du eit stort puslespel, ein stor vev der kvar minste endring krev mange brigde andre stader i kodane. Med fleire og fleire nye bitar i puslespelet, vert simuleringsuppgåva etter kvart mesta umogleg. Men med Simula vert det ein leik.

Med objektorientering kann ein definera ein klasse «køyrety» som hev visse eigenskapar: han kann hava passasjerar og last, han hev ei viss vekt. Klassen hev visse gjerningar: han kann stella seg i kø, han kann køyra inn i ferja. Og Simula gjer det lett å laga nye underklassar, som erver eigenskapane og gjerningane til foreldreklassane, men i tillegg fær nye.

Slik slepp ein å finna upp hjulet på nytt for kvar ny funksjon ein legg inn. Og simulering vert med eitt vinnelegt.

Kristen hev tala seg varm, og kassettspelaren tek trottugt upp denne siste utspyrjingi med honom. Han løyser vansken med vankunna mi med å gjeva meg heile soga sedd frå hans synsstad, frå simuleringi av den fyrste norske atomreaktoren i 1948, til dei ferskaste upplæringsprojekti innanfor programmering.

Augo, dei med det uppgjevne uttrykket, ser etter at eg fær med meg det han fortel medan røysti skifter millom dromande utleggjing og uppglødde merknader på soga, lågmælte klagemål og låttmilde åtgåingar. Han segjer inkje um at venen og samarbeidspartneren hans, Ole-Johan Dahl, døydde berre ein månad fyrr.

Han fortel godt og samantrengt, han hev stoffet godt inne etter femti år, og han syner klårsynet som venteleg kom godt med gjenom åri i Nei til EU. Det er truleg frå den samskipnaden folk flest kjenner honom. Skarpsynet hans og planleggjingi han byrja på alt stutt tid etter folkerøystingi i 1972, trygde sigeren for neisida i 1994. Helder ikkje no likar Kristen stormaktene, anten det gjeld dei politiske elder dei økonomiske: Han drikk aldri Coca-Cola, helder vatn, og han klagar yver kva den verksemdi finn på. Han såg EU-striden som ein lekk i ein konflikt millom marknads-Noreg og samhalds-Noreg. Kann henda meiner han at ungdomen i dag er på marknadssida:

– Det som er rart med unge menneske i dag er at det er ofsa mange ting dei ikkje veit. Eg trur eg veit helder mykje um kva dei veit, det er utrulegt. Dei veit jo ingenting um kva ein gard er, dersom dei ikkje hev arbeidt der sjølve. Nåvel. I dag er han truleg meir aktiv på det faglege umrådet enn på det politiske: det er enno mange projekt han arbeider med.
Millom andre eit som skal betra programmeringsupplæringi, for jamvel no i dagvert unge datafolk upplærde i gamlemåten fyrst fyre dei fær prøva seg på objektorientering. Den nye teknikken vert dimed berre klaska uppå den gamle, og vert ikkje nytta fullt ut. Med COOLprojektet vil han syta for at unge programmerarar lærer objektorientering heilt frå starten.

I november skal han til Seattle og tala på ein konferanse, OOPSLA, som handlar um den typen programmering han og Ole-Johan Dahl fann upp. Kristen pendlar millom tri jobbar: professor emeritus på Universitetet i Oslo, konsulent på Norsk reknesentral og forskar ved Simula Research Laboratory. Eg skynar at pensjonstidi er langt undan for honom.
– Det er so mykje eg skal vera med på. Eg veit ikkje um eg rekk det fyre eg daudar, segjer han, medan me rundar av samtala. Eg gjev honom ordet mitt på at eg kjem til å halda kontakten og senda honom uppgåva når ho vert ferdug. Han luntar ut dyrri medan eg pakkar saman kassettspelaren. Både er me uvitande um at uppgåva mi kjem til å innehalda dei siste prenta ordi hans.

Merknader:
COOL: Comprehensive Object-Oriented Learning, elder Heilskapleg upplæring i objektorientering, sjå:
www.ccs.neu.edu/home/lorenz/COOL/
OOPSLA: Conference on Object-Oriented Programming, Systems, Languages, and Applications, elder Konferanse um objektorientert programmering, system, mål og bruksumkverve, sjå:
www.oopsla.org

Nokre linor på Simula:
set array que, avail [1:nmg]; integer U;
integer procedure nextm (type, step); integer type, step;….;
real procedure ptime (typ, step); integer type, step;….;
integer procedure bsize (type, mg); integer type, mg;….;
activity opart (ono, type, step, nw, np, last, successor);
integer ono, type, step, nw, np;
Boolean last; element successor;;

Og slik kann maskinkoden verta sjåande ut:
4D 5A 90 00 03 00 00 00 04 00 00 FF FF 00 B8 0E 1F BA 0E 00 B4 09 CD 21

L. A. Storseth

Artikkelen stod på prent i Målmannen nr 2 2002. Klikk her for å få tilsendt eit gratis prøveeksemplar av bladet!