InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Is There a Future for VB.NET?

Posted by Abel Avram on Jun 23, 2009

Sections
Development
Topics
Language ,
.NET Framework ,
.NET
Tags
Visual Basic.NET ,
C#

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.

The difference between a VB and C# developer... by Michael Hedgpeth Posted
Look to VB6 for the answer by Al Tenhundfeld Posted
we missed vb6 by coc kiest Posted
why you so shure that they have any difference? by Avram Korets Posted
Re: why you so shure that they have any difference? by Reinier Post Posted
  1. Back to top

    The difference between a VB and C# developer...

    by Michael Hedgpeth

    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.

  2. Back to top

    Look to VB6 for the answer

    by Al Tenhundfeld

    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.

  3. Back to top

    we missed vb6

    by coc kiest

    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.

  4. Back to top

    why you so shure that they have any difference?

    by Avram Korets

    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.

  5. Back to top

    Re: why you so shure that they have any difference?

    by Reinier Post

    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).

Educational Content

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.