I have to say that Richard’s comments about C# vs. VB.NET are something that I hear all the time, that it is easy for a VB6 developer to pick up C#, and (just like Scott says) that just isn’t true at all. To pick just one example, case-sensitivity is a language ‘feature’ that leads to confusion and errors, and trying to work in that environment after growing up inside Visual Basic is a lot harder than people make it seem. In the end, a VB6 developer will be productive faster with VB.NET. Could they learn C# eventually? Sure, why not… but why should they when they can build wonderful .NET applications without having to learn a completely new language?
Metaphors are not always useful, but the same one comes to mind every time someone tells me that VB developers should just ‘pick up’ C#. Imagine if you will, an American has to start a new job and has a choice of two languages to work in… British English or German. Now, British English is not exactly the language they’ve grown up with, so since they’ll have to learn a bunch of new concepts anyway (signing-off on emails with “Cheers”, etc.) they might as well move to German. Richard says;
“I’ve said, VB.NET is not VB, and since a developer would have to learn principles of OOP and .NET principles like threading, exceptions, and delegates, the developer may as well learn a new language.”
Right… Hey you have some new stuff to learn, so you might as well learn even more while you are at it, no sense benefiting from any of your years of past experience. That doesn’t strike me as a logical conclusion, but I won’t pick away at Richard’s entire set of comments… I’ll leave that to Scott 🙂