VB.NET or C# - which one to choose? I choose BOTH :-)
Joe Stagner discusses in a blog post based on reader feedback, if one should choose VB.NET or C# and he ends with that it doesn't matter. Well, I sort of disagree, but let me first explain in which way I disagree, before you judge me and burn me in the eternal fire. :-) It's semantical difference in thinking, as in straight terms, Joe is 100% right.
I've started my career as a VB and VBScript (classic ASP) "programmist" ;-) , and when .NET came I jumped on it, and of course went with VB.NET. It was easy step - .NET I mean - and has been the one correct choice ever since. But in the early days, I was also forced to learn C# due to some aspects in ASP.NET 1.0's server controls and bug in VB.NET - which forced me to write my controls in C#. And it was definately the best thing that has happened to me since. It forced me to:
- use both of the languages fluently
- choose the one language over the other based on the task
- not to do my decisions based on some general "bee in one's bonnet" or just for attitudinal reasons
I've grown to think that in .NET you really should master all the mainstream languages in a way that it actually makes it non-important thing what language you use or choose. With .NET it means thinking in terms of the Framework, 'seeing the trees for the Forest'. To access its services languages are just one of the tools (very important ones, of course). Your customers don't give a crap what tool you actually use - at least if they aren't technically-oriented, and not sure if your bosses do either unless it is some general decision of IT management or something - which it might be, though. There can be limiting factors, and they belong to life. :-)
Anyways, if the choice is yours as a developer - responsible for customer's satisfaction, responsible for your and your family's income and responsible company's success :-), you probably don't want to fall on language choice when there is your ass on the line in any case. You use what's best to use to get the job done, efficiently but correctly.
The VB vs C# debate has been there since .NET's first days. Partly, because MS's language teams basically compete with each other, and C# was promised to be the language, or at least was marketed as such. The debate has probably matured a bit over the years, but it's also healthy aspect in a way that it benefits not just language communities, but the entire framework (usually a new feature in a language spreads fast to the others in a way or another). Therefore it's good that the discussion goes on as long as it brings good results.