Recently, I received an email comment on a blog post I wrote roughly 3 1/2 years ago.

I had completely forgotten about writing the post, but as soon as I saw the title I remembered every word of it. It also got me thinking about who the guy was that wrote it... then and now.

It’s these changes in latitudes, changes in attitudes... Nothing remains quite the same.

With all of our running and all of our cunning, if we couldn’t laugh we would all go insane. -Jimmy Buffet

That blog post, cleverly titled "Hi, I’m Chris and I am a VB.NET developer" (which you can find here: was something of a battle cry for disenfranchised VB.NET developers and marked my opening shot in the Language Wars of the previous decade.

Not long after writing that post, I set up a website called where people could blog about VB, post code samples for various SDKs that didn’t officially support VB, host their own VB projects, etc. Don’t bother looking for it. It’s long gone now. It died a lonely death of neglect and indifference.

I remember writing numerous missives to Microsoft on various insider lists, decrying their treatment of VB.NET and the community of developers that had embraced it.

I gave a lot of talks at user groups and code camps that reinforced the concept that "Yes, you CAN do it in VB" whether it’s supported or not. I also publicly called out Microsoft’s own people for making VB cracks and not treating the language or its developer community with respect.

That Was Then, This Is Now

Reading that blog entry again after all these years felt a lot like reading someone else’s writing. Sure I’m the same guy and in a lot of ways, I haven’t really changed much, except on one particular point:

I no longer call myself a VB.NET developer.

In fact, I don’t think I’ve even looked at any VB code in the last 18 months. Prior to that, I had a couple of VB gigs, but it was all support and maintenance, certainly no new work.

When I’m starting a new project, it’s in C#. Not that it’s a conscious decision, in fact it’s not a decision at all. It’s just automatic.

I don’t know that I can really pinpoint the moment everything changed. I think it was a gradual evolution. Less VB work, more C# work. Eventually, no VB work.

I’m at the point now where I’m better at C# than VB. Without thumping my chest too much, I’d even say I’m significantly better in C# than VB.

The War Is Over

Have you ever see that episode of Gilligan’s Island where the Japanese sailor shows up at the island and doesn’t realize that World War II had been over for years?

I get that same feeling sometimes when I watch the conversations that still take place among the VB holdouts every time a new SDK or feature comes out from Microsoft with support for C# only.

There was a time when it made sense to have both. There were a lot of people heavily invested in VB6 and Microsoft needed to get people onto .NET. The message in 2003 was "pick the one you can be most productive in" and for most VB developers, VB.NET was the logical choice. That was eight years ago.

Nearly everybody who was going to move from VB6 to .NET has done so by now, and if they did it in the last two years, even money says they probably picked C# instead of VB when they did.

Moving Forward

I’m not saying VB is a bad language, or that it’s inferior to C# in any way. It’s not, and I firmly believe that, but it is a waste of resources to continue to produce VB.

It comes down to this: If Microsoft is going to continue to produce SDKs and toolkits that don’t support VB, then they need to just pull the trigger and do away with it.

On the other side of the coin, if Microsoft is going to strive to make both languages functionally identical, and have language parity on every new platform or SDK, then again I ask... why bother? If they are going to be the same in every way, why do you need two?

Enough already, the war is over. It’s time to retire VB and redistribute those resources to other teams.