I actually love Visual Basic, however its strength --easy to learn the basics-- is one of its weak points.
I agree that there are too many idiots that use VB to churn out the most horrid of applications... ugly and unintuitive gui, spaghetti code, using 2mb ActiveX controls in place of a couple of declared functions in a standard library...
it's nothing less than embarrassing.
Too bad it's a Microsoft-specific language, which means that its lifecycle has a definite end, and it's not going to be on any platforms besides Windows and the Mac.
(I would very much love to use it on POSIX machines.)
VB may not be as close to the hardware as C, but then again, it's not designed to be. Its purpose is to encapsulate the fucntionality of lower-level technologies, including C, ASM and the system kernel.
The philosophy behind VB is to feed the machine an algorhythm, and let the MACHINE figure out the answer. That's what computers are for -- to compute expressions.
There are of course times when you need to step beyond the language's safety net, and that's why experienced VB developers know how to directly access memory (yes, it can be done), use functions and types from the Windows kernel and object files written in C.
It certainly wouldn't be the ideal language with which to write device drivers or embedded software, but on a platform/machine that is pentium-based or beyond, VB's abstraction is NOT a con.
When you talk about 'silly people' creating applications, please keep in mind that any language can be used to create drivel.