utvikling

Java-oppfinneren lærte seg Simula ved å studere koden til kompilatoren

Det norske programmeringsspråket åpnet en ny verden for James Gosling.

James Gosling i forbindelse med feiringen av 50-årsjubileet til Simula ved Institutt for informatikk ved Universitetet i Oslo.
James Gosling i forbindelse med feiringen av 50-årsjubileet til Simula ved Institutt for informatikk ved Universitetet i Oslo.

Java-oppfinner James Gosling var hovedtrekkplasteret under gårsdagens feiring av at Simula 67, som programmeringsspråket opprinnelig het, er 50 år i år.

Han åpnet foredraget med å fortelle at da han mottok invitasjonen, tok det ham bare noen millisekunder å bestemme seg for å takke ja. Årsaken var at Simula har betydd veldig mye for ham.

Leste du denne? Etter 50 år er sporene etter Simula fortsatt svært dype (Digi Ekstra)

Assembler

Gosling begynte å programmere under bachelorstudiene ved University of Calgary på midten av 1970-tallet, og da i første rekke i assemblerkode for PDP-8-maskiner, også ved en satellittbakkestasjon hvor han jobbet i blant for fysikere som studerte atferden i ionosfæren.

– Assembler var det programmering så ut som på den tiden. Man måtte skrive det i assembler for å få det raskt nok. Dette var før det fantes optimaliserende kompilatorer, sa Gosling under gårsdagens foredrag.

James Gosling viste fram et bilde av seg selv som ung student, foran utstyr for innhenting av satellittdata. Bilde: Harald Brombach
James Gosling viste fram et bilde av seg selv som ung student, foran utstyr for innhenting av satellittdata.

– Det var likevel forbløffende hva man kunne ende opp med, fortsatte han.

Les også: Nordmenn koder i 6502-assembler: Nå sendes spill til 80-tallets Commodore 64 ut til hele verden på diskett og kassett (Digi Ekstra)

– Et helt nytt univers

Simula dukket opp på hans radar mens han holdt på med bachelorstudiene, og han lærte seg det på en CDC 6400-maskin ved universitetet. Men måten han gjorde det på, var uvanlig.

– Jeg syntes det var virkelig vanskelig å forstå. Manualene ga ikke så mye mening, men ved å lese assemblerkoden til kompilatoren, lærte jeg meg det, sa Gosling.

Han hadde en utskrift av hele assemblerkoden til kompilatoren, noe han beskrev som en diger bunke med ark. Dette brukte han også til å rette småfeil i kompilatoren, ved å patche binærkoden.

James Gosling under foredraget om hans personlige opplevelser med Simula. Bilde: Harald Brombach
James Gosling under foredraget om hans personlige opplevelser med Simula.

På denne tiden jobbet Gosling med simuleringer og opplevde det som et gigantisk sprang å kunne gå fra kodepekere til objektene i Simula.

– Det var som et helt nytt univers, som å falle ned i kaninhullet og å oppdage at sjakkbrikkene var levende, med semantikk knyttet til objektene i stedet for til tankene til Gud, sa Gosling.

Men han var begeistret ikke bare over objektorienteringen. Simula hadde også støtte for co-rutiner.

– Det føltes som «threading», selv om jeg ikke kjente til det på den tiden. Dette var mange år før jeg virkelig kunne bruke tråder, sa Gosling.

Første i Norge? Norsk IT-oppfinnelse hedret med høythengende IEEE-plakett

Mørketid og Java

Gosling begynte å jobbe med utviklingen av Java hos Sun Microsystems fra 1991. Dette var etter det han kaller for en lingvistisk mørketid på 1980-tallet, fordi alt var dominert av C.

– Jeg likte C godt, et fantastisk språk. Men det fortrengte alt annet i universet. Mest av alt savnet jeg Simula, sa Gosling.

Mest av alt savnet jeg Simula.

James Gosling om 1980-tallet

Ikke overraskende så har Goslings gode opplevelser med Simula satt sitt preg på Java. Ifølge Gosling stammer store deler av Java Object Model direkte fra Simula, og han valgte å følge den enklere og eldre Simula-modellen framfor å støtte «multiple inheritance», altså arv fra mer enn bare ett eksisterende objekt eller klasse.

– «Multiple inheritance» er ikke verdt kostnaden, hvor man må velge mellom semantisk forvirring eller ytelse, sa Gosling.

Også trådmodellen i Java skal være inspirert av Simula, selv om det meste stammer fra Xerox PARC-språket Mesa. Også punktumnotasjonen mellom objektnavn og feltnavn eller metodenavn, skal være hentet fra Simula. Eksempel: objektnavn.metodenavn()

James Gosling og hans hilsen til alle som bidro til Simula. Bilde: Harald Brombach
James Gosling og hans hilsen til alle som bidro til Simula.

Gosling avsluttet selve foredrag med å takke Ole-Johan Dahl, Kristen Nygaard og alle andre som har bidratt til Simula.

– Simula gjorde en stor forskjell i manges liv, sa Gosling.

Var med på spøken: Nygaard fikk patent på objektorientering

Powered by Labrador CMS