C# vs VB .NET - As far as I'm concerned, the debate is now *over*

I've ummed and ahhed about the whole C# vs VB .NET thing since first getting into .NET.  Although I have a C/C++ background, I moved into VB when working on DNA applications.  When moving to .NET, I figured I'd stick with VB .NET.  As far as I was concerned, the tools were as good as each other.

Well, there is one problem with VB .NET, although it's really more of a VB .NET and VS .NET "compatibility" problem.  When working on VB .NET projects, VS .NET will scan your code to look for errors.  On bigger projects, this leads to unreasonable slowdowns of the environment.  This bug, although I whinged to Microsoft about it during the Everett beta is till in Everett, so I've been recommending to my clients for a while now that they go with C#.

Thanks to Jonathan Goodyear, I discovered something *very* disturbing.  In his blog article "VB .NET Inferiority Complex - My Theory Validated", he pointed me in the direction of a survey that Visual Studio magazine ran of developer salaries in the US

Here's some data:

C# developer: $98,813
VB .NET developer: $72,959
VB *6* developer: $72,461

I'm *SORRY*!?!?  Are you telling me in the US that VB .NET and VB 6 developers have PAY PARITY?  I'm based in the UK, so I treat the US as a good indicator of where the market is going to go, and what I'm seeing here tells me that any .NET developer working in VB .NET is making a *BIG MISTAKE*. 

It's damn clear that VB .NET developers in the US aren't being rewarded for their efforts.

(For those reading this before my keynote at the .NET X Summer Conference tomorrow, apologies, because I've just spoiled it for you!)

There's an article on Visual Studio Magazine here about why C# developers earn more.

3 Comments

  • I couldn't agree more that the debate it over. Both sides won.

  • Matt, I'm not pro vb or pro c#. I'm pro .NET. That said, the "bug" you mention is a feature which I wish would be added to C#. Having the compiler run in the background to provide syntax checking is a huge help to many of the new developers on my team. The performance problem is a huge drag, however use Everett (VS.NET 2003) and you'll notice that the performane problem is pretty much gone. We just moved a large 17 project vb.net solution with over 100K lines of code from VS.NET 2002 to 2003 in order to overcome the performance problems of 2002. The result: WOW! It's back to the way it was when we only had one line of code.





    VB.NET or C#? I don't care. Use what your customer/developer/mother wants. It's all the same to me, but don't ditch VB.NET just because of a poor performing feature. Upgrade.


    -adamc

  • If those figures are right then surely you should be recommending to your clients that they use VB. Think how much they'd save in staff costs!

Comments have been disabled for this content.