Artikel top billede

Han får dine programmer til at køre hurtigere

Mød manden, der trives med udfordringer, ikke laver karriereplanlægning og har en gård, hvor der dyrkes virtuelle maskiner. Smalltalk med hr. Virtuel Maskinmester Lars Bak.

Hurtigere, mindre, smartere.

Det kunne være ledeordene for den 45-årige Lars Bak, der er leder af Googles udviklingsafdeling i Århus.

Lars Bak bruger de tre ord til at måle, hvor god den software, han har udviklet gennem tiden i form af virtuelle maskiner, egentlig er.

Lars Bak elsker nemlig udfordringer, og hvis hans virtuelle maskiner er hurtigere, mindre og smartere end eksisterende virtuelle maskiner, så er han glad.

"Jeg er konkurrencepræget. Udfordringer driver mig, det driver værket. Der er ikke noget ved at lave leverpostej-programmering, man skal lave noget, der gør en forskel, det er spændende," siger Lars Bak.

Lars Bak har allerede flere gange gjort en forskel gennem sin mere end 20-årige it-karriere. Ved at specialisere sig i udvikling af små, hurtige virtuelle maskiner - han har indtil videre skrevet syv forskellige - har han haft afgørende indflydelse på Java-sprogets udbredelse, japanske mobiltelefoner og hans nyeste virtuelle maskine er nu med til at sparke en fornyet konkurrence på browsermarkedet igang.

Kampen mod uret

Da Computerworld møder ham i Århus, har han kort forinden holdt et indlæg på JAOO-konferencen om V8, som er navnet på Google-browseren Chromes hurtige JavaScript-engine.

Som led i præsentationen viste Lars Bak og hans mangeårige kollega indenfor optimering af virtuelle maskiner, Kasper Lund, en lille performance-test mellem Firefox og Chrome.

Benchmark-testen er udviklet af Google, så det var måske ikke overraskende, at Chromes JavaScript-engine V8 præsterede at eksekvere javascript meget hurtigere end Firefox.

Testen var ikke for at nedgøre Firefox, men for at sætte gang i konkurrencen på browsermarkedet. Nu håber Lars Bak, at V8 for alvor fyrer op under kedlerne i browsernes maskinrum, så performance for JavaScript sættes op.

Det er simpelthen en nødvendighed, at JavaScript-kode kan køre hurtigt i browserne, hvis webbaserede applikationer for alvor skal blive en konkurrent til desktop-baseret software.

"JavaScript skriger af at være langsomt. Det er et scriptsprog som er bygget til at være langsomt. Det kræver, at man kommer med nogle nye metoder, så det kan komme til at køre hurtigt," siger Lars Bak om JavaScript-sproget.

Han har været der før. Stået over for et langsomt eksekverende fortolket sprog, som kræver skarpe optimeringer og performancetricks af den virtuelle maskine som skal udføre koden.

Java speedes op

Tilbage i midten af 1990'erne var han med til at gøre Java til et seriøst bud på et programmeringssprog rettet mod udvikling af forretningssystemer.

Javas "write once, run anywhere" havde på det tidspunkt den ulempe, at fortolkningen af javabytekode tog tid. Sproget var ok, men hvis det ikke kunne performe ordentligt, så var det ikke interessant til seriøst forretningsbrug.

På det tidspunkt kom Lars Bak sammen med kolleger fra Sun med HotSpot; en JVM (Java Virtuel Maskine), der gav et kraftigt boost til Java-programmernes performance.

Det satte gang i konkurrencen om, hvor hurtige JVM'erne kunne blive.

"Hvis vi havde lavet et system, der var meget hurtigere, og andre ikke bemærkede det, så ville det have været trist. Da vi lavede HotSpot, fik vi gang i Java-VM konkurrencen," siger Lars Bak.

For Lars Bak er der tre ting, som virtuelle maskiner kan måles på. Størrelse, hurtighed og en effektiv memoryhåndtering

"En VM skal være usynlig. Det giver tre ting at udvikle på: Hurtighed, memory-størrelse og så skal den være interaktiv; garbage collectoren må ikke være for lang tid om at rydde op i memory, da det kan påvirke brugeroplevelsen. Det er sundt at måle på den slags ting, så der kan komme reel konkurrence i udviklingen. Det gør det muligt at måle forskellen til de andre," siger Lars Bak.

Ser frem til konkurrence på JavaScript-VM

Derfor ser Lars Bak frem til konkurrencen indenfor browsere, hvor Mozilla, der står bag FireFox-browseren, allerede har varslet, at organisationens TraceMonkey-teknologi vil gøre Mozillas JavaScript-engine SpiderMonkey hurtigere end V8.

Hvem der er hurtigst, er stadig ikke afgjort, da Google og Firefox anvender forskellige performancetest.

"Det er fint, at FireFox kridter skoene," siger Lars Bak, der ser frem til en standard for benchmark af JavaScript-performance.

"Det er et lidt ungt marked endnu. Vi kommer nok til at gå igennem samme proces som med Java.

Først var der mikro-benchmarks i form af små løkker og beregninger. Udviklerne fandt så ud af, at de virtuelle maskiner kan optimere for den slags benchmarks, da de er nemme at genkende.

Dernæst vil man have benchmarks der reflekterer rigtige programmer, hvorfor man begynder at se nærmere på et industrisamarbejde om fælles benchmark.

Det kommer også for JavaScript, men vi er der ikke endnu. Vi har lanceret V8 benchmark test. Det vi har lavet, er nok heller ikke tilstrækkeligt, men et skridt på vejen," siger Lars Bak.

Hardcore assemblerprogrammør uden karriereplan

Det var lidt af en tilfældighed, at Lars Bak overhovedet kom til at arbejde og forske i it.

Som matematisk student vidste han, at han ikke skulle vælge humaniora-vejen, men han var ikke specielt interesseret i computere.

"Modsat min bror, som har vidst, at han ville være civilingeniør, siden han var fem år, så sad jeg stadig i slutningen af 3.g med den koordinerede tilmelding og overvejede, hvad jeg skulle vælge.

Jeg var klar over, at det ikke skulle være humaniora, og matematik faldt mig let i gymnasiet. Men det var nok et tilfælde, at jeg valgte datalogien.

Jeg brugte ikke rigtig computere på det tidspunkt. Hverken til programmering eller spil," fortæller Lars Bak.

Det var som studenterprogrammør, at hans interesse for datalogi virkelig tog fat.

"Jeg fik smag for datalogi som et håndværk via Mjølner-projektet. Her blev jeg hyret som studenterprogrammør til at lave et runtime-miljø for Beta," forklarer Lars Bak.

Mjølner-projektet var et fællesnordisk forskningsprojekt med deltagelse af Sverige, Norge og Danmark, hvor programmeringssproget Beta skulle videreudvikles.

Hardcore programmør uden karriereplan

Runtimemiljøet skrev Lars Bak i assembler; et sprog han jævnligt har haft brug for siden.

Eksempelvis kompilerer V8 JavaScript direkte til maskinkode til ARM-processorer og x86-arkitekturen.

Studenterprogrammørjobbet førte til, at Lars Bak blev medstifter af sit første firma; Mjølner Informatics, efter han blev færdig med sin kandidatgrad.

Dengang tilbage i 1988 var det for at udbrede Beta-systemet. Det var dog ikke nemt.

"Det er meget svært for et lille firma at komme med et nyt programmeringssprog og så få det solgt. Dem, der ser på udviklingssystemer, kigger selvfølgelig også på, hvem der står bag. Er det et lille firma, og vil det overleve?" siger Lars Bak.

Mjølner Informatics eksisterer stadig, men har nu bevæget sig mere over i konsulentydelser frem for at sælge Beta og tilhørende værktøjer.

Selvom Lars Bak har været involveret i nogle epokegørende it-projekter, er det ikke den store karriereplanlægning, der har været kendetegnende for hans professionelle liv.

"Set i bakspejlet kan det virke som om, det hele var planlagt, men i virkeligheden var der ikke noget, som var planlagt. Man træffer nogle beslutninger i nuet uden reelt at vide, hvad de fører til," siger Lars Bak, da jeg foreslår, at hans ophold hos Sun Microsystems var et led i hans udvikling som mester indenfor virtuelle maskiner.

"Det var min professor, Ole Lehrman Madsen, der foreslog, at jeg skulle prøve at tage til Sun Labs. Dengang var virtuel maskin-verdenen lille. Der var ikke penge i det, det var ren forskning. Vi havde en lille gruppe her i Århus, og så var der en gruppe i USA, der forskede i algoritmer til at få virtuelle maskiner til at køre hurtigere. Så han foreslog, at jeg skulle tage derover," siger Lars Bak.

Lars Bak var 28 år, da han tog til USA og Sun Labs i 1990.

"Forskningsgrupper i USA er svære at komme ind i uden Ph.D-grad. De så nok lidt skævt til mig, da jeg kun havde en kandidatgrad, men det gik," siger Lars Bak med et smil.

I Sun Labs kom han til at sidde i en gruppe, der arbejdede med SELF, en videreudvikling af Smalltalk-sproget.

På mange måder blev SELF en meget vigtig brik i Lars Baks profesionelle liv.

Smalltalk om SELF

"SELF er et klasseløst prototypebaseret sprog, som minder om JavaScript. JavaScript er faktisk inspireret af SELF," siger Lars Bak med et smil, der fortæller, at den sammenhæng er noget, han har udnyttet i sit arbejde med V8.

"Arbejdet med SELF gik ud på to ting. Man havde et synligt ineffektivt sprog, som vi skulle prøve at optimere og få til at køre rigtigt stærkt med forskellige kompilerteknikker.

Det andet var, at vi skulle opfinde teknikker, så man kan debugge systemet - selvom der er en masse optimeringer i den virtuelle maskine - så det ser ud som om, man single-stepper igennem den fortolkede kode.

Det var noget, som vi anvendte i udviklingen af Java-Hotspot.

Hvis man eksempelvis har en fejl i store serversystemer, der kører i produktion, så kan man koble op til det kørende system og singlesteppe sig gennem Java-koden og inspicere systemet," forklarer Lars Bak, som er synligt begejstret for den feature.

Vælg det, der interesserer dig

Begejstringen er sammen med konkurrencementaliteten det, som driver Lars Bak. Hvis han finde, at noget er interessant, så forfølger han det, uanset om det er noget, som er hot.

"Da jeg startede med virtuelle maskiner, var det et meget langhåret felt. Der var ikke mange, der vidste, hvad det egentlig var, jeg arbejdede med. Jeg er aldrig gået efter et projekt, fordi det er hot, men fordi det er interessant. Bliver projektet ikke en succes, så har man prøvet det, " siger Lars Bak.

Lars Bak har selv prøvet at stå med et projekt, der umiddelbart så ud til at fejle stort.

I 1993/1994 var han med til at starte virksomheden Animorphic Systems. Virksomheden gik i gang med at udvikle et højhastigheds Smalltalk-system kaldet Strongtalk.

Produktet var der ikke noget galt med, men timingen var elendig. På det tidspunkt frigav Sun Java-sproget, som fik en begejstret modtagelse af markedet. Pludselig var Java, det eneste programmeringssprog, som var værd at tale om - og investere i.

Det underminerede finansieringen og markedet for Strongtalk.

"Investeringsprofilen ændrede sig totalt. Pludseligt var det Java som var det eneste interessante. Det var et platformsuafhængigt sprog, der løste alle problemer - hvilket det så ikke gjorde alligevel," fortæller Lars Bak.

Der er siden kommet andre programmeringssprog til, men på det tidspunkt i midt-1990'erne var Java udviklingssproget. Strongtalk havde ikke mange chancer for at få succes. I stedet for at dreje nøglen om, valgte Animorphic i stedet at dreje over mod Java.

"Vi konverterede den virtuelle maskine rettet mod Smalltalk til Java. Den havde en aggressiv optimering baseret på programmets opførsel. I Hot spot vil du finde reminiscenser af Smalltalk-elementer," siger Lars Bak.

Den agressive optimering var noget, som Sun Microsystem var interesseret i, da det kunne få det nye udviklingssprog Java til at performe ordentligt. Animorphic blev derfor købt af Sun Microsystems og Lars Bak arbejdede i to år på den virtuelle maskine, der nu havde navnet Hotspot.

En overdosis af Java

Efter 10 år i USA valgte Lars Bak og hans familie at vende tilbage til Danmark i februar 2000. I Danmark fortsatte han med at arbejde for Sun JavaSoft. Dog ikke med Hotspot, men med en ny virtuel maskine rettet mod mobiltelefoner; Monty (PDF).

"Selvom du ikke sidder i Silicon Valley, har du stadig mulighed for at få spændende projekter," siger Lars Bak og fortsætter:

"Hele ideen var at vise, at det var muligt at få en højhastigheds VM til at køre på en mobil."

Lars Bak udviklede Monty sammen med studenterprogrammørerne Kasper Lund og Jakob Roland Andersen.

Trekløveret i Århus arbejdede sammen med et par udviklere i Sun Labs om Monty. De klarede udfordringen på fin vis. I forhold til andre mobile virtuelle maskiner blev hastigheden forøget med en faktor 10.

Efter lanceringen af Monty i 2002, valgte Lars Bak at forlade Sun.

"Jeg forlod Sun, efter Monty blev lanceret på JavaOne i 2002, jeg var ved at være mør; jeg havde lavet for meget Java," siger Lars Bak.

Læs anden del af interviewet med Lars Bak i morgen. Her fortæller Lars Bak om de fremtidige planer for Chrome. Og så hører vi lidt nærmere om en gård udenfor Århus, der har spillet en vigtig rolle i udviklingen af virtuelle maskiner.




Brancheguiden
Brancheguide logo
Opdateres dagligt:
Den største og
mest komplette
oversigt
over danske
it-virksomheder
Hvad kan de? Hvor store er de? Hvor bor de?
Alfapeople Nordic A/S
Rådgivning, implementering, udvikling og support af software og it-løsninger indenfor CRM og ERP.

Nøgletal og mere info om virksomheden
Skal din virksomhed med i Guiden? Klik her

Kommende events
EA Excellence Day

Hvad er det, der gør it-arkitektens rolle så vigtig? Og hvad er det for udfordringer inden for områder som cloud, netværk og datacentre, som fylder hos nogle af landets bedste it-arkitekter lige nu? Det kan du her høre mere om og blive inspireret af på denne konference, hvor du også får lejlighed til at drøfte dette med ligesindede.

23. april 2024 | Læs mere


AI Business Excellence Day – sådan folder du mulighederne ud

Mange danske virksomheder har eksperimenteret med AI-projekter af begrænset omfang, men kun de færreste har for alvor udforsket mulighederne i storskala. Det gør vi her! Du vil blandt andet få mulighed for at se eksempler på, hvordan AI kan anvendes som accelerator i storskala og skubber til grænserne for, hvordan det er muligt at integrere teknologien, så potentialet for alvor foldes ud.

24. april 2024 | Læs mere


Unbreakable - sådan sikrer du dig vedvarende og uafbrudt adgang til dine data

Vi dykker ned i værdien af en stabil og pålidelig storage-platform og hvilke muligheder der findes, for at sikre den højeste grad af redundans og tilgængelighed. Områder som date-beskyttelse og cyber-sikkerhed vil også blive berørt.

25. april 2024 | Læs mere