Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

...if the company used VB.NET instead of C# or vice versa? Would the language choice in .NET be a deal breaker for you and if so why?

share|improve this question

closed as not constructive by ChrisF Feb 14 '12 at 23:34

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

I would and I actually did on one occasion. –  user8685 May 3 '11 at 6:03
I knew programmers in general are a "religious" bunch, but I had no idea this many people won't consider a job based purely on language syntax. C# to VB is a lot like Coke to Pepsi - it's still a sugary, carbonated drink either way. –  Jeffrey May 3 '11 at 12:13
Yes I would, not because VB is bad but just because I feel C# is a much more powerful language and one that is more actively developed by Microsoft. Also, coming from something like C++ or Java, C# is a much more natural progression for me. I personally find VB overly verbose and confusing. –  Steven Ellliott Jr May 3 '11 at 13:27
Otaku...wow. That's the opposite of most people –  CaffGeek May 3 '11 at 13:43
@Developer Art: The world is centered around XML for me and it's a huge, huge area of most programming these days. I never said XML was important for you though. Just because C# is extremely verbose at handling XML and that has offended you that VB.NET is actually far better than C# in this regard doesn't mean you have to lie about things like succinctness or expressiveness. If you like C# because you're used to it, that's fine, but don't go into Macintosh-user drone mode that C# is somehow less verbose or more artful than VB.NET. That's simply a lie C# drones spread around. –  Todd Main May 4 '11 at 18:42

15 Answers 15

up vote 13 down vote accepted

For me, the language employed isn't the deciding factor - the problems that I'm there to solve are. Even if C# was language of choice, but the problems were fairly mundane, I'd be bored to tears as opposed to a job that employed VB but had some really challenging problems.

If both jobs had similar technical difficulty, then I'd start getting down to company perks, how much either was willing to pay and what employability is like for specialists in that language.

share|improve this answer

Assuming everything else is equal, I would absolutely turn down a VB.NET job in favor of one using C# or F#. I find C# a pleasure to code in, and enjoy writing C#. VB's syntax just irks me.

Having said that, working conditions, pay, or lack of other options could change my mind.

share|improve this answer
VB's syntax just irks me. Though it's true for many (I know this because I've been coding in C# from many years but I started on VB6 and then on VB.NET and then C#), but for those who come from VB6 background, it is a very quick to program in as it requires a lot less keys to be pressed than what C# requires. If you just count the number of semi colons and opening braces (closing braces comes by it's own) in a big project, that would be lot of keys. Also it is more readable than C#. For e.g. For Int i = 0 To 10 instead of for(int i =0;i<=10; i++) and IF i = 0 then do something. –  iSid May 4 '11 at 7:08
This readability might not be of that much use. But it is useful for the ones who have just started to learn simple programming. –  iSid May 4 '11 at 7:09
@Ismail: Just a thought, but some of the best architectural patterns require more keystrokes initially but are generally believed to increase productivity. –  Mayo May 4 '11 at 18:43
@Mayo: yay! COBOL rules ;) –  gbjbaanb May 4 '11 at 21:37
Sorry @Mayo, but can you please elaborate how do you think architectural patterns relate to language syntaxes? I might be missing some thing you are pointing to. The way I'm thinking of it, I don't think any architectural pattern that can be implemented in C# can't be implemented in VB.NET. –  iSid May 5 '11 at 11:46

Elaborating on my comment above, yes, I would turn down a job if it were VB.NET (in my case) instead of C#. I actually did turn down one job and stopped myself from applying to a number of other positions which indicated they wanted VB.NET.

"Why" in my case mainly consists of one consideration.

I wish to love or at least like what I do as my job. Working with a language you dislike on a daily basis is destructive to good mood and happiness. More to it, development on its own is a challenging activity, you always have plenty of things occupying your mind. It is destructive to efficiency if over and over in your mind do you return back to the thought how you despise a certain instrument you use and how it were much better if you didn't.

If you know in advance you will be having these thoughts, then you also know your future work has the potential of turning into a torture. Why try then?

UPDATE: Here's the funny thing. Many answers here imply that it doesn't matter either C# or VB.NET because in fact you're programming for .NET. I've heard the same thing on many interviews. I then asked:

- If it is of no importance which one to use would you allow me to use C#?

- No.

-- - - - - - - - Standing ovation - - - - - - - --

share|improve this answer
+ 1 for "Working with a language you dislike on a daily basis is destructive to good mood and happiness" –  artjom May 3 '11 at 11:17
Very good points, thank you. –  Michael Mello May 3 '11 at 11:32
I absolutely agree. I too have turned down working a gig which was using VB.net for a lower paid position which used C#. The use of VB is what turned me off because I do not care for it's syntax. –  Chris May 4 '11 at 18:11
it may be of no importance for us to say VB == C#, but for a company that has coding standards and a load of code that needs to look consistent to make maintenance easier, it is a big deal. –  gbjbaanb May 4 '11 at 21:19
I agree with whatever you say because I faced the same thing when I started on C# from VB.NET. development on its own is a challenging activity, you always have plenty of things occupying your mind. It is destructive to efficiency if over and over in your mind do you return back to the thought how you despise a certain instrument you use and how it were much better if you didn't.. This happened to me also. And it was just a matter of time which passed once I familiarized myself with the other language and it didn't took much of time as the concept is same. What changes is just syntax. –  iSid May 5 '11 at 11:58

Computer languages are just tools. Your focus should be on the actual job, aka the program you will be involved to develop, and the people you will work with. After 20 years of experience I have worked with many languages on many projects and with many people and I tell you that your least significant concern is the programming language

share|improve this answer

More than likely, but not for the reason you think. I've used both VB.NET and C# and I am capable in them both. I would more than likely turn down a VB.NET job because most of the time a VB.NET shop is less familiar with proper programming practices than a C# shop, due to VB.NET's past lives as VBA and VB6 (and VBScript). I have encountered VB.NET shops that didn't know or understand design patterns, software craftsmanship (e.g. the SOLID principles), testing, source control, or even proper OOP than I have C# shops.

That said, there are always exceptions (and I have seen some good VB.NET shops and bad C# shops, it's just the opposite is more common) - if I had a choice between a VB.NET shop using TDD and DDD and using NHibernate (insert other Alt.Net buzzwords here) or a C# shop that was using .NET 4.0 like it was .NET 1.1 with DataSets and everything in code-behind and drag-and-drop, I would choose the VB.NET shop, just more often than not the C# place understands the right way, and the VB.NET shop is all about quick-and-dirty spaghetti code.

share|improve this answer
Interesting observation! –  Michael Mello May 3 '11 at 22:49
+1- I've observed similar situations. I've seen a lot of "VB.Net programmers" who know absolutely nothing about VB.Net besides the syntax they learned in VB6. You can catch their spaghetti-only pattern when an event needs to be created and handled that cant be double clicked and auto-generated from the designer to the code behind. They might as well have the ability of someone who has experience with calculators. Names can be very decieving. –  Morgan Herlocker May 4 '11 at 18:42
Exactly. It's far more common to find "Morts" (in the bad sense, not the "Programming is just a job" sense), hacks and people that don't know anything in a VB.NET shop than a C# one, but there are always exceptions. I worked at a pretty good VB.NET shop for a short time - they didn't do everything how I would, but the code was well written and the lead knew his stuff - and I'm currently working at a C# shop that writes spaghetti code because they don't know better, so it just goes to show you that you can't judge a book (or a programming language, as the case may be) by it's cover. –  Wayne M May 4 '11 at 18:53
In short ability to read both is good. You can code in the one you like. –  iSid May 5 '11 at 12:03

I've been working with C# since .Net was 1.0. If I were going to switch languages now, it would be to something off the .Net stack. Not that I don't love it, because I do, but if I'm going to switch it would be to something completely different. A man with 2 noses.

share|improve this answer
Since i prefer curly braces, I myself would probably head towards PHP or Java since both of those are similar in construct and syntax. –  Chris May 4 '11 at 18:15

It wouldn't be an absolute deal-breaker. But it would be a weight on the "don't accept it" side of the scales.

If the job sounded interesting, good money, good location, good conditions, all the non-language-related aspects of the .NET development nice and modern (e.g. ASP.NET 4.0 dev), then sure, I'd be willing to take it.

But really, even though there is no colossal difference between C# and VB.NET.. I left the VB.NET syntax behind me about four years ago, and would prefer not to have it back. I agree with Joviee - it just irks me.

Also, since the last time I used VB.NET was in the .NET 2.0 days, I have no idea what the syntax for newer features such as LINQ, lambdas, extension methods, anonymous types, type inference, etc. are like. They could be horrible, for all I know.

share|improve this answer

I certainly would turn it down. I can't stand VB syntax - and for one job I had to work with it, but there was a silver lining in that we were going to convert VB.NET projects to C#...

The syntax is what annoys me most, its just too verbose. I will never accept a job again that requires me to code in VB.NET unless its a conversion project to C#.

share|improve this answer

I just started learning C#. VB has been my choice of language. It would really matter what the job was about. But I'd happily go back to VB.

share|improve this answer

I've never touched VB.NET, but no, not really.

From what I understand VB is a slightly less strict language -- which I don't like, but I wouldn't turn down a job because of it.

VB and C# are designed with feature parity in mind, so it's almost the exact same skill set, save for the syntactic/tooling conveniences and idiosyncrasies that distinguish the two.

Case in point, C#/VB converters work pretty well. There's one in SharpDevelop which does a really good job too.

There was a highly controversial article written several years back about the differences between VB and C#. The author's position is that there's a cultural/historical difference that makes VB.NET programmers inferior. Make of that what you will (I personally think nowadays .NET itself has become a whacky and strangely tasty kebab of technologies and cultures), but the take-home message is that technologically they're very much the same.

Not to say that all .NET languages are the same, though. F#, being based on OCaml (and Haskell to some extent), is very different from C# or VB.

share|improve this answer

I'm using F# (primary) , VB.NET , C# and Nemerle and mix them so I absolutely have no troubles with it.

And I think noone will stop me to make some F# modules for VB.NET (for example) project.

share|improve this answer
We use c#. I know i would be upset if i suddenly found that someone wrote a project in the solution in vb –  Andrey May 4 '11 at 18:42

It is all personal preference. I honestly don't care what I am using (to a point). I have said to interviewers when ask if I mind using language that I honestly would program in notepad if the job and problems being solved were interesting enough.

My point is, every job will have its pros and cons. None are 100% perfect. Make sure to the weigh the job as a whole and not get stuck on one aspect.

oh and while I prefer C#. The difference between VB.NET and C# is mainly syntax and it is not that bad.

share|improve this answer

I would second some of the comments already made about the parity between C# and VB.NET. Microsoft has stated that they plan to merge to two language features more and more (can't find a definitive statement anywhere on this though - not sure if someone else can?).

I personally write in VB.NET (and VB6) and dislike C# (although I started coding in C on the RISC OS) nowadays I find VB.NET faster to write, but that's probably because I have been using it for such a long time.

share|improve this answer

If the job was mainly VB.NET, I would most likely decline it. Certain languages I just hate. It not that I can not programming in the language but that I just don't like them and VB is one of those languages.

share|improve this answer

Admittedly I'm a C++ programmer mainly, but I have written 1 VB.net app (I inherited it, and decided to keep it in VB.net - more practical that way)(and anyone who says they love C# 'cos its faster to develop, but then would rewrite a VB.NET app in C# is obviously talking poo), and it turns out to be quite a decent language.

Sure, its more verbose, but the autocomplete typed most of that for me, and besides, most C# classes tend to have hugeLongMethodNamesThatTryToBeDescriptive() inside 4 levels of namespaces anyway so typing begin end instead of { } is hardly a big deal. VB.net's built-in XML support was great and I rather liked the conditional exception support for the COM objects I had to handle (eg catch e as ComException when e.hresult = &H8004005)

Typing variables like 'myvar as string' is just as easy as 'string myvar' TBH.

So apart from the usual religious hate going on, vb.net isn't such a bad language, VS does have excellent support for it and it is actually easier to write than C# once you get past your mental block.

That said, I wouldn't choose it as a first language, as everyone seems to love C# instead, that's the .NET language to go for, for exactly the same reasons its not worth changing from VB.NET to C# if VB was the choice someone else had already made.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.