I'm sure there are some excellent VB programmers around it's just that I've never met any. Judging by the quality of the VB code I've been looking at recently, none worked at the place that wrote that code.
There is something about VB that seems to invite cowboys and morons to it. Guys that were flummoxed by C/C++ or Delphi, but still wanted to get on the IT Gravy train. I guess it's easy to get something up and running, and without a lot of forethought or future thinking. Just put all our business rules on the click event of this button, no one will ever need to change the code, or the UI.
The language itself encourages laziness.
On Error Resume Next
Sure the program has just come back from catastrophic error, but I'll still try and plug on anyway. What's the worst that could happen?
variables don't need to be defined before using
VB guys counter this by saying, "Always use Option Explicit". Well if you should always use it, why isn't it turned on by default? Or better still why give the choice?! Sugrue rule number 1 states that if you allow a programmer to be lazy, they will be.
The single worst thing about VB to me though is the use of braces when calling a method with parameters. Or not.
myMethod parmeter1, parameter2
is valid, infact that's how you do it. However if you are assigning the return of a method to a variable, put the brackets in:
myVar = myMethod(parameter1, parameter2)
why? What sane person thought of this? WTF is the point. Either use it or don't.
Which brings me to VB.NET. Obviously it is real OO and utilises the .NET framework so is built on the foundation of brilliance, but what is the point? If it's to allow VB coders an easier starting point to .NET, then they are kidding themselves.
Microsoft should doing everyone a favour and send VB for a long walk off a short pier. Either learn C# or flip burgers instead.
Sometimes you have to be cruel to be kind.