It is a bizarre language that in some ways resemble Python. However, Python strikes me as being far more consistent. Visual Basic .NET curiously gives you the ability to decide whether you’d like to have strict typing or not with the Option Strict setting in Visual Studio. Coming from a background of strictly typed languages, I absolutely prefer this.
The thing that makes Visual Basic .NET strange for me is its very syntax. I understand that it is supposed to be a continuation of sorts of the original BASIC but some of these choices of keywords don’t make a lot of sense. And don’t get me started on how the language marries comparative equals to assignment equals.
Some of the keywords are redundant. Take, for example, “ByVal”. By default, an argument passed to a sub-procedure is already ByVal without it having to be specified. There are other things that come to mind, such as <> and Not.
Strangely, “null” becomes “Nothing”, which may be a little upsetting to some.
When learning java, one learns the following kinds of loops:
While, For, and Do-While.
In Visual Basic you learn about For, Do Loop, Do Until, Do While, For Each*.
In C# the For Each is expressed as a single word.
One of the better features of Visual Basic .NET is how you can specify inside a Select Case block a case range. C# recently got this.
The very existence of Visual Basic .NET strikes me as being mysterious. I suppose it would make sense to know Visual Basic .NET if you were from an accounting background, specifically one that made use of Excel macros.