Use whichever .NET language you want. Make your own decision based on research and personal preference.
There is quite a large list of languages to choose from for .NET
Somewhere greater than 50.
I like both VB and C#. I use both. They each solve similar problems in slightly different ways.
As far as VB using legacy code, I believe that the real story (please verify this for yourself) is that some of the functions in the VB namespace produce less than optimal IL than their .NET equivalent functions (not sure which ones, but rest assured it IS managed code, not legacy unmanaged code). Other functions produce the exact same IL because they just call into the .NET function(s). Either way it doesn't matter. Just use the .NET Framework methods in the BCL and all is well.
As far as "niceties" I like the VB ‘MY’ namespace.
And you could do this in VB instead:
' stores the first name
Private m_firstName = String.Empty
' gets or sets the first name property
Public Property FirstName() As String
Set(ByVal value As String)
m_firstName = value
Bob, i think you said it yourself. You've read in several articles that there isn't enough of a difference between the two to consider one over the other.
So here is my advice. Whichever one you are more familiar with, go with it. When you feel really comfortable with it, check out the other one. I'm sure you will find that they really aren't that different. It's just like AutoCAD, typically there is one answer for every problem, but at least 2 ways to get there. the way you feel most comfortable with will be the fastest.