7

I'm not interested in starting another "who has the bigger member" VB vs C# debate (https://stackoverflow.com/questions/158229/what-are-the-pros-of-vb-net seems to cover that already) though I am interested in indirect differences which may influence developing in one vs the other. All my commercial .NET development was desktop apps in VB until the last 3 months where I had a web project and decided it was a good opportunity to force myself to learn C#. In the course of doing so I've noticed a few non-technical differences:

  • A lot more mature open source apps and thorough examples are available in C# than for VB.

  • Third party vendors of add-ins for things like refactoring and documentation tend to support C# better than VB (if at all), with VB support for similar features from comparable C# versions often lagging behind or absent.

  • ASP.NET jobs targeting C# seem to pay around 15-20% more on average than otherwise identical jobs in VB (at least in Australia, looking on seek.com.au and careerone.com.au for reference).

The jump to ASP.NET, MVC and C# presented a lot of speed humps at once but I think was well worth it. The decision I need to make now is whether to put more energy into pursuing C# for future .NET development or if I might as well stick to VB. Are there any other points of difference between the language (other than direct language feature comparisons already covered) that one should consider in this instance?

Community
  • 1
  • 1
nathanchere
  • 8,008
  • 15
  • 65
  • 86
  • 3
    By "biggest member" are you referring to method, property, event, field or other? – John K Jan 07 '10 at 02:52
  • 1
    What's the question here, again? – Joel Coehoorn Jan 07 '10 at 02:53
  • 4
    The question is "I believe that C# is a good skill to learn for career reasons, for the *non-technical* reasons I have stated in the question. Am I right, given my stated experience?" It's a fine question. – MarkJ Jan 07 '10 at 09:41

6 Answers6

4

I find that VS does more automatic code completion for VB than C#.

It's very useful to know both languages and I personally have to get better acquainted with C# so that I'm comfortable applying for C# jobs which should triple my options.

AUSteve
  • 3,238
  • 21
  • 36
  • 3
    Good point. One of the most frustrating things about moving to C# is the number of things VB picks up while you're coding which C# doesn't, resulting in a "code-compile-finderror-fix-repeat" cycle. – nathanchere Jan 07 '10 at 22:06
  • 1
    Using a tool like ReSharper can provide a lot of as-you're-typing assistance while learning C#. – Lance McNearney Jan 12 '10 at 19:24
  • After many fruitless attempts at integrating programs like CodeRush into my workflow, ReSharper has finally won me over. Nice recommendation. – nathanchere May 06 '10 at 01:27
  • I like the back ground compilation feature of VB. Something which was lacking in C#. VS 2008 sp1 introduced it for C#. But still lacks when compared with back ground compilation feature of VB – AlwaysAProgrammer Oct 06 '10 at 18:02
4
  • At the Microsoft 2009 Mix Web developer conference, all the presentations that I attended included code examples in C#, not VB.

  • In StackOverflow, notice how questions tagged c# largely outnumber vb.net and vb.

  • John Skeet wrote C# in Depth, not VB in Depth.

James Lawruk
  • 30,112
  • 19
  • 130
  • 137
  • 1
    +1 It's a consideration, although Microsoft have claimed (again) that VB.Net will be given equal status with C# in future – MarkJ Jan 07 '10 at 09:46
  • 2
    VB in Depth would be about twice as big. VB, from a syntax and compiler standpoint, is a far more sophisticated language. – Jonathan Allen Jan 12 '10 at 19:35
2

One thing that has been widely stated when I have participated in hiring (both as a hiring manager, as well as a candidate) is that C# and Java are close enough that converting a candidate from one to the other is fairly easy, and that this is not true for a VB.NET candidate to C#, or Java. This statement has even been extended to C++, saying training a C# or Java developer (to code in C++) is easier than a VB.NET developer.

Though I tend to disagree (I think it is more about how the person sees programming in general) I know that several large, reputable firms will accept candidates for C# or Java jobs that list C++, C# or Java experience. These same firms will in general not look at candidates who only list VB.NET, or list VB.NET as their primary language.

GrayWizardx
  • 19,561
  • 2
  • 30
  • 43
  • Can you list those firms, so we can avoid them? Sounds like their reputations are undeserved. – MarkJ Jan 07 '10 at 09:42
  • 5
    Its one reason why I encourage people to list their languages in one section (C, C++, Java, VB.NET) without years of experience and list their Experience in another section (projects, etc). Many firms use HR to process resumes before recruiters get them and the "filter" is looking for specific stuff (i.e. must have C experience, etc). A recruiter may know the experience is transferrable but the filterring person (HR, outsource firm, etc) may not. – GrayWizardx Jan 07 '10 at 22:17
2

Specifically for web development, becoming proficient in C# made writing javascript (and doing complex things using jQuery) much easier because the syntax is so similar.

Lance McNearney
  • 9,410
  • 4
  • 49
  • 55
  • 1
    Aside from == and the use of braces, C# and JavaScript are nothing alike. – Jonathan Allen Jan 12 '10 at 19:37
  • 5
    I didn't say they were the same or even close... Just that the syntax is similar. For example braces, semi-colons, operator logic, if statements, switch cases, etc. It's much easier to switch back and forth between JS/C# vs JS/VB. – Lance McNearney Jan 12 '10 at 19:55
  • 4
    Saying C# and JS are nothing alike is being ignorant, pedantic or both. I think it's a perfectly valid answer. – nathanchere Jan 12 '10 at 22:43
1

I agree with your points, particularly the first. I would add that it seems there are more C# developers out there than VB.NET. If you are looking to hire another developer, you may get more (quantity or quality) from the C# pool. And employers, perceiving that C# is more popular, will go in that direction, and there will be more demand for C# programmers (hence the higher salaries/rates you noticed)

MikeW
  • 5,702
  • 1
  • 35
  • 43
  • 3
    Lisa Feigenbaum, a Microsoft PM in the .NET Managed Languages Group, said (in June 2009) there are slightly more VB.NET developers than C#. http://www.infoq.com/news/2009/06/Future-VB.NET – MarkJ Jan 07 '10 at 09:45
  • 2
    It may be a perception. I just checked jobs in New Zealand and got 16 hits for vb.net, and 102 for C#. That's open positions obviously, not developers. Maybe there *are* more VB.NET developers, meaning C# developers are more scarce and therefore more in demand? – MikeW Jan 07 '10 at 20:01
  • 2
    I think the statement should be: there are more people who can/do use VB.NET, but more C# developers who are PROFESSIONALLY EMPLOYED. In thinking of it like that, I guess I can see a motivation for not accepting VB.NET applicants. – nathanchere Jan 07 '10 at 22:07
-1

I know that this is an old post but I'd like to add one other factor: all the new stuff gets done in C# first. This comes from my experiences with early WPF development. All the examples where in C# and we were working in VB.Net. It just took extra time to translate. Another example is lambdas, initially you could use expressions (single line) or statements (multi-line) in C# but only expressions in VB.Net.
When .Net was first rolled out, I think that there were a lot of VB6 folks who didn't really get .Net and that it was a whole different animal. I think that those people were partially responsible for the negative perceptions of VB.Net. But that was 10 years ago now and no longer a factor.