Most people who object to Visual Basic, object to the language itself: It's labyrinthine, inconsistent, and arbitrary. Here's an example: VB supports a gratuitous "subroutine"/function distinction like Pascal. Worse than Pascal, VB allows subroutines to be called without putting parens around the argument list. IIRC, they forbid calling a subroutine with parens around the arguments. They also have "named arguments", like so:
foo( length := 10, width := 20 )
...what the hell is that?! The Pascalish assignment operator is used nowhere else in the language. They threw it in just for this named argument feature, even though assignments don't return values in VB, so there'd be no ambiguity if they used the regular (single '=') assignment operator.
Most of us would think that three argument-passing syntaxes in the same language would be sufficient, but Microsoft doesn't. There are some VB functions which have arguments both inside the parens and outside. I last subjected myself to this madness several years ago so I can't recall any names, but in VB3 there were such functions. It'd be nice if MS for once broke backwards compatibility and dropped that garbage, but what are the odds?
The whole language is like that: There seems to have been a semi-clean (as Basics go, anyway) initial language, to which several successive gangs of irresponsible developers added dozens of ill-considered features in response to passing whims. It's an incoherent mess, and very few of the misfeatures offer any benefit whatsoever (what is gained by the outlandish
if block/no-block foolishness?). I've heard that many of the programmers who develop the Visual Basic language do not know the language and have no desire to learn. Of course, that's just a rumor.
This is all really a matter of taste, but I've found it to be painful and clumsy to write in. I'm not fond of the IDE either. The editor rearranges whitespace at me, which I find infuriating: I am a programmer. I can format my own code, thank you very much. I can even go to the bathroom all by myself now.
There's also the single-vendor language problem. You have that to some extent with any language (grovel over some GNU code if you doubt me -- it's #ifdef city in there), but Visual Basic is the most egregious offender I've ever seen.
Cognitive dissonance dept.: You can always start trouble on Slashdot by likening VB to Perl. Since they are very similar (see "labyrinthine, inconsistent, and arbitrary"), you can keep the fight going forever.
Nate is mistaken: @!#%! Developer's Network is the documentation thing; I suspect he's thinking of @!#%! Visual Studio, which is their general name for their development stuff. MSDN is kinda sorta integrated into it, but you can install either without the other.