Follow @RoyOsherove on Twitter

Why I write in Both C# and VB.NET

I keep getting this question: Why do I write some posts in VB.NET and some in C#.

Short answer:

·         Future employers like to see that I’m fluent in both

·         I want to be able to move between them seamlessly, as I believe many future projects will hold code written in more that one .Net language, mostly these two…

Long answer:

·         Fact is, the people who sign the checks in this industry don’t “get” that it’s all about the runtime, that the two are one and the same, that once you know one, you can learn the other in 1 week and be just as productive

No. They know that “VB.NET is VB.NET and C# is C#”. “I need a VB.NET programmer for this position, not a C# programmer”. As lame as it sounds, that’s exactly what we’ll all have to provide them. We’ll all have to know more than one .net language (perhaps they should just be called “.Net syntaxes”) in order to appeal to more available jobs.

The fact that these syntaxes are the same under the hood is too much of a “small technical detail”. So much so, that employers (unless an experienced technical team lead will do all the hiring process) cannot comprehend that any C# developer can be a VB.NET developer, and vice versa.

Perhaps in a few years it will sink in, but today, as I get calls from places, that awfully familiar dialog keeps popping up :


“How many years of experience have you had with [.Net language]?”

“I’ve been doing .Net for about 2 years now”

“OK, so how many of those were using [.Net language]?”

“Um, 2.”

“OK, so 2 years in [.Net language]. Any XML experience?”

“Yeah, lots. It’s all about XML in .Net”

“OK, but have you worked with XML using [.Net Language]?”

“Yeah, I did”


And so on….

·         There are many features in each of these languages that I like. I actually enjoy writing code in both of them.

·         One thing – VB.NET is tons more productive than C# is. The number reason? Better Intellisense.

Why is it that when I use VB.NET I can set a property which accepts an enum to some value, and when I type “=” I get an intellisense combo which lays out all the enums before me? Just select and press tab and you’re there.

If I do that in C#, I have to bloody remember the name of the enum, type “.” And only than do I get Intellisense

Why the hell is it not in both languages?

Dudes – you have to make C# more productive.

·         I don’t like VB.Net’s verbosity. It sucks. It’s like I’m writing an essay every time I want to implement a protected overloaded method in my derived classes.

·         C# is much more structured and concise. I like its clarity and purity. It’s just cool.


Tell you the truth – when I just got into .Net – I left VB6 behind. I didn’t even give a blink in VB.NET’s direction. I wrestled with C#’s curly braces and semicolons until I could do them automatically, and I loved every minute of it.

Than I re-discovered VB.NET, and it’s like returning home. Everything is familiar, and so easy.

I’ll try to mix them both in my posting examples as much as possible. I really love them both.

You should know them both blind. Do it for yourself if for no other reason. You’ll thank yourselves when you come across that first project that involved the language you thought you’d never use.

User Interface Design For Programmers

.Net Rocks with Tim Huckaby