RAD/Ein Plaedoyer fuer Visual Basic: Das Anwendungsdefizit ohne Programmierartisten abbauen

07.07.1995

Von Markus Kreisel und Renate Reinartz*

Waehrend sich die Staerken der Programmiersprache Visual Basic (VB) recht klar erkennen lassen, sind ihre Schwaechen weniger deutlich. Zu jeder Grenze von VB, die uns bekannt ist, gibt es mindestens ein Steuerelement (Custom Control), das diese ueberwindet. Doch das war nicht immer so.

Um die Einsatzmoeglichkeiten von Visual Basic zu erkennen, begeben wir uns in das Jahr 1991 zurueck - in die Zeit mit VBX- Schnittstellen ohne VBXe. Damals war der Erfolg dieser Sprache nicht zu erahnen. Da es noch keine zusaetzlichen Steuerelemente gab, stiessen die "Entdecker" schon in den ersten Wochen an Grenzen, die die Entwickler Visual Basic in die Wiege gelegt hatten und die zum Teil auch heute noch bestehen, so etwa die fehlende Zeigerarithmetik. Trotzdem haben die Autoren innerhalb von drei Wochen mit ausgiebigem Zugriff auf das Windows-API ihre erste Windows-Applikation entwickelt. Zugegeben, sie war nicht perfekt, eine Weiterentwicklung verkauft sich allerdings noch heute mit Erfolg. Windows-Entwicklung war so einfach wie nie geworden, und das mit einer unvergleichlich kurzen Einarbeitungsphase.

1992 verirrten sich mit dem Professional Toolkit for Visual Basic die ersten Steuerelemente nach Deutschland. Diese nuetzlichen Dateien mit der Endung VBX waren anfangs noch selten und wurden als Raritaeten gehandelt. Es gab zum Beispiel Steuerelemente fuer die Kontrolle der Numlock-Taste oder einen Schieberegler - allesamt Dinge, die heute antik anmuten.

1993 gelang der Durchbruch

Obwohl Microsoft das Paket verkaufte, handelte es sich bei diesen Steuerelementen um Entwicklungen von Drittanbietern. Die meisten dieser Pioniere sind auch heute noch erfolgreiche Anbieter in der explodierenden Componentware-Branche.

Ende 1992 kam dann die Version 2.0 von Visual Basic, die einige der bis dahin stoerenden Grenzen ueberwand. Aber so richtig ueberzeugen konnte auch diese Version nicht. Ihr fehlte noch immer die eigene Datenbank.

Die Version 3.0 kam zwar nur acht Monate nach 2.0, aber mit entscheidenden Verbesserungen auf den Markt. Mit ihr kletterten die Verkaeufe in bis dahin eine fuer Programmiersprachen undenkbare Hoehe. Die wichtigste Verbesserung: Die "Microsoft Access Jet Engine" war integriert. Alle denkbaren Steuerelemente waren gebunden, das heisst, datenbankfaehig geworden. Damit ist Visual Basic ein Werkzeug fuer kaufmaennische Loesungen. Auch im Client- Server-Bereich hat sich VB durch ODBC-Unterstuetzung zu einem ernstzunehmenden Angebot entwickelt. Steuerelemente fuer die Anbindung an Host-Systeme oder mittlere Datentechnik runden das Programmierwerkzeug ab.

Soweit die Geschichte. Heute ist es schwierig das richtige Steuerelement zu finden. Das liegt jedoch eher an der Qual der Wahl. Es gibt nicht nur Hunderte von Herstellern, sondern auch unzaehlige Haendler, Kataloge, Zeitschriften, Buecher und CD-ROMs zu diesem Thema. Moechte man beispielsweise in einer Anwendung einen Text anzeigen, so reicht das Angebot hier von einem Textbetrachter fuer unzaehlige Formate ueber RTF-faehige Editoren mit allen erdenklichen Attributen, mit Einbindung von Bildern und OLE- Unterstuetzung, bis hin zu aufwendigen Hypertextsystemen.

Es gibt fuer alles eine Loesung

Auch im Grafikbereich bieten sich zahlreiche Moeglichkeiten: von der reinen Anzeige ueber Konvertierung bis hin zur Bildbearbeitung der unterschiedlichsten Grafikformate, pixel- und vektororientiert, auf Wunsch natuerlich Datenbank-gebunden. Ob man nun eine Excel-kompatible Tabellenkalkulation oder ein Outline- Control zum Anzeigen gegliederter Informationen oder den ultimativen Designer-Chromlook fuer eine CD-ROM-Oberflaeche benoetigt: Es gibt fuer alle Entwicklungsanforderungen eine Loesung, man muss sie nur suchen.

All das hat Visual Basic den Ruf eingebracht, nur der Kleister zwischen den verschiedenen Komponenten zu sein. Um genau diese Funktion bewerben sich jedoch inzwischen auch unzaehlige andere Programmiersprachen. Die prominentesten davon: C++, Pascal und 4GL-Sprachen wie Gupta SQL Windows. Sie unterstuetzen allerdings nur den Standard der VBX-Version 1.0, der beispielsweise keine Unterstuetzung der Datenbank bietet.

Im uebrigen kann man Visual Basic nun wirklich nicht als Kleister bezeichnen. Diese Sprache umfasst ein ereignisorientiertes Konzept und hat mit der Syntax frueher Basic-Dialekte fast nur noch den Namen gemein. Von der Sprachsyntax her ist es mittlerweile nur noch Geschmackssache, ob man C++, Pascal oder Basic waehlt.

Skeptiker werden wahrscheinlich sagen, Delphi und C++ seien schneller. Diesen Vorwurf hat Visual Basic zum Teil seinem groessten Vorteil zu verdanken: Es ist so einfach, mit dieser Sprache Programme zu entwickeln, dass sie das bevorzugte Werkzeug von Anwendungsentwicklern ist. In der Regel sind dies Brancheninsider, bei denen Spartenwissen dominiert, oder Mitarbeiter grosser Unternehmen, die ohne den noetigen Entwicklungs-Background mit der Loesung von Abteilungsproblemen beauftragt werden.

Einfachheit geht vor Schoenheit

Die so entstandenen Anwendungen sind nicht immer nach allen Regeln der Informatik-Kunst gestaltet, entscheidend ist aber doch, dass sie die gestellten Aufgaben zufriedenstellend und mit einem aeusserst geringen Entwicklungsaufwand loesen und somit zum Abbau des "Anwendungsstaus" beitragen.

Tritt eine entwicklungstechnisch professionelle VB-Anwendung gegen eine C++- oder Delphi-Anwendung an, sind die Unterschiede nicht mehr signifikant. Beim Laden einer vergleichbaren Form mit Visual Basic und Delphi ergeben sich, je nach Form, einmal zehn Prozent Geschwindigkeitsvorteil bei VB und ein anderes Mal fuer Delphi.

Das groesste Manko von Visual Basic ist vielleicht, dass die Sprache nicht objektorientiert ist. Steuerelemente sind zwar Klassen beziehungsweise Objekte, sie legen Instanzen an, sie haben Eigenschaften, loesen Ereignisse aus und unterstuetzen Methoden. Im Gegensatz zu objektorientierten Sprachen kann man diese Klassen aber weder ableiten, noch mit Visual Basic eigene Klassen erzeugen.

Der versierte Entwickler behilft sich einfach damit, dass er mit Hilfe von C++ eigene Komponenten erstellt, die er in seinen VB- Anwendungen verwendet. Weniger versierte Programmierer sind darauf angewiesen, die geeignete Componentware zu erstehen und mit ihren Vor- und Nachteilen zu leben. Andererseits sind die objektorientierten Ideen, die VB unterstuetzt, so selbstverstaendlich in die visuelle Arbeitsweise integriert, dass sich die meisten Entwickler deren Verwendung nur selten bewusst machen muessen.

Wenig Unterstuetzung fuer Teamarbeit

Ein weiteres Manko von Visual Basic ist die mangelnde Unterstuetzung von Entwicklung in Projektteams. Es gibt zwei Wege, mit diesem Problem fertig zu werden. Einer davon: strenge Organisation, das heisst Aufteilung der Arbeit in Module, die jeweils nur von einem Entwickler bearbeitet werden. Fuer den Test werden dann in der Regel noch Dummy-Funktionen benoetigt, die schrittweise durch die fertige Arbeit der anderen Programmierer ersetzt werden. Dies war lange Zeit die einzige Moeglichkeit im Team mit VB zu arbeiten.

In der Zwischenzeit haben sich jedoch mehrere Hersteller dieses Themas angenommen, so dass - als zweiter Ausweg - eine Auswahl von mehreren auf Visual Basic abgestimmten Tools besteht, die diese Probleme mehr oder weniger elegant loesen. Es ist zum Teil sogar moeglich, innerhalb einer Prozedur in Teams zu arbeiten.

Visual Basic hat keine Zeigerarithmetik und damit auch keine dynamischen Datenstrukturen wie Listen und Baeume. Ein Entwickler behilft sich leicht mit einer Zeichenkette oder einem unsichtbaren Listenfeld. Die VB-Zeichenketten sind dynamisch und koennen, je nachdem wie viele man gleichzeitig benutzt, zu einem ganzen Datensegment werden, ohne explizit globalen Speicher verwalten zu muessen. Ausserdem verfuegt VB ueber dynamische Arrays, die sich ohne Inhaltsverlust redimensionieren lassen. Wem das noch nicht reicht, der wird in den Funktionssammlungen von Drittanbietern fuendig.

Ohne Zeigerarithmetik lassen sich auch keine Callback-Funktionen installieren, die zum Beispiel zur Druckjob-Kontrolle noetig sind. Muessig zu erwaehnen, dass Componentware auch diese Luecke geschlossen hat.Visual Basic bietet mit der Access Jet Engine den Datenbank- Kern von MS-Access. Der Zugriff auf die Datenbank erfolgt wahlweise ueber Steuerelemente oder die VB-Datenbankobjekte.

Ab Version 4.0 in 32 Bit und mit OCX

Innerhalb VB kann man auf die Tabellen und Abfragen aller von MS- Access unterstuetzten Datenbankformate - Access, Dbase, Paradox, Btrieve und ODBC - zugreifen.

Die Anwender haben Zugriff auf Access-Datenbanken bis zur Version 2.0. Das wird durch einen Kompatibilitaets-Layer erreicht, der allerdings ein paar Wuensche offenlaesst. Datenbanken, bei denen die referentielle Integritaet unterstuetzt werden soll, muessen in MS- Access angelegt und definiert werden, damit diese auch in der VB- Anwendung benutzt werden kann. Bei einer so angelegten Datenbank innerhalb einer Anwendung wahrt der Datenbank-Kern automatisch die referentielle Integritaet inklusive des kaskadierenden Loeschens.

Ab Release 4.0, das unmittelbar nach Windows 95 erscheinen soll, bietet Visual Basic auch eine 32-Bit-Version sowie die neue OCX- Schnittstelle, die auf OLE 2.0 basiert. Branchenkenner erwarten, dass sich die Zahl der Anbieter rund um Visual Basic dadurch noch einmal vervielfachen duerfte, zumal Microsoft dieses Interface in der kompletten Office-Serie verfuegbar machen will.

Zum Schluss noch ein Argument, das haeufig gegen Visual Basic ins Feld gefuehrt wird: Es gibt keinen echten Compiler, die erstellten EXE-Dateien benoetigen eine Laufzeitbibliothek. Aber auch an diesem Problem arbeitet schon mindestens ein Componentware-Hersteller. Ob Visual Basic einen echten Compiler braucht, ist eine weitere Diskussion, die bereits seit vier Jahren munter gefuehrt wird.

* Markus Kreisel und Renate Reinartz sind Inhaber der K & R Software GbR in Bedburg.