Internet, Software

Manden bag Googles virtuelle maskine

Lars Bak har i 20 år udviklet virtuelle maskiner til Java og Googles browser Chrome. For ham gælder det om at være inspireret og passioneret om det, han laver.

Da Google gik ind på browsermarkedet, var det med en dansk motor under kølerhjelmen. Google Chrome er optimeret til tunge webapplikationer, og Google udviklede til lejligheden Javascript-motoren V8, som blev skabt i firmaets kontor i Århus under ledelse af Lars Bak.

Han har erfaring med virtuelle maskiner helt tilbage fra 1986, hvor han som studerende på Århus Universitet var med i udviklingen af en virtuel maskine for det objektorienterede sprog Beta. En virtuel maskine (VM) ”lader som om”, at den er CPU, og giver via biblioteker adgang til de tjenester, et styresystem almindeligvis stiller til rådighed, såsom filsystem og netværk. Det afkobler programmer fra styresystem og hardware, og det er det, der begejstrer Lars Bak over teknologien:

– Lidenskaben kommer fra, at jeg tror, det at lave platformsuafhængig eksekvering er en stor fordel, da man kan have en heterogen maskinpark og stadig have den samme applikation kørende, siger han.

Det betyder, at der kan spares tid og penge i udviklingen, da der kun skal udvikles til én platform, nemlig den virtuelle maskine.

Java med hundredvis af processer
Da han afsluttede sin kandidatgrad i datalogi i 1988, blev Lars Bak medstifter af Mjølner Informatik, som skulle skabe et kommercielt miljø omkring Beta-sproget. Det blev ikke til noget, men det gav ham et springbræt til en karriere i USA i Suns software-laboratorier. Den slags kræver ellers sædvanligvis en ph.d.-grad som adgangsbillet, men erfaringerne med Beta gav den dengang 28-årige programmør mulighed for at vise, hvad han kunne. Projektet var det objektorienterede programmeringssprog Self, som ligner Javascript på en række områder.

– Det handlede om at bevise, at  selvom man havde et meget ineffektivt programmeringssprog, kunne man sagtens få det til at køre stærkt ved at bruge de dynamiske egenskaber ved en virtuel maskine. Man kan opsamle typerne ved kørselstid og bruge det til at optimere med.

Karrieren i USA tog et spring over et lille firma, som udviklede et Smalltalk-miljø, men som endte med at blive opkøbt af Sun, der med Lars Bak i spidsen ændrede firmaets VM fra Smalltalk til Java. Den fik navnet Hotspot.

Hotspot blev med Java 1.3 den officielle Java-VM, og det er den samme kodebase, som ligger til grund for dagens virtuelle Java-maskine. Blandt nyskabelserne var evnen til at benytte det underliggende systems tråde, så Java-programmer kunne skalere til hundred vis af processer. En anden ting var bedre mulighed for at debugge, efter at et program har crashet.

– Så det var det. Det var meget simpelt, siger Lars Bak, der ikke synes at lade sig imponere af særlig meget.

I 2000 valgte Lars Bak og hans kone at flytte tilbage til fødelandet, da parrets to børn skulle i skole. Her arbejdede han med Java-VM’er til mobiltelefoner, hvor resultatet blev 10 gange hurtigere Java-programmer. Sammen med to specialestuderende fra Århus Universitet blev det Smalltalk, som trak igen, og endnu en gang var det mobiltelefoner, som var målet. Her gjorde Lars Bak det muligt at ændre i koden på kørende systemer.

Google kalder
I 2006 sagde han op, og planen var egentlig at han ”skulle gå og dandere den”. Men så ringede Google. Det blev til en udviklerfilial i Århus, hvor de to specialestuderende fra Smalltalk-projektet kom med. Målet var at udvikle Javascript-moteren V8 til Googles browser Chrome. Om sproget siger Lars Bak:

– Det er et mystisk sprog. Det er ikke et pænt sprog. Det er et typisk programmeringssprog, som er startet i det små og så vokset, med hvad det indebærer. Hvis man havde vidst, hvad Javascript ville blive brugt til, så havde man nok tænkt sig lidt mere om. Når det gælder skalérbarhed, er det måske ikke det bedste scriptingsprog.

V8 opnår høj effektivitet, blandt andet ved ”i smug” at placere Javascript-objekterne ind i et klassehierarki, som gør det nemmere at optimere, og benytte såkaldt ”generational garbage collection”, hvor nye og gamle objekter skilles i to bunker, da nye objekter har en tendens til at være meget kortlivede.

I december udsendte Google version ét af Chrome. I forhold til den tidligere beta har Lars Bak og hans medprogrammører nu tunet V8, så ydelsen er blevet en halv gang hurtigere. Det er blandt andet kodegeneratoren, der producerer maskininstruktioner, som er forbedret. Garbage collectoren er også blevet tunet, og i den kommende tid er det compileren, som skal have en overhaling. På sigt mener Lars Bak, at V8 kan komme op på halvdelen af Java-VM’ers ydelse, og det er pænt i betragtning af, at Javascript er et meget dynamisk sprog.

I sin arbejds- og ledelsesstil tror han på passion og evner frem for metodikker.

– 70 til 80 procent af min tid går med at programmere. Min lederstil er kun at hyre de bedste og så forvente, at de yder det bedste. Jeg bruger ingen metodikker. Hvis man har gode folk, er god til at artikulere målet og selv deltager i aktiviteten på laveste niveau, så bliver folk meget lidenskabelige. Jeg er meget passioneret om det, jeg laver. Programmører er meget mere aktive og produktive, hvis de er inspirerede. Man skal jo ikke gå og lave micromanagement af rigtigt gode dataloger, siger han.
Lars Baks karriereforløb viser, at han er bedst til at starte nye projekter, hvad han også selv medgiver:

– Jeg er bedst til version ét.

Så der bliver nok ikke noget guldur til Lars Bak fra Google i den sidste ende.

– Man skal finde ud af, hvor ens stærke sider er. Og vedligeholdelse er ikke min stærke side, så det er klart, at min rolle bliver udfaset over tid. Man skal finde ud af, hvad man er god til, og så holde fast i det.