views:

547

answers:

8

A big company says At least knowledge not to ask "Why don't you use C#?" in its job requirements. And as a C# coder I wonder why do they prefer vb.net instead of C#.

Also a Microsoft MVP uses vb.net in his Silverlight applications. Is there something Microsoft won't tell us?

+13  A: 

Since VB.net and C# are both CLR languages, from a techincal standpoint, the end result is nearly the same.

Why use VB.net, perhaps because the team is more familiar with it.

Or, the existing codebase was already in VB.net.

Or even that every customer/client of this company wants VB.net

Alan
I don't agree with your first statement. You can code MSIL by hand and, *technically*, the end result would be the same too. But what do we mean by "technically"? Software development is about people writing code; the people part is crucial. A language's usability, readability and other "-bilities" are important. In other words, the fact that various languages end up compiled as the same thing does not make them equivalent for everything. Are VB.NET and C# equals in terms of usability, readability, productivity, expressivity, etc.? That is the question to address.
CesarGon
No, you're arguing semantics. The OP, and his original question asked why would someone say "don't ask 'Why don't you use C#?'" not "Which is a better language" or "What is the difference" etc.I pointed out the truth: C# and VB compile down to MSIL so the end result (technically) is the same."Are VB.NET and C# equals in terms of usability, readability, productivity, expressivity, etc.? That is the question to address."No, the question to address is the one the OP asked. And the question you posed is subjective, and will be *HEAVILY* biased towards peoples personal preferences.
Alan
+1 for Alan: Without source code anyone would be hard-pressed to determine what language IL was compiled from.
AMissico
+3  A: 

People use the language that they're most familiar with.

Even though they're both CLR languages there are structures that work slightly differently in each (for loops in c# vs VB.net are a good example), so, it only makes sense to use that one that you're comfortable with.

Donnie
+4  A: 

VB.NET has inline XML literals, which make building XML structures in LINK to XML much easier.

John Saunders
true. for me the only reason, but if you prefer vb, I'm sure there are many reasons.
kenny
+8  A: 

We had applications in classic asp and used vbscript. So when we upgraded to .Net it was a natural progression to use vb.net. Same would apply for people coming from VB 6. Likewise, C# would be a natural progression for someone coming from C++ or Java.

Chad
+12  A: 

That company has a point:

  • A good programmer will know that VB.NET and C# are fairly equivalent languages.

  • An inexperienced programmer will hear the word "Visual Basic", turn away in disgust and ask "why don't you use C# instead".

In general, avoiding VB bashing (or language bashing in general, for that purpose) is a common sign of maturity and experience in programmers.

So, this requirement doesn't necessarily mean that the company favors VB.NET for some reason or another. It might just mean that they don't want programmers who haven't gotten over the "my language is better than yours" phase.

Heinzi
+1 Exactly: An excellent point.
AMissico
Very good answer.
chiccodoro
Well said! Plus VB.net has the rather nifty **handles** keyword. You'll almost never lose track of your event handlers again!
Reddog
+6  A: 

Before C# 4.0 and dynamic (and the improved COM interop and optional parameter handling), VB had a much easier time with COM code, especially things like the Office APIs.

With that fixed in 4.0, there is very little to pick between them. Xml literals? meh - I don't write that much xml that I care (and I've done plenty of xml).

Disclosure: I "cut my teeth" back in VB6, moving to C# in .NET 1.1 - haven't looked back. These days, my VB is mainly read-only, but I don't have a problem with VB - simply I prefer C#.

Marc Gravell
I cut my teeth on C/C++ back in late '80s. I moved to other languages, then finally to VB5 and haven't looked back. When .NET came out, I was like, "this is how it is suppose to be." C# 4.0 finally caught up to VB.NET. Today, I use both, but I prefer VB.NET it is so much easier and faster to code.
AMissico
I always like reading your posts for some reason. I feel your knowledge seeps into my brain like the Riddler (Jim Carrey).
Sergio Tapia
+1  A: 

Being language neutral is an advantage in today's employment market. A potential employer does not want to hear that you think they chose the wrong tool for the job before you even start. That shows that you will probably have less enthusiasm for the job than someone who is either passionate about VB, or al least doesn't care which tool set they use.

Ultimately you should derive your satisfaction from doing a job well, not the tools that you used to get that job done.

fivebob
+2  A: 

You could answer with another question: "Why not?"

Is there something specific that would stop me from using VB.NET that would be possible only and only in C#?

Isn't it mostly about syntax?

Agree 100% with Heinzi: It's just the term 'Basic' that usually provokes a negative reaction.

Marius G