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:

Since Visual Basic’s inception, its community has grown to more than 3 million professional developers worldwide. In fact, about half the world’s developers now use Visual Basic. The increasing power and richness of the PC provided the backbone for this amazing growth.

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:

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:

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:

The next 10 years will be an amazing time for software developers. The advancements in the way we develop, deploy, and use applications will be as profound as the architectural shift from DOS- to Windows-based programming. Visual Basic .NET will provide the foundation for building the solutions that enable a new age of truly distributed computing on the Internet.

Microsoft sees the Visual Basic community as a core part of this vision. If you’re new to this community, I welcome you to what promises to be an incredibly exciting era. If you’re a seasoned Visual Basic developer, I thank you for continuing to make it the world’s most popular development tool. I’m confident that Visual Basic .NET will give you the power to write cutting-edge software for tomorrow’s Internet.

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:

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:

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:

Function DoSomething(Lower, Upper)
    DoSomething = -100
    For i = Lower To Upper
        If i = (Lower + 12) \ 2 Then
            DoSomething = i
            MakeIt(Lower)
        End If
    Next i
End Sub

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:

short doSomething(short lower, short upper) {
  short retVal = -100;
  for (short i = lower; i <= upper; i++) {
    if (i == Math.floor((lower + 12) / 2)) {
      retVal = i;
      makeIt(lower);
    }
  }
  return retVal;
}

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.