Warum Visual Basic .NET?
Ein kurzer historischer Abriß
Visual Basic (kurz VB, im Gegensatz zu Visual Basic .NET Classic VB) ist der Name einer Programmiersprache, die dafür bekannt ist, daß damit mit geringem Aufwand leistungsstarke, auf grafischen Benutzerschnittstellen basierte Anwendungen erstellt werden können. Microsoft begann in den frühen Neunzigerjahren des 20. Jahrhunderts mit der Entwicklung von Visual Basic unter dem Codenamen Thunder. Nach der Veröffentlichung der Version 5 gewann Visual Basic 1998 den Best RAD Tool Award, wobei es PowerBuilder entthronte. Diesen Preis gewann Visual Basic noch zwei weitere Male. Visual Basic 5.0 brachte große Verbesserungen, darunter u. a. ein Compiler für echten Maschinencode.
Obwohl Visual Basic 6.0 sehr leistungsstark ist, nimmt es seit der Veröffentlichung von Visual Basic .NET (kurz VB.NET) nicht mehr den Stellenwert ein, den es einmal hatte. In Nordamerika wurden zeitweise mehr als 70 Prozent der Anwendungen mit Visual Basic entwickelt. Bill Gates, Gründer und Chefentwickler bei Microsoft, sagt dazu:
Doch die Anwendungsentwicklung bewegte sich weg von Einzelanwendungen, die auf einem Rechner lokal und unabhängig laufen, hin zu einem Gewebe aus an mehreren Orten plazierten zusammenarbeitenden Anwendungen. Das Fehlen einiger Konzepte, deren wichtigste in der folgenden Liste angegeben sind, war ausschlaggebend für die Neuausrichtung von Visual Basic:
- Unzureichende Unterstützung für Multithreading.
- Fehlen von Möglichkeiten der objektorientierten Programmierung (z. B. Vererbung von Implementierungen).
- Eingeschränkte Möglichkeiten bei der Fehlerbehandlung.
- Schlechte Integration mit anderen Programmiersprachen wie beispielsweise C++.
- Die Entwicklung von Internetanwendungen war nur beschränkt möglich.
Diese Liste zeigt nur einige Punkte, die von Visual Basic 6.0 nicht ausreichend gut unterstützt wurden. Man konnte erwarten, daß in einer neuen Version von Visual Basic diese Unzulänglichkeiten behoben würden. Auch wenn sich viele Programmierer eine Version 7 gewünscht hätten, sah die Lösung mit dem Namen Visual Basic .NET dann doch ganz anders aus. Im Folgenden werden einige herausragende Funktionsmerkmale von Visual Basic .NET aufgezählt:
- Volle Unterstützung objektorientierter Programmierung.
- Möglichkeit der strukturierten Fehlerbehandlung.
- Zugriff auf das .NET Framework.
- Einheitliche Entwicklungsumgebung für mehrere .NET-Programmiersprachen.
- Inhärente Unterstützung von XML und Webservices.
- Erweiterte Möglichkeiten der Entwicklung von grafischen Benutzerschnittstellen mit Windows Forms.
- Entwicklung von Konsolenanwendungen.
- Neue Möglichkeiten bei Webanwendungen mit Web Forms.
- Einige neue Steuerelemente.
- Interoperabilität mit anderen .NET-Programmiersprachen.
- Gute Unterstützung von Datenbankanbindung mit ADO.NET.
Schön und gut; diese Funktionsmerkmale besitzt aber nicht nur Visual Basic .NET, sondern auch andere .NET-Programmiersprachen wie C# stellen sie zur Verfügung. Was spricht also für die Verwendung von Visual Basic .NET? Wenn man den Worten von Bill Gates Glauben schenken darf, wird Visual Basic .NET in Zukunft eine wichtige Rolle spielen:
Microsoft und andere Unternehmen legen besonderes Interesse in die Entwicklung von verteilten Anwendungen und Internetanwendungen. Auch wenn Java momentan auf diesem Gebiet die vorherrschende Technologie ist, gibt das .NET Framework den Programmierern traditioneller Microsoft-Programmiersprachen und -technologien die Möglichkeit, in diesen Sektor einzudringen und für die dritte Generation des Internets zu entwickeln.
Vorteile von Visual Basic
Zu den wichtigsten Qualitätsmerkmalen einer Programmiersprache zählen neben der Leistungsfähigkeit die leichte Lesbarkeit und Nachvollziehbarkeit des darin verfaßten Quellcodes. Gerade hier besitzt Visual Basic Vorteile gegenüber anderen Programmiersprachen:
Visual-Basic-Quellcode kann man wie eine Geschichte vorlesen, dadurch fällt es auch Laien leicht, Code rasch nachzuvollziehen. Der Quellcode ist, da stark textzentriert, intuitiv einfach zu verstehen; ein kurzer Blick reicht und man weiß, was eine Prozedur macht.
Anweisungsstrukturen sind auf wesentlichste Einsatzbereiche reduziert, man vergleiche hierzu die Syntax der
For
-Schleifen in den Programmiersprachen Visual Basic und C.Eigene
End
-Schlüsselwörter wie beispielsweiseEnd If
undEnd Sub
zum Abschließen von Blöcken bewirken, daß klar ersichtlich ist, welcher Typ von Block abgeschlossen wird. Dies ist bei Programmiersprachen, in denen geschweifte Klammern zur Begrenzung von Blöcken verwendet werden, nicht möglich.Visual Basic benötigt keine gewöhnungsbedürftigen Zeichen wie
;
zum Abschließen einer Anweisung oder:=
für die Zuweisung eines Wertes an eine Variable. Besonders das Überladen des Operators=
ist ein Vorteil von Visual Basic. In Pascal wird nämlich zum Gleichheitstest der Operator=
, für die Zuweisung:=
, in C++ für Gleichheitstest==
und Zuweisung=
und in FORTRAN.EQ.
für Gleichheitstest und=
für die Zuweisung verwendet. Der Nachteil davon ist aber, daß Ausdrücke wiea = b = c = 0
in Visual Basic nicht möglich sind; Anweisungen wie diese führen aber ohnehin nur zu schwer lesbarem und erweiterbarem Code und sollten deshalb vermieden werden.Abschreckendes Beispiel für die Syntax von Programmiersprachen ist meiner Ansicht nach Pascal, wie man es z. B. aus dessen Abkömmling Delphi kennt. Dabei seien hier nur die
begin…end
-Blöcke angeführt, die bei bestimmten Konstrukten eingesetzt werden müssen, sobald diese mehr als einen Befehl enthalten.begin
hat für den Entwickler, der den Quellcode liest, überhaupt keine tiefere Bedeutung, die nicht bereits aus dem umgebenden Code hervorgehen würde.Kommentareinleitungen bestehen in Visual Basic nur aus dem Zeichen
'
, das fast nicht auffällt (wenn man von der antiquierten Möglichkeit absieht,REM
zu verwenden).Visual Basic unterscheidet nicht zwischen Groß- und Kleinschreibung, weshalb Fehler aufgrund von Schreibfehlern nicht auftreten können. Außerdem wird dadurch die Wahl von Bezeichnern verhindert, deren Namen sich nur in der Groß- und Kleinschreibung einzelner Zeichen unterscheiden. Dadurch können Fehler, die durch die Unschärfe des menschlichen Gedächtnisses entstehen, vermieden werden.
Der direkte Vergleich von Visual Basic mit anderen Programmiersprachen ohne Berücksichtigung der Entwicklungsumgebung ist problematisch. Die Entwicklungsumgebung ermöglicht mit ihren auf die Programmiersprache abgestimmten Funktionen eine effiziente Entwicklung. Aufgrund ihres Textcharakters ist die Programmiersprache Visual Basic ohne die zugehörigen Entwicklungswerkzeuge weniger gut zur Entwicklung geeignet.
Vorurteile gegenüber Visual Basic
Als Visual-Basic-6.0-Programmierer wird man von Nutzern anderer Programmiersprachen vielfach belächelt, doch zu unrecht. Oft wird man mit Aussagen wie den Folgenden konfrontiert:
- „Visual Basic 6.0 unterstützt keine objektorientierte Programmierung.“
In Classic Visual Basic wurde objektorientierte Programmierung nur spartanisch unterstützt. In Visual Basic .NET hingegen sind die wichtigsten objektorientierten Konzepte umgesetzt.
- „Bei Visual Basic muß man so viel schreiben.“
Auch die „viele Schreibarbeit“ fällt durch automatische Vervollständigung seitens der Entwicklungsumgebung bereits seit mehreren Versionen weg.
- „Visual Basic unterstützt keine Zeiger.“
-
Visual Basic 6.0 unterstützt in einem gewissen Umfang sehr wohl Zeiger unterstützt. Zeiger stammen aus einer Zeit, in der effizienter Code wichtig war, weil die Hardware nur eine geringe Leistung erbringen konnte. Bei Sprüngen von einigen hundert Megahertz von einer Prozessorgeneration zur nächsten zählt dieses Argument nicht mehr. Viele moderne Programmiersprachen setzen das Konzept der Zeiger nicht mehr um und legen stattdessen den Fokus auf lesbaren, wartbaren und erweiterbaren Quellcode.
Tatsache ist, daß Zeiger die Komplexität des Quellcodes erhöhen und oft eine Ursache für schwer auffindbare Fehler darstellen.
- „Visual Basic produziert langsamen Code.“
Auch dieses Argument kann gleich wie das vorige entkräftet werden. Visual Basic 6.0 und Visual Basic .NET können sehr performanten Code erzeugen. Abgesehen davon spielt die Ausführungsgeschwindigkeit von Code nur in wenigen Fällen eine Rolle.
- „Durch Anweisungen wie
GoTo
wird der Code unübersichtlich, Spaghetti-Programmierung ist die Folge.“ Jedem Programmierer bleibt selbst überlassen, diese Anweisungen einzusetzen oder auf ihre Verwendung zu verzichten. Visual Basic stellt ausreichend Möglichkeiten zur Verfügung, um dasselbe Verhalten durch strukturierten Code herbeizuführen. Außerdem existieren Anweisungen wie
GoTo
auch in anderen Programmiersprachen, etwa in C.- „Mit der fertigen Anwendung müssen Laufzeitbibliotheken ausgeliefert werden.“
Anwendungen sollten normalerweise immer mit einem entsprechenden Installationsprogramm bereitgestellt werden, das die erforderlichen Bibliotheken auf den Zielrechner kopiert und registriert. Mittels spezieller Werkzteuge können die nötigen Bibliotheken statisch in die Programmdatei gelinkt werden. Visual Basic .NET unterstützt die
XCOPY
-Bereitstellung von Anwendungen auf dem Zielrechner. Auch Anwendungen, die mit Programmiersprachen wie C oder Java entwickelt wurden, sind auf das Vorhandensein von Bibliotheken oder Laufzeitumgebungen angewiesen.
Wie diese Auflistung zeigt, sind die meisten Vorurteile gegenüber Visual Basic darauf zurückzuführen, daß viele Programmierer seit den frühen, in ihrer Funktion doch recht eingeschränkten Versionen nicht mehr eine aktuelle Version der Programmiersprache angesehen haben und daher nicht über deren Funktionsmerkmale Bescheid wissen.
Vermutlich war auch die Angst, daß andere Programmierer etwas können, das in Zukunft vielleicht wichtig sein wird, ausschlaggebend für den teilweise anzutreffende Ablehnung von BASIC und seinen Weiterentwicklungen. Man dachte, durch Ignorieren und Schlechtmachen den Erfolg einer Programmiersprache, die durch ihre einfache Handhabung anderen Programmiersprachen überlegen war, zu verhindern. Darin kann auch eine Ursache für die Abneigung einiger Programmierer gegenüber Microsoft liegen. Manche Professionisten scheinen der Überzeugung zu sein, daß Programmieren schwierig sein muß und einfach zu erlernende Programmiersprachen keine Existenzberechtigung haben – die Zeit wird das Urteil fällen.
Natürlich soll nicht ausgedrückt werden, daß Visual Basic frei von Nachteilen ist. Einige davon werden im Folgenden angegeben:
Kommentare können nur einzeilig sein, d. h., man kann nicht mittels Start- und Endmarkierungen einen Bereich als Kommentar auszeichnen. Allerdings können markierte Zeilen komfortabel über Tastenkombinationen bzw. ein entsprechendes Menü/Werkzeugleiste als Kommentare gekennzeichnet werden. Auch das Entfernen der Auskommentierung ist so möglich.
Die
For
-Schleife ist in ihrer Funktionalität im Vergleich zu anderen Programmiersprachen wie C oder Java etwas eingeschränkt, allerdings erlaubt dies eine leichtere Handhabung.
Erfolg durch Unsauberkeit?
Warum ist gerade eine Programmiersprache wie Visual Basic so erfolgreich? Einer der Schlüssel zum Erfolg von Visual Basic ist wahrscheinlich in einer „Unsauberkeit“ der Programmiersprache zu finden. Damit ist der Datentyp Variant
bei Classic Visual Basic bzw. der Datentyp Object
bei Visual Basic .NET gemeint.
Bei Variant
handelt es sich um einen Datentyp, der Daten beliebigen Typs, also Zeichenketten, Zahlen, Objekte, ja sogar ganze Arrays aufnehmen kann. Anstatt Variablen in einem bestimmten Typ deklarieren zu müssen, reicht aus, die Variable direkt im Quellcode zu verwenden. Visual Basic betrachtet die Variable dann automatisch als Variant
. Klarerweise ist auch möglich, Datentypen zu benutzen, selbst zu definieren oder die explizite Deklaration und Typisierung von Variablen zu erzwingen.
Als Programmieranfänger, der stark problemzentriert vorgeht und der sich nicht mit Datentypen und anderen Eigenheiten einer Programmiersprache auskennt, findet man dadurch leichter Zugang zur Programmierung. Während andere Programmiersprachen wegen Formalismen wie Strichpunkten, Klammern und auch expliziter Deklaration Einsteiger davon abhalten, schnell durch Entwickeln eines einfachen Programms Erfolge zu erzielen, treten diese unter Visual Basic auf jeden Fall ein. Folgendes Listing zeigt den Visual-Basic-Quellcode einer einfachen Prozedur, wie ihn ein Anfänger schreiben könnte:
Um dieselbe Funktionalität in Java zu erhalten, ist bedeutend mehr Wissen über die Programmiersprache erforderlich. Die oben angeführte Prozedur könnte in einer Java-ähnlichen Programmiersprache folgendermaßen aussehen:
Aus diesem einfachen Beispiel ist ersichtlich, daß Visual-Basic-Quellcode Pseudocode sehr ähnlich sein kann. Daher kann Visual Basic auch als Entwurfssprache für prozedurale Algorithmen eingesetzt werden, die anschließend in anderen Programmiersprachen implementiert werden. Die zuvor angegebene Visual-Basic-Prozedur ist natürlich nicht elegant und sicher programmiert, sie soll keinesfalls ein Muster für typischen Visual-Basic-Quellcode sein.
Weiterführende Informationen
- Bernd Leitenberger: Richtige Programmierer meiden C
Bernd Leitenberger legt in seinem Artikel dar, warum C vielfach nicht die beste Wahl für die Lösung eines Programmierproblems darstellt. Den immer wieder aufflammenden Fanatismus des Autors für Pascal und Delphi sollte man beim Lesen nicht weiter beachten.
- Konrad L. M. Rudolph: Die Laufzeitbibliotheken
Konrad L. M. Rudolph erläutert in seiner Kolumne Sinn und Zweck von Laufzeitbibliotheken und diskutiert Vor- und Nachteile.