C# 3 introducerede som bekendt et væld af nye features og muligheder. Der er allerede skrevet rigtig meget om LINQ, extension methods og så videre, men hvis der er en enkelt feature, der i den grad er blevet overeksponeret, er det nye var-keyword. Med jævne mellemrum synes en eller anden blogger, at det er tid til en opsang omkring brugen af var, og senest har Microsofts danske udviklerevangelist meldt sig i koret af folk, der vil advare mod de grelle konsekvenser ved brugen af dette udskældte keyword.
Jeg ser ikke noget formål i at forsøge at argumentere for, hvorfor jeg ser var som en genial, lille feature. I stedet vil jeg blot slå fast, at jeg bruger var til stort set alle lokale variable, og jeg glæder mig derfor over, at ReSharper understøtter mine præferencer på det punkt.
Den interessante debat er ikke, om var gør koden mere eller mindre læselig. Det interessante er, at brugen af var eller ej ikke har nogen nævneværdig indflydelse på læsbarheden af koden. Bevares, vi kan argumentere for, at der er en forskel, men uanset hvilket synspunkt vi tilslutter os, er der næppe nogen af os, der vil påstå, at brugen af var er den altafgørende forskel mellem læsbar og ulæselig kode.
Tager vi let læselig kode og skifter alle eksplicitte erklæringer ud med var, vil nogen hævde, at koden bliver en smule pænere, mens andre vil argumentere for, at den bliver lidt mindre læselig, men der er næppe nogen, der vil påstå, at den før læsbare kode nu er helt ulæselig. Analogt kan vi tage rodet, ulæselig kode og enten indføre eller eliminere brugen af var, uden at det vil udrette noget væsentlig. Ja, der er en forskel, men nej den er ikke så udslagsgivende, at var fortjener al denne opmærksomhed.
Jeg har allerede skrevet lidt om, hvad jeg betragter som vigtige egenskaber ved læsbar kode, men for blot at repetere et par pointer er sigende navne til variable og metoder samt korte, velafgrænsede typer og metoder langt vigtigere for læsbarheden end brugen af enten implicitte eller eksplicitte typeerklæringer. var er og bliver altså ikke det store problem.
Så til alle jer, der råber vagt i gevær, hvis I skal komme med gode råd til hvordan vi kan skrive bedre kode, er var altså ikke det rette sted at begynde.
I går havde jeg fornøjelsen af at være vært for Jon Skeet, der var kommet forbi en hel dag for at fortælle os om C# 2, 3, 4 og tilmed give et par ideer til hvad, der muligvis kan blive til C# 5, når vi engang, når så langt. Jeg synes, det var en glimrende dag, og jeg håber, at deltagerne gik derfra med en god oplevelse.