Home Publikationen Konferenzen Reiseberichte Persönliches Projekte Bücher

Visual Basic 6 - F.A.Q.

Inhalt Seite 1 Seite 2 Seite 3 Seite 4 Seite 5

VB ist eine Anfngersprache!

Der Einstieg in VB ist verglichen mit anderen Programmiersprachen einfach. Daher gibt es viele Laien, die mit Visual Basic Programme schreiben. Um aber professionell Programme schreiben zu knnen braucht man aber einige Jahre Erfahrung (ich habe die auch gebraucht). Nur weil also viele Laien mit VB Anfngerprogramme schreiben heit es noch lange nicht, da man mit VB nur Anfngerprogramme schreiben kann. Bei einiger Erfahrung kann man sehr effektiv professionelle Informationssysteme fr viele Benutzer schreiben.

Die wirklichen Laien bringen brigens erstaunliche Dinge mit Access und Excel fertig. Wir hatten schon Kunden gehabt die irre komplexe Excel Tabellen aufgebaut hatten, aus denen wir dann kurzfristig eine richtige Datenbankapplikation gemacht haben. Alle Achtung vor dem professionellen Arzt, Anwalt oder BWL'ler.

VB ist keine "ordentliche" Programmiersprache !

Viele Programmierer kennen Basic entweder nur vom Hrensagen oder von gaaaaaanz frher zu finstersten Heimcomputerzeiten (wobei Basic damals genauso unbersichtlich war  wie heutzutage C-Code). Goto gibt es schon lange nicht mehr (auer bei der Fehlerbehandlung). 

Leider geht MS bei VB sehr kurzsichtig vor. Die Standardoptionen der IDE sind fr Idioten und fhren zu idiotischen Fehlern. So kann man z.B. bei VB die Deklaration von Variabeln abschalten und sucht dann stundenlang einen Fehler, weil man sich bei einem Variabelnamen verschrieben hat. Der Compiler wrde einem ja sofort sagen, das man da etwas vergessen hat, aber vor solch einfachen Hinweisen will MS einen ja bewahren. Viel lieber lt MS uns stundenlang den Fehler suchen. Hm, na ja!

Wenn man aber die IDE ordentlich konfiguriert, dann kann man mit VB sehr schn Programme entwickeln, und vor allem schnell und gut!

Tipp:
Men "Extras" -> Optionen:
Tab "Editor": Variablendeklaration erforderlich
Tab: "Allgemein": "Kompilieren bei Bedarf" abschalten!
Tab "Umgebung": "Beim starten eines Programmes speichern" einschalten

VB ist keine Objektorientierte Sprache !

Eine "echte" OO - Sprache wird durch drei Merkmale gekennzeichnet:

Visual Basic bis zur Version 6.0 untersttzt nur zwei der Merkmale, nmlich Kapselung und Polymorphie. Die Vererbung von Schnittstellen wird begrenzt ermglicht, es kann aber kein Quellcode auf klassische Art vererbt werden. Wiederverwendung von Code erfolgt auf Basis von Aggregation.

Nun kann man sich darber streiten, ob VB nun eine OO-Sprache ist oder nicht. In ChariTime haben wir jedenfalls etliche Projekte die nur aus Klassenmodulen bestehen, also ein Objektmodell darstellen. In meiner bisherigen Praxis habe ich die "Vererbung" nur sehr selten vermit (das liegt aber auch an der Art meiner Projekte, siehe unten).

Erst habe ich gedacht, ich bin Schuld, aber dann hat mich ein prominenter Vertreter aus beiden Welten (C++ und VB) darin bestrkt. Dan Appleman von DesaWare sagt, das die Implementierungsvererbung auch sehr viele Gefahren birgt. Ich selber sollte einmal eine in Gupta geschriebene Objektbibliothek analysieren, der Auftraggeber wollte eine Doku, aber keiner der Entwickler war mehr da. Eine Kollegin und ich haben irgendwann aufgegeben. Nicht umsonst wurde die Mehrfachvererbung in Java verboten. 

Das soll nicht heien, das Vererbung schlecht ist. Aber wie mit jedem Werkzeug mu man berlegen, wann man es einsetzt und ich behaupte mal hier ganz forsch, das es viele Anwendungen gibt, wo Implementierungsvererbung nicht wichtig ist.

Viel wichtiger ist die Aufteilung einer Applikation in Komponenten und Schichten, das Schaffen eines Objektmodells als Vermittler zwischen Datenpersistierung und Datenprsentation. Siehe auch meine Diplomarbeit.

Ist Visual Basic eine gute Programmiersprache?

Wann ich VB einsetzen wrde, und wann nicht, siehe unten. Pauschal gesagt, kann man sagen, da man in jeder Programmiersprache schlecht programmieren kann. Dadurch das es fr unerfahrene Leute einfacher ist in VB einzusteigen und mehr Mensche auf der Welt versuchen in VB zu programmieren als in C++, Java, Delphy, etc. gibt es natrlich auch mehr schlechte Programme. 

Leider gibt es viele Scharlatane die sich als VB-Entwickler ausgeben und nur etwas zusammenschustern. Deshalb ist es um so wichtiger, das sich der Kunde informiert wen er da beauftragt.

Professionelle VB - Entwickler knnen sehr gute und effiziente Programme erzeugen und vor allem in der Hlfte der Zeit. Nur selten ist es fr Firmen notwendig auf andere Programmiersprachen umzusteigen (siehe unten). Ein Punkt, wo VB von Hause aus langsam ist, ist die komfortable Stringverarbeitung. Aber auch in VB kann man mit Byte Arrays rumhantieren und eine hnliche Effizienz wie unter C erreichen, alles eine Frage von Aufwand und Nutzen.

Was fehlt in VB 6.0 ?

  1. Multithreading ist nur ber komplizierte Umwege mglich
  2. Die Vererbung von Quellcode
  3. Verwaltung von GUID's fr COM Komponenten
  4. keine Pointer

Ist das schlimm ?

  1. Das ist abhngig von der Art der Projekte. Ein professioneller VB Entwickler kann auch whrend einer langen Operation die GUI am laufen halten. Echtes Multithreading verdoppelt den Komfort, aber erhht die Komplexitt des Programms um das vierfache. Fr Win32 Front Ends ist das nicht schlimm, da der Anwender 
  2. Wird auch nicht so oft bentigt, je nach Art der Anwendung. Hufiger Einsatz macht den Code schwerer wartbar. Intensiver Einsatz von Mehrfachvererbung lt die Wartbarkeit von Code gegen Null tendieren.
  3. Sehr Nervig! Hat man komplexere Projekte mit mehreren Komponenten, die aufeinander aufbauen so wird die Eigenart von VB die GUIDs nach Lust und Laune zu generieren echt zum Problem. Für das kompilieren von ChariTime habe ich teilweise einen halben tag gebraucht! Bei Projekten mit einer COM-Dll und einer Exe, ist es kinderleicht, man braucht sich um nichts kmmern.
  4. Das vermisse ich am allerwenigsten. Nicht umsonst gibt es in Java keine Pointer mehr. Harte Programmierer - Kerls mssen natrlich immer beweisen, das sie cool mit Pointern jonglieren knnen, nur leider verhauen sie sich oft und dann gibt's einen brutalen Programmabsturz mit vllig nichts sagender Fehlermeldung. Aber was war es?? Heute bieten die meisten Bibliotheken gute Strukturen um die wichtigsten Aufgabenbereiche der Pointer mit anderen Mitteln abzudecken. Mit Pointern zu arbeiten ist wie Bomben entschrfen: man mu hllisch aufpassen und beim kleinsten Fehler macht die Applikation Buuum! 

Alle diese Bemerkungen treffe ich unter dem Gesichtspunkt einer kommerziellen Softwareentwicklung. Es gibt Projekte, wo die oben genannten Punkte essentiell wichtig sind. Aber fr eine groe Gruppe von Projekten spielen sie keine Rolle. Da sind Faktoren wie Wartbarkeit, Erweiterbarkeit, Zeit und Kosten viel wichtiger.

letzte Aktualisierung: [ ]
e-mail: Marcel Gnoth