Geeks With Blogs
Michael Flanakin's blog Food for thought...

I don't know how many times I've read articles and opinions on the whole VB vs. C# conflict, but it's really getting ridiculous. This latest spat (1, 2) seemed to be started by three articles in Visual Studio Magazine: Patrick Meader's Why C# Developers Earn More, Juval Löwy's Pick the .NET Language for You, and Kathleen Dollard's VB.NET Provides Power and Productivity. Each article is a good read, but I must make a minor point: The guest "opinion" made by Juval is not an opinion.

I have talked to Microsoft personnel who have been confessing the future of VB to be very different than C#'s for nearly a year, now. You will find that, for the most part, the only people who say that VB and C# are the same, or any derivation of the idea, are VB developers. One point that everyone must realize is that most Microsoft developers working in .NET are using C#. This is for a reason. I will not say what that reasons are, but there are several. I have said it before, and I'll say it again: I don't think VB is going away any time soon. I do think know it has a different path, however. And, in this, Juval is right. He was pointing out the differences that will be instilled in the Visual Studio so that developers know what they're getting into. Microsoft is trying to lure VB6 developers to .NET by instilling more RAD features into the UI. Well, these are generally features that C# developers don't want. I'm not going to say that they're not beneficial, but C# developers tend to be more of the "coder" type, where as VB developers are more "drag n' drop" type. You can't deny it - you know it's true. These features will be included when you are working in VB projects, and the C# feature set will be included when working with those types of projects. This is basically transparent to the user and there aren't too many differences right now, but the point Juval is trying to get out is that you need to be aware of the future of the tool so that you choose a language accordingly.

Read the letters, if you get a chance. Either way, there are a few things I'd like to say in response to them:

  1. There was no reference to VB6 developers moving to C#, just C++ to C#. Most of the C# developers that I know, including myself, were using VB6 because of the job market - more jobs were available. I know that I personally chose C# for numerous reasons, which I won't get into here, but I also have to say that I'm not the normal VB6 developer - I understand and praised the introduction of OO with .NET. Most VB6 developers should not be programmers, in my opinion. To quote a great speaker (and, I may be off on this), "Giving .NET to VB developers is like giving razor blades to babies."
  2. As a prior VB6 developer, I made good use of COM objects and classes. While this did increase the complexity of the code, it also helped a lot. As a matter of fact, it was the only way to do business, in some situations. This was a very mild version of OO for reasons I'm sure we're all aware of, but it was still useful. And, with these COM objects comes the DLL hell that was claimed to not apply to most VB6 developers.
  3. VB was not originally intended to support classes, but one of these letters seems to say that, because of this, VB should not be used in an OO environment. I may be misreading the letter, but that has to be one of the most ignorant comments I've seen in regards to the VB-C# argument. Extending the language to support OO was not an issue. The problem with VB.NET is the legacy developers...yes, I said legacy.
  4. Nobody said that C# was intended to be an end-all, be-all solution to development. Granted, Microsoft would love it if that happened, but it won't, and nobody thinks that (I hope). VB and C# are Microsoft's focus because that hits their main audience. I don't think Microsoft will ever ignore the other supported languages, but you have to take it for what it's worth. And, a lot of that is marketing. But, the fact is that every .NET-supported language has its own lifecycle. Don't expect changes in one to be implemented in the other without a fight.

I can keep going, but I think I've said enough...for now. I personally think that C# is a better language and would suggest that anyone considering .NET look at C# first. I can give a considerable list of reasons for this, but that's for another day. Right now, I just want to leave you with this: take heed to Juval's foresight. With upcoming versions of Visual Studio, we will see changes and those changes will not be intended to align languages. Microsoft wants to market .NET as a way to support multiple types of development. If they can say that there is a .NET-supported language to support all major types of systems, they will. THAT is Microsoft's dream. Imagine: .NET on phones, toasters, computers, TV's, tanks, and planes. The land of embedded systems remains practically untouched by Microsoft. Do you think that they don't know this? Of course they do. And, they are trying to get there. By widening the purposes of different languages, Microsoft is able to push its technology as a more viable solution.

[Original post Tue Nov 04, 07:01:59 PM UTC]

Posted on Friday, November 14, 2003 7:34 PM .NET , Development | Back to top

Copyright © Michael Flanakin | Powered by: