Well, I certainly agree with the underlying part of what you were saying. I don’t think VB is a very good first language partly because it is so simple. It is very easy to write a simple program in VB, which means that people can learn poor practices. However, I recently participated in a debate about that, and nobody could point to bad habits that were specifically due to VB. Bad practice all seemed to come from other sources which could be equally bad in all languages.
I was surprised to hear my brother-in-law ripping OO design concepts a year ago when we were on a hike. I had personally disliked the use of OO in the fashion he was describing, so I was glad to hear that he was pretty down on it. However, it just goes to show that there are serious arguments against pretty much every programming language and practice.
Another example is that while MS uses C++ (though the next office is supposed to be written in .NET), they don’t use the whole language, but rather they use what they call a “rational subset”. That’s my biggest argument against that language. The thing is so enormous that few people know it all, or can use it thoroughly.
Basically, disdain is present for pretty much every language. I have read several debates on this language or that language, and the fact is that if you know how to code well, VB6, .NET, C, and C++ are all about the same in what they can do, they just differ in how hard it is to do it. Having said that, I would also add that C/C++ will create smaller exes, which can run faster, but that almost never matters in business software. You really shouldn’t have any difficulty doing any database interfaces in VB6, .NET, or any of the others. However, if you write like crap, you end up with crap.
As for me, I switched to .NET, and have never gone back to VB6, though I loved it at the time. Oddly, while .NET was supposed to get rid of dll hell, it’s hard for me to say that it succeeded so well. The only place for C/C++ that I can see is either in those cases where you have no other choice, or games where every cycle counts. However, for my current project, where a “brain” that controls a small robot, will be spread across either two or three computers using two databases, the whole thing will be written in .NET, because it comes together fast and easy. Just got the interface modules finished this evening, and will probably get the driver module, UDP communications, and possibly the orienteer modules done tomorrow…except for that little football game which will wreck the afternoon.