utvikling
Java-oppfinneren lærte seg Simula ved å studere koden til kompilatoren
Det norske programmeringsspråket åpnet en ny verden for James Gosling.
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.
– 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.
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.
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()
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