Freitag, 16. April 2010

VB – Quo Vadis?

Ja ich gebe zu, ich mag VB.

Ich finde VB10 hat ein paar sehr nützliche Features. So sind z.B. in den meisten Fällen keine underscores (_) als sog. Line continuations mehr nötig.

Auch nett sind die collection initializer, die es momentan in C# in der Form nicht gibt.

Bisher mochte ich VB immer verteidigen, wenn es darum ging, ob VB schlechter ist als C#.

Doch mittlerweile kommen mir Zweifel. Das mag daran liegen, dass ich C# doch recht lieb gewonnen habe. Vielleicht aber auch daran, dass ich immer mehr F# Code schreibe und dessen Eleganz einfach umwerfend finde.

Der Grund warum mir Zweifel an VB kommen, folgender VB10 Code, den ich in einem Blog entdeckt habe.

Public Sub LoadPolicyDetail()

Dim client As New Services.Service1Client()


 

AddHandler client.GetPolicyDetailCompleted,

Sub(s As Object, e As GetPolicyDetailCompletedEventArgs)

If e.Result <> Nothing Then

MessageBox.Show("Awesome!")

End If

End Sub


 

client.GetPolicyDetailAsync()

End Sub


 

Dieser Code zeigt, wie man eine anonyme Methode an einen Event bindet. Hier der gleiche Code in C#


void LoadPolicyDetail()

{


var client = new
Service1Client();

client.GetPolicyDetailCompleted += (s,e) => if (e.Result != null) MessageBox.Show("Awesome!");


client.GetPolicyDetailAsync()

}


 

Dieser Code ist doch deutlich lesbarer. Statt 8 Zeilen Code und einer Menge "Rauschen" brauche ich mit C# nur 3 Zeilen. Gut man könnte den Code noch etwas formatieren, dann kommt man auf 5.

Ich verstehe nicht, welche Vorteile eine Programmiersprache bringen soll, für die man bei gleichem Ergebnis 3x so viel Code schreiben muss.