OSLO SPEKTRUM (digi.no): Lars Bak, som leder Googles utviklingsavdeling i Aarhus, Danmark, besøkte torsdag denne uken konferansen JavaZone for å fortelle om programmeringsspråket Dart. I likhet med JavaScript er Dart et språk først og fremst beregnet for bruk på klientsiden av webapplikasjoner. Digi.no møtte Lars Bak etter foredraget i går. Foredraget kan forøvrig sees i videoen lenger ned i saken.
– Er det ikke en voldsom oppgave å lage et helt nytt programmeringsspråk?
– Selvfølgelig er det det. Men man kan ikke la være, så lenge det som driver en er viktig. Det største problemet med programmering er fortsatt produktiviteten. Det tar for lang tid fra man starter med en oppgave til man er ferdig. Det er viktig, spesielt for webplattformen, at man har gode biblioteker man kan regne med, og at man har et programmeringsspråk som skalerer opp til store prosjekter.
– Tilbake i tiden har jeg har selv programmert i Smalltalk og LISP. Den umiddelbarheten når man programmerer er så viktig. Den gjør at du har lyst til å eksperimentere, du har lyst til å gjøre koden bedre og å prøve nye ting. Det tar bare et sekund eller to å prøve det, så det er ikke noe problem. Man blir mye mer konservativ i måten man lager ting på, dersom det tar fem minutter ved at kompilator og masse verktøy skal kjøres. Dessuten går hastigheten på prosjektet ned.
Dart: A programming language designed for speed and the web – Lars Bak from JavaZone on Vimeo.
Tilbake til det å lage et programmeringsspråk.
– Det er en stor munnfull. Man skal ikke bare lage et språk, det skal være en implementasjon, verktøyer rundt og store biblioteker. Vi har jobbet i fire år nå, men det har vært helt fantastisk. Riktignok er det Google, men det er også open source. Mitt charter er bare å forbedre produktiviteten til programmeringen.
Bestemmer selv
Bak forteller at Google ikke har kommet med noen direkte krav til språket. Han har til en stor grad fått lov til å definere språket selv, men det skal løse problemer.
– Men så lenge det er hurtig, er det fint. Man gjør ikke dette kun ut fra veldedighet, men det hjelper hele industrien at man kan programmere bedre. Vi fokuserer på både effektiviteten under utvikling og hurtig kjøring. De fleste andre programmeringsspråk er laget slik at man først designer språket og deretter implementerer det. Vi har valgt å gjøre begge deler samtidig.
– Vi prøver ikke å lage verdens mest moderne programmeringsspråk. For oss er det viktig å lage noe som er enkelt å få til, som er enkelt å forstå. Med noen programmeringsspråk er det en mindre skare programmerere man går etter. Vi vil gjerne at alminnelige programmerere også kan bruke systemet.
Bak mener at for utviklere med bakgrunn i for eksempel Java, som skal lage et frontend-prosjekt, så vil det være et mye enklere skritt å gå til Dart enn til JavaScript.
– Det har noen av de samme kvaliteter som Java når det gjelder typer, og vi får høre at det er mer kompakt. Store prosjekter oppgir en reduksjon av antall kodelinjer med 50 prosent, forteller Bak. Dart brukes blant annet SAP i forbindelse med noen databasesystemer. Selskapet har ifølge Bak har kommet med gode tilbakemeldinger.
Men kompakthet betyr ikke nødvendigvis god lesbarhet. Språk som APL og Perl er eksempler på dette.
– Vi har forsøkt å være veldig forsiktige i vår design av Dart. Vi har forsøkt å gå etter programmerere av Java, JavaScript og C#, som kan starte med Dart på mindre enn en time, hevder Bak.
– Vi har selvfølgelig noen «shorthands» her og der, men de behøver du ikke bruke. Jeg synes vi har kommet til et godt kompromiss. Det er ikke slik med programmeringsspråk at man kan skrote alt det man har hatt og gjøre alt helt på nytt.
– Men vi har forsøkt å framheve noen få ting, slik som valgfri typing, som vi mener er superviktig. Det er ikke typesikkert, men det er det heller ikke i mange andre systemer, for eksempel i Java med cast. Men det er likevel sikkert på den måten at dersom det skjer en feil, så får man en «exception». Det ender ikke med at det krasjer.
Bak oppfordrer folk til å prøve Dart. Han forteller at det også er enkelt å prøve det, siden man stort sett får alt man trenger når man laster det ned. Foreløpig er ikke Dart VM-en på plass i den vanlige utgaven av Chrome. I stedet må man bruke en spesiell utgave av Chromium som kalles for Dartium. Men Bak sier at målet er å få Dart-støtte i Chrome så snart som mulig.
Google jobber også muligheten for å bruke Dart på serversiden.
– Den hellige gral når det gjelder programmering er å kunne bruke samme programmeringsspråk på både klienten og serveren. Det betyr at du kan skrive ett bibliotek, og det virker begge steder, i stedet for å lage forskjellige implementasjoner av den samme logikken. Det blir som Node.js. Så det er veldig viktig. Vi har kjørt mange interne verktøy på Dart serverside, og språket virker fint til serversiden. Det blir interessant når det kommer ut på App Engine.
– Men jeg er helt ærlig når jeg sier at konkurranse er viktig. Vi går ikke ut og sier at vi vil være det eneste programmeringsspråket på weben. Det fleste programmerere bruker flere programmeringsspråk, og dersom man skal bygge seg noe stort og bruke flere timers arbeid på det, vil jeg anbefale et system som Dart. Både internt og eksternt forteller folk som bruker Dart i prosjekter at det er enkelt å komme i gang med, og at man ikke engang behøver å sende folk på kurs for å bruke det.
Samtidig innrømmer han at det kan ta lang tid før programmeringsspråk blir akseptert og populære.
– Men det ser fint ut så langt. Jeg vil si at adopsjonen av Dart er der den skal være. Folk må også like det. Det skal være deilig å programmere i, og det er ikke noe man kan måle. Folk de har forskjellig smak. JavaScript er meget ustrukturert. Men noen liker det slik.
Google har derfor på ingen måte sluttet å videreutvikle V8, og Bak mener det er en sunn konkurranse mellom de ulike nettleserleverandørene når det gjelder JavaScript-ytelse.
– Det er fantastisk når man ser tilbake til den første betaversjonen av Chrome i september 2008, da V8 ble vist fram for første gang. Da kjørte vi jo ti ganger enn de andre nettleserne. Jeg tror at V8 nå kjører 50 eller 100 ganger raskere enn før lanseringen i 2008. Men alle de andre har også kommet med. Webutviklere går alltid etter laveste fellesnevner, så det er fint at alle i dag har kommet opp på et visst nivå, sier Bak.
Dart ble i sommer standardisert av ECMA, noe som blant annet innebærer at det ikke lenger vil skje store og hyppige endringer.
– Det er et krav, dersom det skal være en del av den åpne weben, så skal det være en standard. Men ikke bare det. Det er viktig for oss å vise at vi er seriøse omkring det, og at firmaer utenfor huset, som vil bruke det, kan tro på at de kan delta i utviklingen av språket dersom de vil, på lik linje med alle andre. Dersom du har et lukket språk, så blir det nok vanskelig å få folk til å bruke det.
Foreløpig har ikke de andre nettleserleverandørene vist noen interesse for Dart. Men Bak tror at de vil komme på gli.
– Fart, det er vanskelig å si at det vil man ikke ha. Trenden med at webapplikasjoner vokser kraftig, fortsetter. Jeg mener at Dart fyller et hull der og tar webapplikasjoner til det neste nivået.
– Helt fra starten av har vi valgt å få folk inn til oss for å lage spesifikasjonen, så den er god. Gilad Bracha, som skrev Java Language Specification og som jeg jobbet sammen med på begynnelsen av 1990-tallet, leide vi inn for å lage spesifikasjonen, som ble sendt til ECMA. Jeg synes det er svært viktig at programmeringsspråk er presise, slik at man vet hva som skjer når man kjører programmet.
På spørsmål om hvor mange som er involvert i utviklingen av Dart, svarer Bak at det er et open source-prosjekt, så alle kan involvere seg. Men hele Googles avdeling i Aarhus med 25 ingeniører, er involvert. Dart er det eneste prosjektet til denne avdelingen etter at videreutviklingen av JavaScript-motoren ble overtatt av en avdeling i München etter drøyt tre år i Aarhus.
– Vi har jo et lite kontor og jeg driver det i stor grad med en startup-ånd. Vi er best dersom vi bare lager én ting, sier Bak.
Men det er også utviklere i Google i andre land som bidrar. Det er også store prosjekter innad i Google som bruker Dart.
Norsk påvirkning
Bak er ikke den eneste dansken som står bak et programmeringsspråk. Også Bjarne Stroustrup, skaperen av C++, er dansk. Ikke nok med det. I likhet med Bak er også han fra Aarhus. På spørsmål om dette er en tilfeldighet, antyder Bak at det kanskje ikke er det.
– Kristen Nygaard, som lagde Simula (sammen med Ole-Johan Dahl, journ. anm.), var gjesteprofessor her ved Universitetet i Aarhus. Han jobbet sammen med den professoren som var min lærer om å designe Beta-programmeringsspråket. Det har vært en hel kultur i Aarhus omkring programmeringsspråk, og mange kurs dreier seg om kompilering, parsing og lignende. Så det henger litt sammen, sier Bak.
Bak har i sin karriere for det meste jobbet med virtuelle maskiner og å implemetere objektorienterte programmeringsspråk. I ti år bodde han i Palo Alto og var ansatt hos blant annet Sun Microsystems. Men så trakk hans kone i «nødbremsen» og familien flyttet tilbake til Danmark, hvor Bak sammen med to studenter etablerte et selskap, OOVM, som lagde et Beta-Smalltalk-system.
– Jeg var litt lei av å jobbe i et stort firma, så vi lagde firmaet bare for moro, uten lønn. Dette solgte vi så til et sveitsisk firma i 2004, forteller Bak.
Hans avtale med firmaet løp ut i 2006 og da banket Google på døren. De spurte om han ville flytte til utlandet igjen, men det ønsket ikke Bak.
– Så da startet vi bare opp i Aarhus, hvor vi bygget alt opp fra bunnen av. Alle ingeniørene har kompilatorbakgrunn. 60 prosent er PhD-er. 40-45 prosent er utlendinger, forteller Bak.
– Vi vokser langsomt. Vi er ikke interesserte i å bli så store, for vi jobber sammen som et team. Det hjelper å lage med åpen kildekode. Folk finner ut hva du driver med, og så er de interesserte i å komme, sier Bak, men forteller at mange også kommer fra det lokale universitetet, hvor Bak og andre også i blant underviser.
– Det er ikke for å rekruttere, men en god måte å gi tilbake på, avslutter Bak.