Rubrik: Allgemein | 15.05.05 |
VB.NET oder C# ? VB-Version: VB5, VB6 |
| Views: 11.425 |
Vor einiger Zeit hat Ralf_oop zu diesem Thema einen Thread im VB.NET-Forum geschrieben. Wir dachten uns, dass er sehr interessant ist und nicht verloren gehen sollte:
Ständig kommt die Frage auf, welche Sprache besser sei: C# oder VB.NET. Dieser Thread soll Klarheit schaffen.
Prinzipiell bieten alle .NET-Sprachen (dazu gehören neben C# und VB.NET auch C++ mit Managed Extensions, J# und weitere Sprachen) eine grundlegende "Mindestausstattung" von Features,
die unterstützt werden müssen. Dies ist durch die "Common Language Specification" (CLS) gewährleistet. Wenn die CLS nicht unterstützt wird, ist es keine .NET-Sprache. Durch die
Einhaltung der CLS kann man mit jeder .NET-Sprache jeden Typ von Anwendung entwickeln. Durch die Verwendung des .NET-Frameworks kommt die riesige Funktionsvielfalt zustande, da es (alle)
benötigten Funktionen beinhaltet, wie Multithreading, Variablentypen, Verschlüsselung, XML-Unterstützung oder Zugriff auf die Windows-Registry.
Unterschiede zwischen den .NET-Sprachen liegen einmal im Codestyle (z. B. geschweifte Klammern in C#) und in Feinheiten, wie die XML-Kommentare von C#. In C# ist es möglich, durch eine
Compileroption aus den XML-Kommentaren eine XML-Datei zu erstellen, die von weiteren Tools verwendet wird und z. B. daraus eine Dokumentation zu erstellen. Dieses Feature gibt es in VB.NET
(noch) nicht. Es kann aber von einem Tool geschlossen werden. C# bietet auch die Option, ein Objekt nach Verlassen eines bestimmten Codeblocks automatisch wieder zu zerstören; über dieses
Feature wird VB.NET in der nächsten Version verfügen. Allgemein unterscheidet sich C# nur minimal von VB.NET (außer im Codestyle). Es findet nur deshalb so eine hohe Verwendung, da sich
C++-Programmierer schneller in C# einarbeiten als in VB.NET. Aber es besteht die Möglichkeit, von Klassen zu erben – egal in welcher Sprache diese ursprünglich erstellt wurden, da beim
Kompilieren kein Maschinencode erstellt wird, sondern ein Zwischencode namens IL-Code, ähnlich dem Bytecode von Java. Im Gegensatz zum Bytecode wird der IL-Code beim Starten in
Maschinencode übersetzt und auf die zu Grunde liegende Plattform optimiert (z.B. auf einen Pentium4-Prozessor). Durch diesen IL-Code ergeben sich auch keine Performance-Unterschiede, da
dieser immer schnell ausgeführt wird, unabhängig von der ursprünglich verwendeten Sprache. .NET-Programme werden nur durch den Code beeinflusst, d.h. wer guten (optimierten) Code schreibt,
hat auch .NET-Programme, die besser ausgeführt werden als schlechter Code. Dies ist aber nichts Neues, dies ist auch z.B. in C++ der Fall.
Fazit: Egal ob C# oder VB.NET – beide Sprachen können bis auf wenige Details das Selbe, was sich aber mit VB.NET 2005 (Erscheinungstermin: voraussichtlich 3. Quartal 2005) ändern wird. Auch
bringt das Umschreiben von Code in eine andere Sprache keinen Sinn, besser ist es, einfach eine neue Klasse zu erstellen, die den vorhandenen Code überschreibt.
Diese Seite wurde bereits 11.425 mal aufgerufen.