Gå til hovedindhold
Version2 it for professionelle
Forsiden

Hovedmenu

  • It-nyheder
  • Blogs
  • It-job
  • It-firmaer
  • Whitepapers
  • Opret bruger
  • Log ind
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?
Emner C#, Udviklingsværktøjer

Anders Hejlsberg: Sådan styrer jeg C#-udviklingen

INTERVIEW: Det handler mest om at sige nej og undgå alt for specifikke funktioner i et sprog som C#, hvor man aldrig fjerner noget. Sådan forklarer Anders Hejlsberg, danskeren bag blandt andet C# og Delphi, sit arbejde i et interview med Version2.

Af Jesper Kildebogaard Mandag, 22. oktober 2012 - 6:29

Han er normalt kun i Danmark en gang om året, for at besøge familie, og bruger ellers sine kræfter hos Microsoft i USA, hvor han er technical fellow og leder af blandt andet C#-udviklingen.

Anders Hejlsberg er i dag mest kendt for at have ansvaret for sproget C# hos Microsoft, men stod også tidligere bag kendte programmeringssprog. I 1980’erne skrev han Turbo Pascal, og i 1990’erne var han chefarkitekt bag Delphi hos Borland. Siden 2000 har han stået i spidsen for Microsofts C#, og i begyndelsen af oktober kunne han præsentere et helt nyt projekt, han også har været ansvarlig for: Typescript, der er et værktøj til Javascript-udvikling.

Læs også: Nyt sprog: Typescript skal gøre det let at skrive kompliceret Javascript

Version2 fik et interview med en af Danmarks mest kendte udviklere, da han var forbi Aarhus til Goto-konferencen tidligere i oktober.

Da du gik i gang med C#, havde du så forestillet dig, hvor udbredt det ville blive?

»Nej, det havde jeg ikke forestillet mig. Det ville også være alt for meget hybris at gøre det. Egentlig er jeg også selv blevet forbavset over, hvor stort det er blevet. Det kan jeg kun være glad for og stolt af, men det har aldrig været det, der var spørgsmålet. Det handlede om at lave et godt stykke teknisk arbejde. At forstå, hvad programmører har brug for, og lave det så rent som muligt i implementeringen af det. På mange måder er jeg en meget pragmatisk programmør. Og det er måske derfor, vi er kommet så langt, som vi er kommet.«

»Jeg var rimelig ny hos MS, da vi startede – havde været der et par år, da vi gik i gang med C# – og jeg tror ikke rigtig, jeg havde forstået, hvor meget power der er i MS, når de først begynder at fyre med alle cylindre. Det var helt utroligt at se forskellen i forhold til Borland, som jeg kom fra. Jeg var bare heldig på mange måder, at være det rigtige sted på det rigtige tidspunkt, men selvfølgelig også få gjort det rigtige stykke arbejde.«

For hver gang der skal en ny version på gaden, bliver det mere kompliceret, for det er ikke på tale at fjerne funktioner i C#, forklarer han.

»Når først du bliver så etableret, som vi er blevet, er det helt klart en udfordring at få lavet en helt ny compiler, som er 100 procent baglænskompatibel med alt, hvad der er lavet tidligere. Det er selvfølgelig altid meget nemmere at lave version 1, fordi der ikke er noget, den skal være kompatibel med, men når du har en million programmører, som bruger dit sprog hver dag, og som får lavet en farlig masse kode, så skal du være baglænskompatibel. «

»Du kan aldrig fjerne noget. Hvis du fjerner noget, så er der helt klart noget kode derude, der lige brugte den feature, og så falder det på gulvet. Så der er kun én vej frem, nemlig at lægge mere oven på.«

Må som regel sige nej

Det betyder, at Anders Hejlsberg må være ret striks med, hvad der kommer ind af nye funktioner.

»Udfordringen er at være meget sikker på, hvad du lægger ind af nye ting, og jeg bruger mere tid på at sige nej end på at sige ja. Du kan ikke gøre det til en køkkenvask, hvor du skovler alt op, som folk beder om, for så bliver det noget miskmask på ingen tid.«

»Du skal være meget bevidst om, hvad der er hvad. Hver eneste feature du propper ind, skal genvinde i øget produktivitet, den kompleksitet, den tilfører. Der er masser af features, som giver bedre produktivitet, men som ikke genvinder de minuspoint, du får i kompleksitet. Så udfordringen er at finde den rigtige balancegang.«

Hvordan tager I den beslutning?

»Det handler om at have fingeren i jorden nok steder. Og når du selv er programmør, kan du føle, om det er rigtig godt, eller lidt for specifikt til én bestemt problemstilling. Jeg kigger meget ofte efter løsninger, som er en klasse af problemløsning, i stedet for at være en instans af problemløsning. Hvor der er forskellige instanser, som bliver løst i den klasse af problemer.«

»Vi vil helst lave sprogfeatures, som løser mange problemer på én gang i forskellige domæner. Det er en indikator af, at vi er på det rette metaniveau i sproget, hvorimod hvis vi er nede og proppe en masse lad os bare sige SQL-syntaks ind i sproget, fordi der er mange, som skriver databaseprogrammer i C#, så har vi fået skabt et rodet hjørne, som ikke føles rigtigt, når du skriver klient-applikationer. Man skal være forsigtig med at binde sig til ting, der er for domænespecifikke.«

Bruger I også empiriske data fra undersøgelser af, hvordan værktøjerne bliver brugt?

»Det gør vi. Vi har forskellige portals, hvor alle vores brugere kan stemme på, hvilke features der er mest vigtige for dem, og det kigger vi meget på. Og vi kigger på, hvad der sker i andre sprog i industrien, og hvad der sker i forskellige application patterns, som pludselig bliver vigtigere end andre.«

Nye funktioner må ikke bare løse et lille problem

»Noget af det er også ting, som ingen egentlig havde bedt om. For eksempel med asynkron programmering. Vi har faciliteter, som gør det muligt at gøre det, for eksempel lambda-functions. Men vi vidste også godt, at det hurtigt blev for komplekst. Så selvom ingen decideret bad om at få funktionen på denne måde, var der folk, som beklagede sig over, hvor komplekst det var.«

»Det sker også, at folk kommer og siger: ’Kan du ikke lave sådan og sådan?’. Så viser det sig, at de har fundet på en løsning på et problem, og måske kan du ikke lide løsningen, men kan godt se problemet. Så må du starte forfra og lave den rigtige løsning. Nogle gange beder folk om en bestemt ting, men vil egentlig bare have løst det problem, de har.«

Er det så i sidste ende din beslutning, hvad der skal med?

»I det sidste ende er det et team, der tager beslutningerne. Men hvis vi så ikke kan blive enige, er det mig, som skal sige: ’Nu går vi den vej i stedet for den vej’. Men det sker jo stort set aldrig. Når vi så har valgt at gå én vej, bliver det mit job at pløje et spor for den vej. Når folk siger: ’Det har vi ikke tid til, vi skal bruge flere ressourcer’, så er det mit job at være sikker på, at vi kan få dem.«

Send Tweet
Udskriv

Mere om C#

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg dette emne

Sidste chance: Vind 5 billetter til Microsofts nye udviklerkonference

Udgivet 7. dec 2012 8.28Opdateret 10. dec 2012 15.49

Vind 5 billetter til Microsofts nye udviklerkonference

Udgivet 12. nov 2012 12.44Opdateret 4. mar 13.05

Microsofts danske spil-darling: Vi kan ikke få armene ned

Udgivet 7. jun 2012 10.34Opdateret 7. jun 2012 10.44

Windows 8-udvikler? Hit med licenskronerne

Udgivet 29. maj 2012 15.23Opdateret 29. maj 2012 15.23

IT-job & karriere

  • Se alle it-job
  • Importer din kompetenceprofil fra LinkedIn
Softwareudvikler med passion for arkitektur
Udgivet 2. maj 13.41
C#/.Net software udvikler
Udgivet 14. maj 13.13
d60 søger Senior .NET-udvikler Aarhus eller København
Udgivet 12. dec 2012 12.35
Udvikler til platformsudvikling
Udgivet 23. apr 14.34

Tilføj kommentar

Opret en konto eller log ind for at følge indhold på Version2 - og bliv opdateret via e-mail eller rss

Følg kommentarer
Log ind herunder eller opret en bruger for at skrive kommentarer
Du kan logge ind med din e-mail-adresse
Der er forskel på store og små bogstaver i adgangskoden.
Glemt adgangskode?

Seneste nyt

Politiken lancerer online-betalingsmur: Hullet som en si

Udgivet 22. maj 17.28Opdateret 22. maj 17.41

Chefredaktør om hullet betalingsmur: »Vi er fuldstændigt klar over, at det kan omgås«

Udgivet 22. maj 17.26Opdateret 22. maj 17.43

Firefox vil blokere cookies som standard - men teknikken driller

Udgivet 22. maj 15.49Opdateret 22. maj 15.49

40.000 digitale afgangsprøver blev rettet automatisk i år

Udgivet 22. maj 14.50Opdateret 22. maj 14.50

CSC indgår millionforlig i sag om regnskabssvindel

Udgivet 22. maj 13.34Opdateret 22. maj 13.34

Flere it-nyheder »

Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Whitepapers

Version2 Insight: Softwaretest

Mediehuset Ingeniøren

Mobile Test Service - Device & Test Coverage

Testhuset

Succes historier om OPS – Optimized Print Services

Konica Minolta Business Solutions Denmark

OPS - Optimized Print Services

Konica Minolta Business Solutions Denmark

Mobile Test Service - Device Strategy & Planning

Testhuset
  • Flere whitepapers

Branchenyheder

Lyncs stormløb - høje ambitioner og køb af Skype

GlobalConnect

Redpill Linpro hjælper kunderne ud af IBM Notes' databaser

Redpill Linpro

VP SECURITIES skaber overblik over kunderne med ny Microsoft CRM løsning

ProActive

Johan Ekelund som Business Advisor og Project Manager hos Affecto Denmark A/S

Affecto Denmark

Kom ajour med Windows Azure

ProActive

It-virksomheder

Financys
|
Bring IT
|
Eksponent
|
Strongminds At Work
|
Structura - IT
|
Presswire
|
Visma Sirius A/S
|
Rehfeld
|
Kartel
|
radoor & co aps
|
HardwareHippo
|
Zylinc
 

Information

  • Kontakt redaktionen
  • Job- og annoncesalg
  • Teknisk support
  • Om Version2
  • Brugerbetingelser
  • Cookie- & privatlivspolitik

Aktuelle emner

  • Agil udvikling
  • Business Intelligence
  • Cloud computing
  • Intranet
  • It-sikkerhed
  • NemID
  • Open source CMS
  • Projektledelse
  • Scrum
  • Sharepoint intranet
  • Storage
  • Ubuntu
  • Virtualisering
  • Windows 8
  • Windows Server 2012
  • iOS 6
  • iPhone 5

Tjenester

  • iPhone-app
  • RSS-feeds
Følg @version2dk
Tilmeld dig Version2's it-nyhedsbrev og vind den nye iPad.

Version2 udgives af

  • Mediehuset Ingeniøren A/S work Trekronergade 26 2500 Valby
  • Tlf. work 33265300