Choosing between .NET Pepsi and .NET Coke

I've increasingly come to believe that the debate between C# and VB.NET is a red herring. Choosing between C# and VB.NET isn't a meaningful choice. It's like choosing between .NET Pepsi and .NET Coke.

This is a companion discussion topic for the original blog entry at:

Python and C#/VB are totally different types of languages! This blog only shows you don’t know the difference.

Try comparing PHP and Python.

Can the above poster be serious? Did you not mention Python is like Yoohoo… As far as I’m concerned Pepsi and Yoohoo are totally different beverages.

the first poster must either be on drugs or trolling

I think c# is faster than all other languages.

Lke Jeff says, there’s no meaningful difference between C# and VB.NET (at least there wasn’t when he made this posting originally, since then MS have widened the gap somewhat to address the marketing problems inherent in having two such closely related languages). There’s no reason why C# would be faster - write some code in both and look at the generated IL to see how different they are.

C# doesn’t have to support the older versions of it, since none exist. VB does, so it has annoyances, such as declaring array sizes. If you’ve used VB before, use VB. NET. If you’ve used C or C++ at all, use C#. Personally, I recommend even VB developers to switch to C#, since it doesn’t have any baggage, and because it’s made from scratch, things are done right. VB .NET could have been even worse if MS had decided to maintain backwards compatibility completely, which they didn’t, which is amazing, since it’s MS’s lifeblood. In either case, unless you’ve lived on VB for the past 5 years, move to C#. If you’re debating it at all, use C#.

There’s also another concern in the choice of languages, especially when it comes to VB and C#, and that’s the case of familiarity. I know a few people who are multi-lingual (that is, in spoken language) and who tell me of how easy it is to pick up certain languages compared to others, not because they’re easy but because the concepts and structures are similar to that of a language they’re already fluent in.

If I were to give my own opinion I’d say that if there’s any language that is unfamiliar to a family of languages it would be VB for its peculiar conventions syntactically compared to most other languages. Ask a Java developer to shift over to C# and they’ll say “That’s simple, I’m already familiar with this flavour of syntax.”

So is there meaning in choosing between the languages? Yes, if familiarity leads to higher productivity then there is method in the madness, and it’s tangibly rewarding.