Ett språk for program og databaser

Anders Hejlsberg er Microsofts fremste verktøyekspert. Han vil slå sammen C# og SQL.

Hos gammelnerder vekker navnet Anders Hejlsberg varme minner. I dag er han middelaldrende familiefar med gråsprengt hår, og har avansert til en ledende stilling som «Distinguished Engineer» innen verktøyutviklingen hos Microsoft. Men vi vil for alltid huske ham som den danske unggutten bak verdens første integrerte utviklingsmiljø, Turbo Pascal, tidlig på 1980-tallet. Endelig kunne vi holde oss i ett og samme verktøy for å programmere, avluse og prøvekjøre våre kreasjoner. Vi treffer ham hos Microsoft Norge, før han skal i ilden overfor profesjonelle norske utviklere.

– Det som preget utviklingsarbeidet ved utgangen av 1970-tallet var manglende integrasjon mellom verktøy, sier Hejlsberg som gjerne er med på litt mimring. – Mikromaskiner ble betraktet som små minimaskiner. Du måtte forholde deg til editor, kompilator og lenker, og hvis du var heldig hadde du også en avluser. Det var forferdelig å sitte slik og swappe disketter.

Det integrerte utviklermiljøet var et Columbi egg. Men denne gangen gjorde «Columbus» det bra, om enn ikke utelukkende av egen fortjeneste.

– Jeg drev et selskap kalt Polydata. Så tok Borland kontakt for å ta over. De insisterte på å selge produktet til en tidel av prisen. Jeg trodde de var gale. Men de hadde rett, fordi vi solgte ti tusen ganger så mange eksemplarer.

Etter denne viktige milepælen mener Hejlsberg det ble gjort mange framskritt innen verktøyutviklingen. Samtidig har man forsøkt mange blindveier.

– Det viktigste har vært hjelpemidlene for å takle det grafiske brukergrensesnittet. Det var en stund mye støy rundt konseptet «fjerdegenerasjons verktøy», men i all hovedsak var det nisjevirksomhet som ikke førte noen sted.

Hejlsberg er også tilbakeholdende i forhold til det nye konseptet som MDA eller «model driven architecture», også kjent som ARAD eller «architected rapid application development».

Ifølge Gartner er MDA en svært lovende tilnærming med dokumentert inntjeningsevne og produktivitetsheving. På JavaZone-arrangementet i Oslo i fjor høst trollbandt nederlenderen Wim Blast fra Compuware flere hundre norske Java-utviklere med sitt foredrag om MDA. En grunnidé ved MDA er at applikasjonen ikke lenger uttrykkes i selve koden, men i modellen. Ved endringer skal man ikke forandre koden, men gå inn i modellen og generere all applikasjonskode på nytt. En hake ved dette, er MDA-tilhengernes egen innrømmelse av at femten til førti prosent av en applikasjon fortsatt må kodes direkte.

    Les også:

– Det modelldrevne er interessant dersom det gjøres riktig, mener Hejlsberg. – Men jeg tror ikke på forestillingen om at man vil bare tegne modeller og aldri skrive kode. Modellen er bare en alternativ måte å betrakte koden. Modellverktøyene er ikke toveis. De går bare den ene veien, fra modell til kode. Det innebærer at det er problematisk å endre koden.

Hejlsberg legger til at også automatisk dokumentasjon må betraktes som et hjelpemiddel.

– God dokumentasjon må skrives av mennesker. Datamaskiner kan gjøre husarbeidet, men du må ikke vente at de skal være kreative. Poenget med verktøy er at du skal være den kreative.

Grunnen til at moderne programmeringsspråk stadig er effektive i bruk, er at de ligger tett opp til vanlig tekst, og at man er både vant til og flink til å resonnere rundt tekst, ifølge Hejlsberg.

– Når du går over til modelldrevet arkitektur taper du uttrykksmuligheter. Du opplever tilbakemeldinger av typen «det er ikke noe slikt begrep i dette programmeringsverktøyet», fordi MDA er for innskrenket til spesielle domener.

Med «domene» mener Hejlsberg en applikasjons funksjonsmåte. MDA-tilhengeren Wim Blast sa til digi.no i fjor at innretningen på domene er nettopp en av styrkene til MDA, fordi «det kreative bak en applikasjon ideelt sett er ferdig i det domeneekspertene har gjort sitt, resten er rutine som skal ta kortest mulig tid». Her er det med andre ord snakk om en grunnleggende uenighet i programmeringsmetodikk.

I stedet for å satse ensidig på modeller, mener Hejlsberg det er langt mer perspektivrikt å se på en dypere integrasjon av programmererens to verdener, det vil si selve programmeringsspråket på den ene siden, og databaseverden med SQL på den andre.

– Det er store forskjeller mellom disse to verdenene, selv om de preger nær sagt alle applikasjoner i kommersiell bruk. Vi ser for oss store effektivitetsgevinster ved å slå disse verdenene sammen, for eksempel ved å utvide C# med alle mulighetene i SQL.

Hejlsberg viser til at mange nye programmeringsspråk i den akademiske verden tar over mange oppgaver som programmerere sliter med i de kommersielle språkene, blant annet automatisk typing.

– Språk som ML og Haskell viser at kompilatorer kan ta på seg langt flere oppgaver enn i dag. Allerede LISP kan betrakte kode som en parameter. Rik typing åpner for at domenespesifikke språk som SQL kan konstrueres som programmeringsgrensesnitt (API-er).

Da vil man slippe C#-setninger med SQL-erklæringer i parenteser og hermetegn.

– Hvorfor skulle ikke min databasespørring helt enkelt opptre som en API? Det er et område som vi arbeider med i Microsoft, og som vi tror vil vise seg svært fruktbart. Vi ser på C# i forhold til domenespesifikke språk som SQL, Xquery og Xpath. Vi utforsker dette på pragmatisk vis. Resultatene er foreløpig svært lovende. Målet er å gjøre C# rikt nok til å kunne bygge et domenespesifikk språk som SQL inne i seg selv. Dette vil gjøre programmerere langt mer produktive enn i dag. Relasjonsdata skal bli like enkle å manipulere som objekter, og spørringer like enkle å skrive som erklæringer.

Til toppen