When I first started programming with VB. Net I hated it. Then after university I started to understand it, and now I am fully aware of many of it's features. Hating a .Net language is like hating car because of it's colour, because after its been CLR'd, the language effectively loses it's identity. This is because all languages in .Net use .Net libraries and functions, and have to adapt to the .Net way of doing things. But syntactically some arguments remain... so why do developers hate VB so much?
The Default Argument In Favour Of VB
Vb .net has one feature C# lacks. Vb .Net has default arguments. The C# team(or whatever) decided that default arguments where not a good idea...
Why? Well they have their reasons:
But if you read the comments in that post you can clearly see that this was a mistake.
One that VB does not make.
And a brief rebuttal from someone at D:
VB .Net 9+ has all the features of C# and in some cases it's a bit easier to use... but one of the main problems with VB is it's legacy.
mid, trim, right, left and even rem are still valid in VB .Net 9. VB 6 Programmers come to .Net and write shitty second rate half aborted VB6 mixed with some object orientation abuse. That is those who are not interested in learning the .Net framework or proper OOP.
The Skill Pool
The skills legacy does make VB attractive, because they can draw from a larger skills pool. VB's got a lot more old hands. C# kiddies(like myself) are still relatively inexperienced, and those who are are rare.
VB <> Standard
Another VB problem is standards. VB is a rebel by design. It's a very stupid language for that reason. After th 400th time End If becomes kind of redundant, but Microsoft has the solution to this problem. Automate text entry! So before you know it your sitting with huge chunks of meaningless keywords. Other language's syntax are much more aligned with C, the base of modern programming.
The <> character is also not a popular choice for not, and writing out the keywords may not be either.
The thing that pisses me off the most is that the language parser is very unforgiving. Everything has to happen on one line or else... you have to put a _ at the end of the line. This has been fixed to some extent in VB 10, because it's a stupid limitation with no value whatsoever, but my fear is that remnants might remain. This causes lazy developers to shove everything into one line, and makes long concatenated strings especially tedious.
The conclusion of using VB for almost 2 years on the job is that I don't recommend anyone to it as a learning language. It seems to attract the wrong kind of programmer in many cases. A little bit of syntax can go a long way, and a language like VB is not syntactically sound or pleasing. The final nail in the coffin is that when you learn C# you will have the advantage of being able to adapt easier to Java, C and C++, with VB, your left with pretty much nothing.
The sad part here is that default arguments is the only defense I could think of for VB. VB is my bread and butter, and so I guess I owe it at least a bit of thanks.