Systemudvikling og systemer

Anders og evolutionen

Hvad skal vi bruge computernes power til?

Går Microsoft ind for åbne standarder?

Er vore dages programmører for kedelige?

Og hvad har Darwin til fælles med programmeringssprog?

De spørgsmål og mange flere kan du få svar på i Karsten Bengtssons interview med Microsofts Anders Hejlsberg.

 

Når Microsoft har brug for at svare igen på konkurrenters lancering af nye programmeringssprog, henvender man sig til den danske softwarearkitekt, designer og programmør Anders Hejlsberg.

Han har senest ledet det hold, der har udviklet Microsofts nyeste programmeringssprog C#, der af mange er blevet opfattet som softwaregigantens svar på Suns populære Java.

Inden Anders Hejlsberg kom til Microsoft, designede han Turbo Pascal-oversætteren og Delphi-udviklingssystemet, som begge blev lanceret af Borland International.

Anders Hejlsberg har boet og arbejdet i USA gennem de sidste 15 år, men som han siger „Man kan fjerne en dansker fra Danmark, men man kan ikke fjerne Danmark fra en dansker".

Anders Hejlsbergs karriere som softwareudvikler og programmør spænder stort set fra udviklingen af de første hobbycomputere til det seneste internetprogrammeringssprog.

I starten af 1980\'erne udviklede han en command-line Pascal-oversætter, som han kaldte „Compass Pascal". Dette projekt leasede han senere til Borland International, der tilføjede en ny brugergrænseflade, herunder den indbyggede tekst editor.

Hejlsberg boede på det tidspunkt stadig i Danmark og arbejdede via et 9600 baud modem sammen med sine nye kolleger i Scotts Valley i Californien, hvor Borland International holdt til.

På grund af tidsforskellen kunne Anders arbejde med projektet i løbet af dagen og ved fyraftenstid sende resultatet til Borland på den anden side af kloden. Når software-udviklerne så mødte på arbejde der, kunne de tage tråden op og forsætte arbejdet med den programkode, der skulle forbedre oversætteren.

Et globalt vagtskifte var således etableret.

Anders blev mere og mere involveret i udviklingen af Turbo Pascal og flyttede derfor snart til USA. Den 10. november 1983 blev Turbo Pascal 1.0 frigivet. Oversætteren bestod af 10 filer, der alle kunne være på én diskette. Turbo Pascal 1.0 var desuden billigt. Borland tog kun 49.95 dollars for det - mens konkurrenternes tilsvarende produkt kostede langt over 500 dollars. Senere kom Anders Hejlsberg - sammen med Chuck Jazdzewski - til at lede den projektgruppe, der udviklede efterfølgeren til Turbo Pascal - nemlig Delphi, som så dagens lys i starten af 1990\'erne.

- I gamle dage kunne en mand alene skrive og udvikle et nyt produkt. Men tiden havde ændret sig, og det var ikke længere muligt. Delphi blev derfor bygget af et team, husker Anders Hejlsberg.

Efter 13 år hos Borland søgte han nye jagtmarker og flyttede i 1996 til Microsoft i Redmond i den nordvestlige stat Washington. Her blev han involveret i udviklingen af Visual J++-oversætteren. I nyere tid har han ledet arbejdet med at specificere og udvikle oversætteren til det nye - og omdiskuterede programmeringssprog C# (udtales: „C sharp"), som indgår i Microsofts såkaldte .Net strategi. Anders har hos Microsoft titel af Distinguished Engineer og modtog i maj 2001 den ansete Dr. Dobbs Excellence in Programming Award, hvilket bringer den danskfødte Holtedreng i selskab med fornemme programmører som Linus Torvalds, James Gosling og Larry Wall.


Hobbycomputere
Anders fik sin interesse for programmering og computere i en tidlig alder. På Holte Gymnasium, som Anders gik på, havde man - som en af de få skoler i Danmark - noget så opsigtsvækkende som en computer.

Den fangede hurtigt den unge elevs interesse.

- De første 14 dage var det læreren, som lærte os noget. Men derefter var det os elever, der satte læreren ind i, hvordan det hele virkede, husker Anders om sin skoletid.

Senere blev Anders Hejlsberg optaget på Ingeniør Akademiet. På en rus-tur spillede han kort med en medstuderende, som tabte betydelige summer og derfor måtte udstede adskillige veksler og gældsbeviser. Dette kortspil blev indgangen til firmaet PolyData, som de to unge studerende drev fra et lille kontor i Københavns Frihavn.

- Ja, hvad lavede vi? Vi importerede nogle såkaldte hobbycomputere fra England. Dengang var der endnu ikke nogle, der talte om „den personlige computer". Men man havde altså disse hobbycomputere, som folk selv skulle sidde og lodde sammen. Det var der naturligvis ingen, der kunne finde ud af, så folk kom gerne tilbage og bad os om at gøre det. På den måde tjente vi penge to gange på den samme vare - og det var jo vældig smart.

Efterhånden kom Anders til at skrive software i Algol for disse tidlige Z80-baserede computere.

Året var 1979.


Ønskes: Kreativ tænkning
- Du har på en måde været med fra den meget tidlige udvikling af computere og fulgt et felt, der har udviklet sig på en hel utrolig måde?

- Ja, de computere vi importerede fra England havde en 8 bit processor på 4 megahertz og 64 KB ram. Det var ganske avanceret - dengang. I dag har jeg en bærbar computer, der har en processor på 1.2 giga hertz. Det er 300-500 gange så hurtigt. Men det interessante ved den udvikling er, at måden vi skriver software på, ikke har forandret sig synderligt. Dét er sgu ikke blevet 300 gange mere effektivt.

Der er et interessant dilemma i arbejdet med software. Ifølge Moores Lov fordobler den tekniske udvikling, som bekendt, computerkraften hvert 18. måned. Men vores hjerner bliver jo ikke fordoblet hver 18. måned. Det betyder, at den kreativitet, som skal udfylde hele det rum, som moderne computerkraft skaber, halter bagud. Det er en af grundene til, at vi ikke er kommet så forfærdelig langt. Det er jo ikke, fordi der ikke er blevet forsøgt med alle mulige forskellige tilgange til problemet. Vi har både første, anden, tredje og fjerde generations programmeringssprog, kunstig intelligens, og hvad ved jeg. Men der findes på en måde en fejlopfattelse af en computers power. Vi er så fikserede på, hvor meget power den og den Pentium ditten datten maskine har, og hvor meget den dermed kan. Men al denne power har jo ikke så forfærdelig meget at gøre med kreativ tænkning. Det er den mur, vi ofte løber ind i. Vi har skabt maskiner, som er bedre til at udføre det, som de allerede kunne i forvejen. Men der er ikke sket nogen radikal fornyelse af hele hightech-industrien i takt med udviklingen af disse moderne og meget kraftfulde computere, som almindelige mennesker har i dag.

Bevares, der er gjort fremskridt med hensyn til talegenkendelsessoftware og den slags. Men igen - det er inden for de samme områder, som vores hjerner er gode til - genkendelse af ord og billeder og så videre. På den måde har tingene udviklet sig på en næsten darwinistisk måde. Det er blevet til en evolution mere end til en revolution. Det ene programmeringssprog har afløst det andet. Men de bygger i de fleste tilfælde på tidligere sprog. Det, der er prøvet før og har vist sig at fungere, bliver taget med i de nye sprog. Og vice versa. Det, der ikke duer, ryger ud.

Det er på den måde tingene udvikler sig. Java bygger på Smalltalk, C++ og andre objekt-orienterede sprog. Og også C# bygger på andre sprog som - naturligvis - C, og vi har da også taget noget fra Java. Sådan er det indenfor programmeringssprog. Man tager noget fra tidligere sprog - og smider andet ud.

Det gælder om at finde den rette kombination af nye og gamle features.


Babelstårn af kildekode
- Hvorfor er der denne næsten religiøse strid i valg af programmeringssprog. Enten er man til C# eller Java. Er det den virtuelle Gud, som er bange for, at der vil blive bygget et Babelstårn af kildekode, som vil vokse ind i himlen, hvis alle anvender samme sprog?

- Det har jo noget at gøre med, at en programmør tilbringer det meste af sin tid med at skrive i et bestemt sprog. Derfor føler han eller hun sig hjemme i det sprog og tænker måske bedst i det sprog. Det er lidt ligesom, at nogen tænker bedst på engelsk og andre på kinesisk. Det er svært at vænne sig til et nyt sprog.

- Er det rigtigt at C# er brygget på de samme bønner som Java. At Microsoft har kopieret et programmeringssprog, som på lang sigt kunne true koncernens eksistens?

- Jeg skal ikke komme ind på hele den diskussion om, hvem der har hugget hvad fra hvem. Som sagt, udvikler programmeringssprog sig ved, at man tager det, man kan bruge fra andre sprog. Man forsøger derved at nå et højere abstraktionsniveau. Sådan er det gået gennem hele historien indenfor programmering, lige siden dengang man anvendte hulkort over udviklingen af C og C++ til C# og Java. Hele tiden er abstraktionsniveauet rykket opad.

Er det også blevet simplere at programmere?

- Jeg ved ikke, om det er blevet simplere. Men de nye programmeringssprog har helt sikkert gjort programmører mere produktive. Jeg vil hævde, at der er sket en fordobling af programmørernes produktivitet i kraft af de nye sprog - selvfølgelig afhængig af, hvilke applikationer man skriver. Noget af den power, vi snakkede om før, bliver jo i dag brugt til at udføre ting, som den enkelte programmør tidligere selv skulle udføre. Ting som garbage collection og memory management har jo eksisteret i lang tid, men der har aldrig været CPU-kraft nok i computeren til at inddrage disse ting. Det har vi dag. Vi tillader applikationer at løbe 20 % langsommere, for vi ved, at om seks måneder, så har vi maskiner, der løber dobbelt så hurtigt, og så bliver hele forsinkelsen indhentet igen.

Det er en genial måde at anvende Moores Lov på. Specielt set i lyset af, at der jo ellers ingenting er at bruge al den computerkraft til, som moderne computere har. Selv 3D-spil har jo svært ved at bruge hele en moderne computers kapacitet.


5000 km i timen
- Der findes både en amerikansk og en europæisk tradition inden for programmering. Har du - med din baggrund - kunnet forene de to uden problemer?

- Groft sagt kan man sige, at C og C++ udgør det amerikanske stamtræ. De stammer jo begge fra Bell Labs. Og dertil er nu kommet Java og C#. Den europæiske tradition udgøres først og fremmest af Pascal og Objekt Pascal. De to traditioner smelter først og fremmest sammen ved, at det objektorienterede element er kommet ind i alle mainframe-sprog som en nødvendighed.

- Al denne snak om det ene programmeringssprog kontra det andet - har det nogen betydning for den enkelte forbrugers valg af software?

- Det har det jo på den måde, at en øget produktivitet for den enkelte programmør medfører billigere programmer for forbrugerne. Tag blot det moderne operativsystem. Hvis man sammenligner det med udviklingen af bilen, så har den teknologiske udvikling inden for software gjort, at alting er blevet meget bedre og samtidig meget billigere. Det Windows operativsystem, som forbrugerne kan købe i dag, har en tophastighed på 5000 kilometer i timen, kører 400 kilometer på literen og koster måske 1000 kroner - hvis vi udtrykker det i bil-analogien. Så det er en ret fantastisk udvikling.


Computere er dumme
- Er der noget ved teknologiens udvikling, der gør dig utryg?

- Tja, man hører jo tit folk snakke om, at alle verdens computere en skønne dag vil rotte sig sammen og overtage hele verden. Men det er naturligvis noget sludder. Computere er i virkeligheden for dumme til at udgøre en reel trussel mod noget som helst. De er jo bare et værktøj. Den eneste fare, som jeg ser det, er, at det moderne samfund stoler for meget på computere. Vi har jo - i den vestlige verden - bygget et samfund, der slet ikke kan fungere uden computere. Men for flertallet af jordens befolkning, betyder computeren ingenting - for de har ikke nogen. På den positive side kan man anføre, at verden virkelig er blevet mindre. Det tidligere Østeuropa med diktatur og jerntæppet og alt det der, jamen, jeg tror i vid udstrækning, at det system bukkede under på grund af moderne informationsteknologi. Den verden var jo baseret på undertrykkelse og hemmeligholdelse af informationer. Men med satellitter, internet og computere, blev hele tæppet revet væk under den.

- Du mener, at det havde mere at gøre med informationsteknologi end med vestens oprustning og udstationering af cruise-missiler i Europa?

- Ja. Det moderne samfund er baseret på et free flow of information (fri udveksling af information, red.). Det er det, som skaber rigdom i et samfund.

- De næste lande, der står for skud, er vel lande som eksempelvis Kina?

- Ja, det tror jeg. For mig er det i virkeligheden en gåde, at den slags lukkede samfund overhovedet stadig eksisterer.


En lille mur
- Mange betragter Microsoft som et slags Kina i hightech-verdenen. Et univers præget af lukkethed og hemmelighedskræmmeri.

- Det er sjovt, at du siger det, for i realiteten har Microsoft arbejdet hårdt på at få standardiseret sine produkter. Igennem fem år har vi eksempelvis arbejdet på at gøre XML til en åben standard. Fra starten har vi arbejdet sammen med World Wide Web konsortiet for at skabe fælles standarder, og det præger også Microsofts øvrige produkter i dag.

Igennem hele udviklingen af .Net frameworket, der er Microsofts udviklingsværktøj for programmører, har vi arbejdet sammen med ECMA - Standardizing Information and Communication Systems (ECMA = European Computer Manufacturers Association er en europæisk standardiseringskomité, som specielt arbejder med computer- og softwarestandarder, red.) for at få det hele anerkendt og standardiseret. Det gælder også for C#. Ser man på Sun Microsystems, så har de ikke gjort et eneste komma til åben standard. De henvendte sig til ISO, men ville ikke forhandle om noget som helst. De ville blot bruge ISO som et gummistempel, der skulle bekræfte, at Java nu var en standard, som industrien kunne anvende. Og da ISO spagfærdigt gav udtryk for, at man gerne ville have indflydelse på processen, trak Sun det hele tilbage. Og de gentog hele dette show overfor ECMA.

Så det med at Microsoft skulle være specielt lukket eller hemmelighedsfuld - det er en myte. Man når man er den største og meste dominerende spiller på et område, jamen, så bliver man også let den, der skal have alle knive stukket i ryggen. Sådan er det. Det er janteloven.

- Men du mener, at åbenhed er en god ting?

Ja. Hos Microsoft har vi spurgt vores kunder, og de har - loud and clear - givet udtryk for, at de vil have nogle produkter, der bygger på åbne standarder. Så det gør vi. Men naturligvis skal der også være konkurrence i selve implementeringen. Det er det, som driver industrien fremad. Og det er en ny måde at tænke på hos Microsoft, ingen tvivl om det. Det er ikke noget, som kommer i morgen. Det tager tid. Men der er ingen tvivl om, at det er vejen frem.

- Så der er også en mindre mur hos Microsoft, som skal væltes?

- Jamen, helt afgjort.


Tænk større tanker
- Er der forskel på de unge og de ældre programmører?

- Nej, det vil jeg ikke sige. De unge programmører, som kommer her, har mulighed for at udtrykke sig mere, end man kunne i gamle dage. Der er et større rum at udfylde med de nye programmeringssprog. Man kan tænke større tanker. Men programmering er programmering. Man kan godt lære at programmere, men det er svært at lære at være en kreativ programmør. Man skal have et vist talent for det, det er ikke noget, man lige lærer.

- Hvordan står danske programmører rent fagligt på den internationale arena?

- Jamen, de befinder sig på et højt niveau. Det har de altid gjort. Der sker i det hele taget meget på programmerings-fronten i Europa - og dermed også i Danmark.