views:

1188

answers:

9

As a company it's important to choose which .NET language to go with. Many have chosen C# but are there any actual numbers out there to support going with C# over VB.NET? How many C# developers are out there vs. VB devs.

I know that a good developer will be able to work with any language but the choice of language might dissuade a person from joining a company if it's different from his or her preferred language.

Update: I should clarify that I'm looking for concrete statistics on this although I'm not sure whether they exist at all.

Update2: Let me be clear. I'm fully aware that languages can be intermixed on a project and that C# and VB are mostly functionally equivalent. That's not what I'm interested in. My goal is to gain factual insight into the spread of devs on those two language because it does make a difference during hiring. A VB dev will usually do C# happily while the reverse is far from true. C#'ers er a little more "snobby" (I even hesitate to write it but I'm a C#'er myself and feel that that makes it all right :)).

+11  A: 

I very strongly suspect that any figures you get will be massively inaccurate estimates - e.g. based on jobs listed, or some poll which almost certainly fails to take into account variations in industry.

As an example of the kind of thing I mean, it was often said prior to VB.NET that there were more VB developer than developers in any other language - but no mention was made of what kind of development they did.

While there were undoubtedly many professional VB developers who really did just write VB for a living, I suspect that the majority of those counted as VB developers were people like my father, who used VB for the occasional task, but who spent most of their time working on completely different things.

I never saw any figures which even tried to take this into account. I suspect you'll find a similar lack of qualified information in the VB vs C# case.

Jon Skeet
A: 

You should tick "community wiki" when ask this sort of question (not programming related). Otherwise, you will get a lot of comment on rep-farming. I've learn what it is.

I am neither, but Java Dev.

manetic
+5  A: 

At this point the two are functionally equivalent in many ways in modern .Net applications. Read several MSDN .Net pages and compare the VB and C# code used in the examples side by side. After awhile it would be easy to write one example just by looking at the other.

One difference in the VB development environment is "background compiling", where the IDE periodically compiles when you make changes, vs. automatic compiles in C# (Visual Studio). Some people love it, some people hate it.

However, VB is the dying beast, and C# is the tool with sharply rising adoption.

Stephen Wiley, marketing product manager at Apress has reported "C# titles outsell VB.NET title books handily, by somewhere between a 2–1 and 3–1 margin."

A similar ratio can be found by many other methods.

In addition, it carries more similarities to the style and usage of Java, making it easier to be ambidextrous between the two languages. Many applications still need to be maintained in VB, but for a brand new project with a choice I can't imagine choosing it.

danieltalsky
A: 

You don't actually need to make a choice of language if you've already chosen the runtime.

All the first class .net languages are more than capable to be used intermixed. I don't think it would be a bad idea to let the programmer doing the task choose the best tool for the job.

Especially if the available options are just VB.net and C#, you're not going to run into many programmers unable to read either as long as they are comfortable with one.

Kris
There is a serious problem with this line of reasoning in that just because you can and just because *you* choose FooLang does not make that compatible with everyone else on your team and the guy who maintains your code two years later who all work in BarLang. You have to accommodate local culture.
annakata
I wholly agree. There are many things to consider when running in a "mixed" environment and I've personally felt the pain of doing so in earlier versions of VS. It's not really what I'm looking for anyway. I need to know actual statistics for devs out there using one or the other.
Søren Spelling Lund
I agree with Kris. I have junior developers with little experience writing either C# or VB.net with no problems
Mauricio Scheffer
IMHO, if a programmer is competent in one it must be nigh impossible to be incompetent in the other. (ofcourse this doesn't mean you don't have to take culture into account, i'm just saying...)
Kris
I'm in an environment right now where I'm maintaining a winform VB.NET app that we have in our C# ASP.NET product, and even though I'm very competent in C#, I'm moving more slowly because I had to look up how VB.NET does things. Quick, what does Friend mean? What does Shadows mean? (point).
George Stocker
Not knowing little details doesn't make you incompetent, not being able to look them up would. But anyway; maintenance != development. You'd rather have the original developer missing the deadline by a margin than spending a few extra minutes finding a minor bug before being able to fix it?
Kris
+6  A: 

At school I study C# but the job I work for requires the use of VB.net . The reason isn't because one is better than the other, but the first programmer who started working on the product the company offers only knew VB.net and the new developers like me continued to code with it just to keep a standard.

Personally I prefer C# since I find it to have better coding practices and is similar to languages like java or javascript, ie makeing it less confusing.

Drahcir
I have been in the same boat with 2 employers now.
StingyJack
yep same here. A software house that grew from access to .net I prefer c#
alexmac
+2  A: 

I gave the same answer here:


While both languages do 'essentially the same thing', headhunters and businesses don't care about that, they care whether or not you'll be able to support and extend existing business applications. In my travels on Dice.com, Careerbuilder.com, and monster.com, I see more call for C# and ASP.NET than I do VB.NET.

In my (unscientific) survey of these sites, I found that there were one third more job openings for C# than VB.NET -- A non-trivial difference if you want to make yourself more marketable.

It may feel like a Coke and Pepsi difference, but it isn't. A VB.NET programmer still must learn C# to expand his marketability, but a C# developer need not do the same, since he already has more opportunities available.

There is some thought that VB.NET programmers are the majority of programmers, but while I see statistics quoted, I don't actually see the reports themselves, nor when they were created. The programming world moves quickly, and while VB.NET accounted for the lion's share of code samples in 2003, it doesn't seem that way in 2008.

If Google trends are any indication, C# is very far ahead of VB.NET -- A four to one difference!

George Stocker
job openings are hardly a reference. There may be a lot more VB.NET people employed and working and a log fewer C# people, so the job postings for VB.net get filled immediately while the C# postings languish at monster. Same with Java. High skill, low pay: nobody wants the job.
Christopher Mahan
Of course, that may be completely wrong, and maybe there are a large number of C# people going into projects, then leaving half way, leaving the company to have to keep posting over and over for the same position... All this to say that job postings are hardly accurate for gauging usage numbers.
Christopher Mahan
Economic theory would disagree with you.
George Stocker
+1  A: 

The fact that more books sell for C# or some website posts more C# jobs doesn't mean C# is more prevalant.

For hobbists and people learning to program in school and many of those jobs being short term, contract, cheap jobs, C# gets more press because it's newer and specifically targeted by Microsoft to pull over the C++ and Java developers into the ranks of a Microsoft product.

If you are in any large company who write mission-critical applications, interface with other software systems, the majority of those applications are written in VB since it's eays to understand, has been around for over a decade and there are more developers actually using it who keep their jobs and aren't job hopping building the latest trendy site.

Technically, for .Net, they use the same CLR, so it doesn't matter. BOTH get compiled down to the exact same machine code.

I would hire VB people faster than C# people because from experience, VB people have been around longer, have more experience and are less likely to be newbies who are just trying to say anything to get the job. I think maybe VB had always had it's detractors because it has been around so long and matured through several iterations.

If you are hiring people to help you, you should really look for experience and not which paint brush they use unless you're doing mission-critical, then you need to think.. if this guy gets in a car wreck or gets mad, how easily can I find someone to replace him or her who are experienced? Again.. and not someone who just bought a book...

Harry Potter outsells C# books, but people don't program in Harry Potter. Remember COBOL? Schools taught COBOL and FORTRAN for what seemed like centruies because they were teaching a structure.. then you got out and found all the companies who had solid jobs use VB and SQL or Java and Oracle.

Both work. Both are good. The person behind the keyboard makes the difference.

IMHO.

Thanks!

A: 

I personally prefer the c# c-like syntax

';
Maghis
+2  A: 

You might want to consider the Tiobe Index as well.

The TIOBE Programming Community index gives an indication of the popularity of programming languages. The index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. The popular search engines Google, MSN, Yahoo!, and YouTube are used to calculate the ratings. Observe that the TIOBE index is not about the best programming language or the language in which most lines of code have been written.

The index can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system.

Currently VB is #5 and dropping while C# is #6 and climbing.

Ben Griswold