Ich behaupte, ich programmiere Visual Basic und C# gleichermaßen gut. Naja - vielleicht bin ich ein wenig geübter in Visual Basic als in C#, aber das liegt in erster Linie daran, dass ich einfach mehr in Visual Basic als in C# programmiere. Und das hat Gründe. Klar - ich habe, seit dem ich für Microsoft Press arbeite, in erster Linie mal Visual Basic-Bücher geschrieben, die wiederum wurden von Leuten gelesen, deren Projekte ich teilweise später betreut habe, und so hatte ich immer mehr im Raum Visual Basic als C# zu tun.
Doch das bedeutet nicht, dass ich keine C#-Projekte betreue oder selber in C# entwickle. Manchmal lässt es sich nicht vermeiden. Und immer dann stelle ich fest, dass ich nicht nur mehr in Visual Basic entwickle, sondern auch lieber. Heute ist mir der Unterschied zwischen beiden Programmiersprachen bei einer Umstellung von Beispielen zu VB in die Sprache C# so sauer aufgestoßen, dass ich beschlossen habe, diesem Thema ein paar Blog-Einträge zu widmen. Und los geht es dabei in diesem ersten Teil mit einem nicht ganz erstgemeinten Vorwort zum Buch "Visual Basic 2008 Crashkurs - Neue Technologien", das Sie übrigens komplett an dieser Stelle komplett und kostenlos als PDF herunter laden können.
Ein nicht so ganz ernstgemeintes
Vorwort
Modernste Technik macht frei. Ich gönnte mir vor einiger Zeit einen Windows Vista Tablet PC und eine UMTS-Flatrate. Und das bedeutet: Ich kann arbeiten und damit Vorworte von Büchern schreiben, wo und wann ich will. Wie in diesem Beispiel: Ich schreibe die Zeilen dieses Vorworts tatsächlich in einer Turnhalle irgendwo in Ratingen-Hösel auf drei Turnkästen liegend, während ich immer wieder zweien meiner vier Lieblingskinder beim Badminton zuschaue – in der freien Zeit zwischen zwei Fuhren, in der ich (sehr, sehr gerne, übrigens) als ihr Fahrer fungiere.
Und während ich Sarah und David bewundernd zuschaue, und rätsele, wo sie ihre Reaktion hernehmen, und Bälle treffen, die ich schon mit bloßem Auge nicht mehr verfolgen kann, denke ich über eine kleine Rede ihres Papas nach. Das übrigens ist Ruprecht Dröge, SQL-Experte (für mich der Beste, für viele andere übrigens auch, selbst wenn er das immer abstreitet), ursprünglich Fachlektor meines Visual Basic Entwicklerbuches und inzwischen sehr guter Freund. Diese Rede hielt er ein paar Tage nach der Basta 2007 in seiner Küche, kurz bevor wir einmal mehr das leckerste Sushi der Welt machten. In dieser Rede ging es mal wieder um die immerwährende Diskussion, bzw. die Abneigung gegen dieselbe, und seine schließlich gezogene Quintessenz kann ich uneingeschränkt unterschreiben.
Gleich ihm habe ich die ewigen Diskussionen über dieses Thema ja so satt. Mir steht es bis hier. Sie sind kindisch, sie führen zu nichts, und wenn die C#ler in der Überzahl sind, dann haben sie mit all ihren Argumenten einfach nur Unrecht – laut brüllen ändert leider nichts an den Fakten. Um was geht’s? Ganz einfach: Um die unendliche Geschichte auf Kongressen, Conventions, auf Bastas und sonstigen Events, wo wir Entwickler uns immer treffen und über das leidige Thema: »Was ist besser – Visual Basic oder C#?« endlos lange philosophieren.
Liebe C#ler, die ihr dieses Buch wahrscheinlich gar nicht wahrnehmt, es sogar schmäht und schneidet, und liebe Visual Basicler, die ihr euch nach 16 Jahren immer noch gegen die C#ler rechtfertigen müsst, weil ihr eure Anwendungen ja mit einer scheinbaren »Kinderprogrammiersprache« entwickelt, hier meine Argumentation für Visual Basic .NET. Endgültig – im Übrigen – denn ich bin unfassbar erfahren, habe die Weisheit in dieser Sache mit Löffeln verspeist und darf damit arrogant genug sein, dieser Diskussion ein für alle Mal ein Ende zu setzen: ;-)
- Geschweifte Klammern lassen Programme nicht professioneller ausschauen. Was für ein fragwürdiges Argument soll das denn sein? (Und Leute, die mich kennen, nehmen »fragwürdig« hier als Platzhalter für andere Adjektive, die leider nichts in einem Computerbuch zu suchen haben!) Ganz im Gegenteil: Visual Basic hat den Vorteil, Strukturbefehle zur Verfügung zu stellen, bei denen man genau weiß, zu welchem Ende welcher Anfang gehört: End If gehört zu If; Loop gehört zu Do; Next zu For; End With zu With (ach ja, diese letzt genannte Schreibersparnisfunktion kennen die C#ler ja gar nicht – ups!). Bei C# hingegen sieht das Ende eines komplizierten Algorithmus folgender Maßen aus:
}
}
}
}
}
}
}
}
1:0 für Visual Basic.
- Wenn die Fehlerliste von Visual Basic .NET leer ist, lässt sich ein VB-Programm starten. Klar – dann können natürlich noch logische Fehler darin sein; »anlaufen« wird das Programm aber erst einmal. Das ist in C# nicht so – jedenfalls nicht, ohne Zusatztools dazu kaufen zu müssen. In C# können sich zu diesem Zeitpunkt immer noch Referenzen auf Methoden, Eigenschaften, Feldvariablen oder sonstige Ele-mente befinden, die der Compiler nicht auflösen konnte, weil der Entwickler schlicht vergessen hat, sie zu deklarieren, zu implementieren oder er sich einfach nur vertippt hat. Das bedeutet dann: Programm kompilieren, feststellen, ob Fehler drin sind, Fehler raus machen, Programm wieder kompilieren, wieder schauen, ob noch Fehler drin sind, wieder Fehler raus machen, usw.
Im Übrigen ist das auch ein Vorteil von Visual Basic .NET gegenüber Visual Basic 6.0. Ein volles Kompi-lieren hat dort nur die erste nicht definierte Variable oder Methode gefunden; Sie mussten diese erst fixen, um anschließend wieder in die – so noch vorhanden – nächste nicht definierte Variable oder Methode zu rasseln. Deswegen sind die Turn-Around-Zeiten in Visual Basic 6.0 auch nur scheinbar kleiner als in Visual Basic .NET.
2:0 für Visual Basic.
- C# ist, wie C++ und Java, mal definitiv nicht für die deutsche Tastatur gemacht. Die geschweiften Klammern, die man alle 7 Sekunden benötigt, sind ein Sehnenscheidenentzündungsgarant. Mehr Tipparbeit erfordert Visual Basic .NET dennoch nicht: Das Tippen eines If führt automatisch zur Einfü-gung von End If, das von Class zu End Class und das von Function zu End Funtion. Dieses Verfahren ist bei allen Strukturbefehlen dasselbe.
Also: 3:0 für Visual Basic .NET.
- Nicht nur für Ein- und Umsteiger sind die vorhandenen Codeausschnitte eine enorme Erleichterung: Mit (Strg)(K), (Strg)(X) gibt es in Visual Basic 2008 (und im übrigen auch schon in der 2005er Version) eine riesige Bibliothek mit kleinen Codesnippets, die wiederkehrende Coding-Aufgaben auf ein Minimum an Zeitaufwand reduzieren. Diese Snippets gibt es vom Grundsatz her auch in C# – allerdings ist hier nicht der Arbeitsaufwand sondern die Codeausschnittsbibliothek auf ein Minimum reduziert.
Und damit: 4:0 für Visual Basic.
Fairerweise gebe ich zu, dass es einige Argumente für Visual Basic .NET gibt, die gerne in solchen Diskussionen genannt werden, aber nicht wirklich pro Visual Basic .NET sind. Beispielsweise, dass es einen Haufen von »altem« Visual Basic 6.0-Code gibt, den man einfach per Cut/Copy/Paste in .NET-Projekten zum Laufen bekommt – leider nicht, denn VB6 und VB.NET sind zu verschieden, als dass das sicher klappen würde; das trifft eher nur in wenigen Ausnahmefällen zu. Und auch die leichtere Erlernbarkeit von Visual Basic .NET im Gegensatz zu C# trifft nur bedingt zu. Sicherlich »fühlen« sich Visual Basic 6.0-Programmierer anfangs besser aufgehoben, da ihnen grundsätzliche Sprachelemente bekannter vorkommen; doch ehrlicherweise muss ich aus meinen Schulungserfahrungen sagen, dass das spätestens beim Thema OOP aufhört. Dort ist vielleicht sogar ein sauberer Schnitt eher brauchbar, da bekannte Strukturen nicht zum alten prozeduralen Programmieren wie in VB6 verleiten.
Aber dennoch. Sie sehen, dass Visual Basic .NET eindeutig die produktivere Programmiersprache ist. Und Sie sind vor allen Dingen gerüstet für die nächsten Diskussionen, aus der Sie als Sieger hervorgehen können! Und falls alles nichts hilft, dann schauen Sie Ihrem C#-Diskussionsgegner tief in die Augen, und sprechen Sie C# (eigentlich gesprochen: ßieh schahp) einfach »zisch ab« aus.
[...] In diesem Sinne,
Klaus Löffelmann am 20.01.2008
e0d322e1-f57f-487f-9cc9-857c551a7af6|2|3.0
Tags: visual basic vs. c# |
Categories: