Ausgangspunkt der Diskussion: FolDoc:object-oriented+programming.
Unter object-oriented programming steht hier: "Other languages, such as Perl and VB, permit, but do not enforce OOP." Das mit Datum 2000-10-10. In VB (vor .Net) gibt es keine Möglichkeit eine Klassenhierarchie (oder Interfacehierarchie) aufzubauen. Wenn es einen Minimalkonsens darüber gibt, was Objektorientierung bedeutet, dann wird er hier verlassen.
Wenn man die Aussage "VB permits OOP." so auffassen will, dass sie richtig ist, dann lässt sich statt VB auch z.B. C, UCSD Pascal, Modula-2, etc. einsetzen. Sie haben alle - wie VB - eine gewisse Unterstützung für abstrakte Datentypen.
Nochmal ausführlicher: VB (vor .Net) ist eine objektbasierte Sprache, keine objektorientierte Sprache. Modula-2, UCSD Pascal und Ada 80 sind Beispiele für andere objektbasierte Sprachen. (Ada 95 ist eine objektorientierte Sprache.) VB (bis einschließlich VB6) verfügt über kein einziges Feature, das für objektorientierte Sprachen essentiell ist, über das nicht alle anderen objektbasierten Sprachen auch verfügen würden. (Vgl. http://www.cs.ualberta.ca/~duane/courses/605/papers/p168-wegner.pdf) --her