Actually, VB is dumbed down so that any unsuspecting consumer, or entry level programmer, can slap together a poor imitation of a useful application.
VB's limitations are realized at the novice or entry level respectively.
I can't think of a single program that I've written in VC++ that I couldn't have done in VB.
Wait... I've thought of a couple. I could have done them in VB by putting together a little C++ DLL to encapsulate a couple of function in the CRT. VB's only limitations are the dependency on the runtime DLL, and the fact that it only copes with one type of function call (__cdecl, I think). You can actually produce smaller executables with VB by using P-code instead of native compilation, and they compile an awful lot faster at a small cost of running speed (but who cares with 2GHz P4s).
Recently I've been working on a program, and I decided to experiment with COM and polymorphism. After a couple of mistakes which were mainly my own, coding the classes has been very simple. I've spent a few days on it, and already there's more in it than the C++ version I was originally writing. There's one class that just defines an interface, but I could put code in that and use delegation. Two other classes implement it's interface, and there's not much code in them. What I've ended up with I could probably do in C++ (with a lot of work - COM's very nasty in C++), but it's a lot eaiser in VB as all the COM stuff is hidden behind a Set statement and the CreateObject function.
Dim Bloke As Person
Set Bloke = CreateObject("People.BoggyB")
Set Bloke = Nothing
Anyone care to give me the C++ variant for doing that, considering that People.BoggyB is in a separate DLL?