If all the .NET languages compile down to CIL, does that mean that the language behind it (VB.NET, C#, etc.) doesn’t really matter? Or does the compilation process treat code differently between the languages? Are there notable differences?
Share
Yes, that’s exactly what it means. No matter which language you have used, as long as it is CLS compliant of course, the CLR doesn’t care at runtime as it eats MSIL.
Different languages provide different syntaxes but in all of them you should be able to achieve the same final goal. C# and VB.NET being the flagship .NET languages you can expect most features, progress and support from Microsoft (and StackOverflow :-)). Obviously each language has its own ways of doing things.
There is one important thing to notice though: there are features that are defined in MSIL but not implemented in C#/VB.NET (yet). For example in MSIL you can define an enum or delegate generic constraint but not in high level languages. Jon blogged about this interesting feature.
As far as which one of the two you should choose make sure you never ask such a question here or it is unlikely to survive 1 min before it gets closed.