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.

I am working on co-op at a company as a test engineering specialist. This is not technically a software job, however at the end of the day, I spend most of my time programming.

I am not a programming wiz by any means, but I am very comfortable using VB.NET since that is what projects started at my company previous to my time were written in, and so it is what I have learned and used in the position.

I have gotten the feeling from my time searching for help online when I need it that there is generally more and better support for C# than there is for VB.NET. This has led me to thinking that it may be beneficial for the company going forward to start programming less in VB.NET and more in C#.

However, almost all projects in my department (since several other people work on small programming projects) are currently written in VB.NET. Additionally, most of the software design done in our department is relatively simple I would imagine relative to a software focused area of any company. Probably half of it is generating html pages with graphs to visually illustrate certain data. Taking these two facts into account, there are obvious disadvantages to trying to switch the main programming language used. Also, the vb.net language is very similar to VBA (for excel) and VBScript, which are also used quite a bit in my area of the company.

I am basically not sure if it would be worth the work to change the main language used since there is not a lot of complicated programming done, and similar languages are necessary anyways it seems.

I was curious what additional insight experienced programmers may be able to offer me regarding changing the main language used in my area from VB.NET to C#? What benefits or disadvantages are there that I may not have thought of? How big a role do each advantage and disadvantage play?

What is your overall opinion on the idea of changing from VB.NET to C#?

share|improve this question

closed as not constructive by Walter, Mark Trapp, gnat, Doc Brown, jmo21 Mar 15 '12 at 14:48

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.

2  
Technically, there's not much difference in the current versions but C# jobs tend to bring a higher salary and more 'respect'. Therefore, it's worth knowing it. –  jfrankcarr Mar 12 '12 at 22:13
1  
I know C# better than VB.Net, and while not as well as some power hitters on StackOverflow, I am still much more productive in C# than in VB.Net. Yes, there are often equivalent ways of doing things, but there is much less noise in C#. The little things do add up. Whether I am using auto-properties or generics or closures and lambdas and LINQ, things are just shorter and more readable in C#. I often "upgrade" older VB.Net projects. I could have left them in VB.Net, but then I would deal with 1-based collections, things that available only in VB.Net, weird quirks, schizophrenic IDE behaviors... –  Job Mar 13 '12 at 2:44

7 Answers 7

up vote 2 down vote accepted

Speaking broadly, the only reason to switch languages (simplifying the debate a lot), is to improve developer productivity (in the broadest sense). Whatever you can do in one language, you can usually do in another, and that goes especially for .NET languages. So you have to weigh the loss of productivity caused by making switch to a language they don't yet know, and also by having mixing different languages into your codebase, against the gain of productivity that the new language offers.

Given all the facts you cited above, there doesn't seem to be a strong case to switch.

On the other hand, as a developer, you can, and should, personally explore new languages (even new flavors of .NET) yourself, so that you are more versatile, and also know what special features one language has to offer over another. So perhaps you do some small projects that don't directly affect anyone else in C#, just to gain the knowledge and experience.

share|improve this answer
    
"is either to improve developer productivity..." -- or? You might also want to clarify why .NET languages are more similar to each other than languages from other domains. –  krlmlr Mar 12 '12 at 23:25
    
thanks for correction about the "either". Originally I had 2 reasons, but realized it was redundant. I didn't want to go into detail about similarities between different .NET languages, mainly because I don't know the subtle differences very well. (I'm a C# programmer, and I know there are some significant syntactical differences with VB.NET, but I don't know if those are functionally important.) –  Sam Goldberg Mar 13 '12 at 13:32
    
What about the CLR? –  krlmlr Mar 13 '12 at 15:46
    
Thanks for the advice! those are really good points. the more I think about it, the more it seems like it likely is not worth it, as you stated. –  user1167662 Mar 14 '12 at 13:43

C# and VB.NET are very close, and Microsoft intends to make them even closer by trying to implement exactly the same features in both (if it's possible is a different subject).

  • Do you actually have something which you can't implement because of VB.NET (and which is possible to do in C#)?

  • Do you actually have something which is a bottleneck because of VB.NET, and will be much faster in C#?

If no, I don't see any reason to rewrite the whole codebase just because you can. Yes, there is a better support for C# from the community, especially on Stack Overflow. But does it matter? Those two languages are close enough to be able to use the answers given for C# in VB.NET in many cases.

share|improve this answer
    
thanks for those points! I appreciate your answer but unfortunately can only select one right one. –  user1167662 Mar 14 '12 at 13:44

The grass is always greener......

there's no point to do this change, sure you'll be one of the cool kids, but really its not going to be much different... except you'll miss the XML Literals that you can put in VB.NET, and the syntax that'll just help to confuse you as you keep switching from VB to C# when you come to maintain old and new code.

No, its a bit pointless. Now if you were to rewrite in C++ or Python, then that'd be a different matter as these systems are very different and have different strengths.

share|improve this answer

DotNetNuke, a large open source project, made the switch from VB.NET to C# some time ago, and it might be helpful to have a look at their reasons.

Note that their reasons were political rather than technical. In a nutshell, they say (in a much more polite way): "There are a lot of stupid people decision makers who think that C# is faster or technically superior to VB.NET. Since it really doesn't matter whether we put semicolons at the end of our lines or not, we might as well switch to C#, to get rid of this false toy project image."

So, from a technical perspective, I'd recommend you to stay with VB.NET (syntax similarity to what your people are already familiar with), unless there are compelling marketing reasons to switch to C#.

share|improve this answer

The Company I work for did make this switch, but only for new projects. After going through the transition I agree with the previous posters that between VB.Net and C# the change will initially cause some slowdown as programmers get used to the new language, but in the end the feature differences are minor. (This is because all .Net languages are first translated to CIL, a common language, before being compiled). In the end, the decision was because our programmers were more comfortable in C# rather than VB.Net. Having trained in C# in my college days, and immediately switched to VB.Net when I was hired (this was 3 years ago). I can tell you that the difficulty in the transition is more syntax than features. Very rarely have I ever come across something I was attempting in one language that I couldn't just check the docs to find out how to do in the other. (For Example MSDN Language Equivalents ). One serious benefit is after the change we've now doubled our resources as we can look for examples and explanations online for both c# and vb.net, this has cut down on time being "stuck."

share|improve this answer

I was curious what additional insight experienced programmers may be able to offer me regarding changing the main language used in my area from VB.NET to C#?

In the company I worked for, we used to work on projects having VB and C# code bases simultaneously. But then there was a gradual shift to C# due to the comfort my team mates felt using C# syntax structure. This was because we had more exposure to C# syntax by learning C, C++ and Java during graduation. We did not make any effort to change the existing VB.Net applications as we were reinventing the wheel.

So the key here is that, the prior experience that a developer holds far outweighs the small differences between the two languages.

What benefits or disadvantages are there that I may not have thought of? How big a role do each advantage and disadvantage play?

Although C# and VB differ in a very small level, everything eventually gets compiled into the IL and that is the reason NET Framework is language independent.

That said, there are no disadvantages in using either languages.

Good luck!

share|improve this answer

I agree with other posters who suggest it may not be worth it unless you feel you will gain enough in productivity somehow to counter the short-terms costs of changing.

I was in a similar position a couple of years ago, however I DID decide to make the move across. There were a number of reasonsL

  • I was developing in isolation and hadn't that big an investment in VB.NET, so the cost of transfer wasn't as significant.
  • As a solo developer, if I needed help, I found more C# online than VB.NET, so I had to as least understand C# basics
  • I wanted to enhance my CV (Resume), and if I'm honest, I wanted the personal amusement and satisfaction.

I would recommend you spend some time learning some C# basics, just to you can get full benefit from the various resources available online.

share|improve this answer

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