• At the risk of being accused of being facetious, here are the differences between C# and VB.NET:

    - C# uses { and } to delimit blocks, whereas VB.NET generally uses new lines and tokens that are English words

    eg

    if (condition) { true-block } else { false-block }

    versus

    If condition Then

       true-block

    Else

       false-block

    End If

    - C# uses [ and ] for array subscripts, whereas VB.Net uses ( and )

    - um....

    - that's it

     

    Seriously, the fact that it is very nearly possible to *mechanically* translate between C# and VB.NET (with Option Strict on, which is should always be) should provide evidence that there are no significant objective differences, which is why everyone " seems to like what is most familiar to them". If you like terseness, being forced to be explicit about what you mean at all times, and having your manager be unable to read your code, use C#. If you like reading English, being allowed to get away with ambiguous phrasing, and letting the compiler guess what you mean sometimes, use VB.NET.

    The key thing about .NET is that since what you are actually programming is the CLR (remember what this stands for: Common Language Runtime), it doesn't matter at all what syntax you prefer to invoke it. VB.NET feels more like Java than VB, at any rate.