1. Herfried K. Wagner’s VB.Any
  2. .NET
  3. Artikel

Warum Visual Basic .NET?

Ein kurzer historischer Abriss

Visual Basic (kurz „VB“, im Gegensatz zu Visual Basic .NETClassic 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 90er-Jahren 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, erforderte eine Neuausrichtung des Produkts Visual Basic:

Diese Liste zeigt nur einige wichtige Punkte, die von Visual Basic 6.0 nicht ausreichend gut unterstützt wurden. Es war also zu erwarten, daß in einer neuen Version von Visual Basic diese Unzulänglichkeiten behoben werden 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 Bereich vorherrscht, gibt das .NET Framework den Programmierern traditioneller Microsoft-Programmiersprachen und -technologien die Möglichkeit, in diesen Sektor einzudringen und erfolgreich für die dritte Generation des Internet 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:

Es ist problematisch, Visual Basic mit anderen Programmiersprachen zu vergleichen. Für die Entwicklung von Classic Visual Basic-Anwendungen existiert eine Entwicklungsumgebung, die mit ihren Funktionsmerkmalen eine effiziente Entwicklung ermöglicht. Die Programmiersprache Visual Basic ohne entsprechende Entwicklungswerkzeuge ist aufgrund ihres Textcharakters nicht so gut zur Entwicklung geeignet.

Vorurteile gegenüber Visual Basic

Als Visual Basic 6.0-Programmierer wird man von Kollegen, die andere Programmiersprachen verwenden, vielfach zu unrecht belächelt. 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.“

Diesem Argument ist entgegenzusetzen, daß Visual Basic 6.0 sehr wohl Zeiger in einem gewissen Umfang 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, Spaghettiprogrammierung ist die Folge.“

Es bleibt jedem Programmierer selbst überlassen, diese Anweisungen einzusetzen oder auf ihre Verwendung zu verzichten. Visual Basic stellt ausreichend Möglichkeiten zur Verfügung, um das selbe Verhalten in strukturiertem Code herbeizuführen. Außerdem gibt des Anweisungen wie GoTo auch in anderen Programmiersprachen, etwa C.

„Es müssen Laufzeitbibliotheken mit der Anwendung ausgeliefert werden.“

Anwendungen sollten normalerweise immer mit einem entsprechenden Installationsprogramm ausgeliefert werden, das die erforderlichen Bibliotheken auf den Zielrechner kopiert und registriert. Es gibt kommerzielle Werkzeuge, die benötigte Bibliotheken statisch in die Programmdatei linken können. 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.

Diese Auflistung zeigt, daß die meisten Vorurteile gegen Visual Basic darauf zurückzuführen sind, 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 anzutreffenden blinden Hass gegenüber BASIC und seinen Weiterentwicklungen. Man dachte, durch Ignorieren und Schlechtmachen den Erfolg einer Programmiersprache, die durch ihre einfache Handhabung anderen Programmiersprachen weit überlegen war, zu verhindern. Darin kann auch eine Ursache für die Abneigung einiger Programmierer gegenüber Microsoft liegen. Manche Personen sind leider der Überzeugung, daß Programmieren schwierig sein muß und daher 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 Formats, also Zeichenketten, Zahlen, Objekte, ja sogar ganze Arrays aufnehmen kann. Anstatt Variablen in einem bestimmten Typ deklarieren zu müssen, reicht es, die Variable direkt im Quellcode zu verwenden. Visual Basic deklariert die Variable dann automatisch als Variant. Klarerweise ist es 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 dies 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 die selbe 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 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 und soll keinesfalls ein Muster für typischen Visual Basic-Quellcode sein.

Weiterführende Literatur

Richtige Programmierer meiden C (Bernd Leitenberger)

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 einfach nicht weiter beachten.

Die Laufzeitbibliotheken (Konrad L. M. Rudolph)

Konrad L. M. Rudolph erläutert in seiner Kolumne Sinn und Zweck von Laufzeitbibliotheken und diskutiert Vor- und Nachteile anhand einiger Gedanken.