Many have wondered why Microsoft is giving a different treatment to VB.NET compared to C#, why VB.NET developers are paid less than C# ones and if they should worry for their future or not. In a podcast, Lisa Feigenbaum, PM in .NET Managed Languages Group, assures the VB.NET community that VB definitely has a future.
Lisa explained why VB.NET and C# used to have a different perception: it was a Microsoft strategic decision in the first place. Microsoft did not only want two different languages with two different syntaxes running on the CLR, but they wanted them to be different in their features, so the two languages went on quite different paths in the .NET world. Since most of the related documentation coming out from Microsoft contained C# samples and less VB.NET samples, everyone concluded that VB.NET is less favored and possibly it will die in time, not having enough support.
According to Lisa, in the beginning, Microsoft tried to differentiate the two languages by implementing different features in each of them, but many times the VB.NET customers requested to have C# features, while C# customers wanted VB.NET features, so in the end a decision was made to keep both languages in sync. Also, the number of VB.NET developers is slightly higher than C# ones and Microsoft won’t kill VB.NET because it is not in their interest to do so. This commitment was reinforced when the two design teams were joined together some 18 months ago in order to co-evolve the languages.
Anders Hejlsberg, Chief Architect for C#, oversees the development of both languages to make sure they both progress. After he is making a decision regarding some feature to be implemented by C# and VB.NET, the respective design teams split up in separate rooms to design the implementation of the feature according to the syntax and the overall design rules for the language. This process has two results: the languages keep adding the same set of features, and the languages maintain their personality and do not necessarily try to copy the way the other is implemented. This will ensure that VB.NET will not be eventually absorbed by C#.
The languages are converging rapidly. Currently, the only applications that can be done in C# but cannot be done in VB.NET are XNA games because there are no project templates for VB.NET. But Microsoft wants to completely close that gap so the two languages would be completely equal.
The results of the joined effort will be seen more clearly in the next version of Visual Studio. VS started initially in C, C++, but VS 2010’s editor and compiler will contain more managed code than before, and that means more C# and VB.NET code. Neither VS nor Office do not start having all managed code over night because there is a huge amount of valuable code already written, but new code is generally managed one.
The fact that some studies show VB.NET developers being 10-15% paid less than their C# colleagues may be due to the fact that the perception about VB.NET has still not changed that much and more time is needed to realize that those languages are equal and treated as equal by Microsoft.
Community comments
The difference between a VB and C# developer...
by Michael Hedgpeth,
Look to VB6 for the answer
by Al Tenhundfeld,
we missed vb6
by coc kiest,
Re: we missed vb6
by Sten Ten,
why you so shure that they have any difference?
by Avram Korets,
Re: why you so shure that they have any difference?
by Reinier Post,
More future for VB6 than VB.Net
by Sten Ten,
VB6 programming
by Sten Ten,
No future for VB.NET, but a big future for VB6
by Marius Orion,
The difference between a VB and C# developer...
by Michael Hedgpeth,
Your message is awaiting moderation. Thank you for participating in the discussion.
I had a friend who used to be a VB developer and is now a C# developer. He told me, "Do you know the difference between a VB and C# developer? $10,000." As long as that continues I can't see why someone wouldn't go with C#. It's in their best financial interest to do so.
Look to VB6 for the answer
by Al Tenhundfeld,
Your message is awaiting moderation. Thank you for participating in the discussion.
Despite its many real deficiencies, VB6 continues to be a very widely used language.
I understand the desire for language feature parity, and I think it's a good decision for the framework and the community. But there are other factors to consider. Will the tooling and RAD support be equivalent between languages? Will the focus of MS be identical? For example, will the same GUI wizards exist for both languages, will SharePoint development be as easy in both languages, etc. I'm not implying either language is better for those tasks now; I'm merely saying that language features are only one part of what makes a language successful, especially in the Microsoft world.
I expect both languages to exist for a long time, with the demographics broken down mostly by where you're coming from. VB.NET will continue to be more popular with people coming from VB6 and MS Office programming, like Access or VBA scripting in Excel. C# will continue to be more popular with Java converts and polyglots who started not in .NET. I personally came to .NET from VB, but with 2.0 and especially 3.5, I find C# to have a much more expressive and clean syntax.
we missed vb6
by coc kiest,
Your message is awaiting moderation. Thank you for participating in the discussion.
To me, VB.NET is a big mistake. People used VB because of its simplicity, that is the reason why VB6 was so popular. Unfortunately VB.NET went different direction relying on the heavy framework. It should be called B# instead.
Why use VB.NET since there are C# and Java?
VB was dead when microsoft abandoned VB6.
why you so shure that they have any difference?
by Avram Korets,
Your message is awaiting moderation. Thank you for participating in the discussion.
According to capabilities of reflector(www.codeplex.com/reflectoraddins) your assumption that VB have any difference to C# sounds strange.
Both of them build on MSIL - so they can be convertible with utilities like reflector.
Re: why you so shure that they have any difference?
by Reinier Post,
Your message is awaiting moderation. Thank you for participating in the discussion.
That's what I thought, but it's not quite so easy.
Reflector doesn't translate everything perfectly. Last time I checked, VB.NET events and event handlers were still a problem, and there were some more (some obvious, e.g. comments and regions).
More future for VB6 than VB.Net
by Sten Ten,
Your message is awaiting moderation. Thank you for participating in the discussion.
And now in 2014 VB6 support is just being extended to 2024. Meanwhile VB.Net is taking a backseat to C#, Microsoft don't even bother giving VB.Net code samples anymore.
visualstudio.uservoice.com/forums/121579-visual...
Re: we missed vb6
by Sten Ten,
Your message is awaiting moderation. Thank you for participating in the discussion.
But VB6 is still widely used. The Tiobe index shows VB6 being the seventh most popular language, ahead of JavaScript and VB.Net
VB6 programming
by Sten Ten,
Your message is awaiting moderation. Thank you for participating in the discussion.
As dotNet is moving to open source why do Microsoft refuse to open source the VB6 programming language ?
Yet VB6 and VBA programming continue to be widely used.
No future for VB.NET, but a big future for VB6
by Marius Orion,
Your message is awaiting moderation. Thank you for participating in the discussion.
in 2015 it has a loooooooooooooot of support from programmers !