visual basic.net is case insensitive so it allows the coder to write without caring or remembering the casing of variables. it also relieves from the ‘undeclared variable’ errors if you use the variable in another case than the one used in declaration. The fact that its line termination is a line feed makes it even more readable unlike C# or c++ that need good care in the casing and contineous war with following up with the {}, matching them and figuring out which is for which.
my question is what are the advantages of c# over vb knowing that both get compiled to MSIL so there is almost no performance difference between the two languages?
Casing doesn’t excite me; especially with any decent IDE you’ll have intellisense, auto-complete, auto-correct, etc. Worst case: the compiler finds it for you. And I really don’t buy that being forced into a specific line-space pattern is a good thing (and yes, I used VB for years).
It is true that c# and VB.net have a lot of convergence, especially now with dynamic (which helps plug the only real gap in c# bs VB.net).
For a powerful c# feature: iterator blocks (aka yield return). Also; the lambda syntax is more complete/versatile.
But a less-specific argument: having used both extensively, I find c# more expressive, simpler to read/maintain, and cleaner. In short: I like it lots 😉
There is also the case that starting witha syntax familiar to java/c/c++/JavaScript makes transfer easier.