Thinking about switching from VB.Net to C#.Net

Hi experts!

I've looked at most of the posts on "VB.Net versus C#.Net" on this site and quite a few others.
Everything I've found is kinda old...wanted some fresh opinions.

Are there any VB.Net devs out there that made the switch to C#? What was the hardest part of switching.

I think from what I've read...there's no major performance or feature difference....so I'd like to stay with VB.Net...but the one thing that makes me want to switch is the average salary of C# devs at any experience level is quite higher than a VB.Net dev!!!!
LVL 37
samtran0331Asked:
Who is Participating?
 
Fred GoodwinVP of Software DevelopmentCommented:
I would learn both.  I have mixed environments where I need to know both to get the job done.  It looks like most code samples and 3rd party controls are written in C# (not all but most).  Also Its a fairly painless move from vb.net to C#.  C# programmers tend to be paid a little more than their VB counterparts, basied mainly on the stigma that raterus mentioned.  With Framework 2.0 this becomes even more of a mess as you can mix languages in the same solution.  Some pages may be C# and others can be VB.  The framework is the same for both... the main difference is the syntax and some of the basic functionns.  If you like VB more then stick to VB but develop you C# skills at the same time.  There will come a time when you will need them.
0
 
raterusCommented:
There is a stigma out there that vb developers aren't as skilled as the bracket-based language developers, I don't see this changing anytime soon (unlike the change the basic programm language has gone through!).  I'd switch though, Bracket-based languages like C# aren't going away anytime soon, but if you'd like an ever-changing syntactical mess, stick with vb.
0
 
raterusCommented:
I see quite a few people that ask questions here that refuse to have anything to do with one or the other languages.  They demand that the code be converted, or something along those lines.    They really don't realize that they are shooting themselves in the foot by never looking at examples in the other language.  I think you'd be doing a good thing for yourself to at least familiarize yourself with C#, even if you don't use it all the time.
0
Cloud Class® Course: Certified Penetration Testing

This CPTE Certified Penetration Testing Engineer course covers everything you need to know about becoming a Certified Penetration Testing Engineer. Career Path: Professional roles include Ethical Hackers, Security Consultants, System Administrators, and Chief Security Officers.

 
samtran0331Author Commented:
Hi guys,

Thanks for posting!

I understand enough of C# to make my way through tutorials and posted code...and there are days when I do nothing but javascript and I've dabbled with Actionscript for Flash....  I've just never written an app using C#

Plus...I still do Classic ASP, VBA/MS-Access programming...which is the main reason I keep VB as my "primary" language.

It's weird...I just feel like all languages should be moving toward the direction VB moves...where programming becomes more like writing sentences and paragraphs...where today's pseudo-code would be real working code (almost).  Wasn't that the whole point of moving away from punch cards?

Hasn't every language "generation" tried to move more towards being easy to understand.  The whole "layer of abstraction" idea....

This whole "stigma" thing just really really bothers me!!!

I was on some job site...I think maybe computerjobs.com...but there was an average salary list where
a "C#.Net" programmer or a ".Net" programmer BOTH make more than a "VB.Net" programmer!!!
I looked at that chart...and its like you could say you're any kind of programmer BUT VB.net and make more money!

Here's a great article on the reason for that "stigma"...
http://www.codeproject.com/useritems/CSharpVersusVB.asp
Scroll down and checkout the "In Concrete Terms" section.



0
 
raterusCommented:
Ahh, #8 really sums it up around here!

Naa, languages aren't moving toward writing sentences, if you like that use cobol :-)  vb.net is verbose in its syntax, it's not terrible, but it will likely attract the newbie developers easier than C# will.  If you were a noob, which would make more sense to you

For i = 0 to 10
  'do something
Next

for(i=0;i<=10;i++){
  //do something
}
0
 
Fred GoodwinVP of Software DevelopmentCommented:
I agree with everything here.  

Try making yourself write an app in C# once in a while.  I am like you in that I will write VB.Net if I am given the choice.  However about once in every 5 or so projects I will write C# just to keep my skills fresh.  I find there are some things I like doing more in C# than VB (Not many but some).  If you are looking to find work then C# may be a must have for you.  There are VB jobs out there but the learning curve to use both Vs the benifits of having both make it well worth the time and effort.
0
 
Arthur_WoodCommented:
personally, the biggest challenge I find with C# (having been a VB developer since VB 3.0, in 1995), is getting used to the Case sensitivity of ALL of the C-based languages (int c = 5; is a DIFFERENT variable than int C = 10; for instance, and this is perfectly valid C# code:  int d= c+C;  resulting in d = 15).  This I find hard to get used to.

And I am paid quite well, as a VB.NET developer, and our group doesn't code in C#, so I am pretty much set. (I work for a VERY large, employee-owned US Government contractor,and almost all of the developers that I know and work with are using either VB 6 or VB.NET - almost none of my peers, with whom I have regular contact, are using C#.)

AW

0
 
Fred GoodwinVP of Software DevelopmentCommented:
I did not mean to imply that vb.net programmers are not well paid.  I just think that like anything though the more skills you have the more marketable you are.  If you code in VB and Only VB you limit the jobs that you can take.  In my area there has been a shift in that more and more I see companies looking for C# only programmers.  They dont care what else you can do.  When you see VB.Net jobs they tend to want a few other skills with it.  I wouldnt say that is true everywhere but it seems to be the case in my area.

I guess my only point is that the more you know the more marketable your skillset is.  I also find that when I am online looking for help on something the abilty to not have to define that it be in a single language helps me to get answers fasters.
0
 
b1xml2Commented:
I must say without prejudice to anyone here that for the most part, the language one develops is not as important as the mindset of the developer. That I think is something that needs to be dwelled upon.

There's a lot of very talented VB.NET programmers. There's also a lot of very very bad VB.NET/ASP.NET programmers that do not deserve to be called programmers. The same can be said of C#. However a few salient points need to be noted.

1. In the course of discussion C# vs VB.NET, we must be able to abandon our inclination to discuss fairly. From most discussions, everyone submitting that VB.NET is wonderful to programme with almost as a rule only programme in that language. That in and of itself is prejudicial to the whole discussion.

Here, what good is a slap and a pat on the back by yourselves. Self praise is no praise whatsoever. It is just trying to provide support to your comfort zone.

2. One needs to ask those who have experience in coding in both languages.
0
 
b1xml2Commented:
re-word:
we must be able to abandon our inclinations in order to be able  to discuss fairly.
0
 
Arthur_WoodCommented:
I fully aggree on the point of being a braod as possible in your programming skills.  To me a langauge is a language, whether spoken or programmed - they all have a vocabulary, a grammar and a syntax.  Once you have nailed those down, off you go.

But then I happen to pick languages up rather easily - I studied two years each of four (4) different foreign languages in High School (Latin and Spanish for two years, then Russian and German for two years - then two years more of Russian in College), and have programmed over the years (40 + and counting) in FORTRAN, APL, PASCAL, Assembler (various processors), CORAL 66, ALGOL, BASIC, Visual Basic, C, C++, C#, VB.NET...

AW
0
 
b1xml2Commented:
For instance, my inclination is to use C# coding with ASP.NET because of the consistency in coding:
1. Client-side uses javascript which uses C-like syntax.
2. More examples in C# for complex code.
3. Operator overloading.
DateTime start = DateTime.Parse("2005-01-01");
DateTime end = DateTime.Parse("2005-03-04");
Timespan difference = end - start;
Response.Write(difference.TotalDays()

4. Succinct syntax
for example:
public string UserId
{
  get { return "User"; }
}

is shorter by far then

Public ReadOnly Property UserId() As String
  Get
    Return "User"
  End Get
End Property

I find verbosity in VB.NET is appalling.


0
 
b1xml2Commented:
But this is just my inclination... it has really nothing to do with the merits of C# and VB.NET
0
 
b1xml2Commented:
and if someone were to come up with the reason that the VB IDE in Visual Studio.NET is better and therefore VB.NET should be used, I'd puke (This is actually one reason given by one very senior developer in a big firm arguing that team coding is better)
0
 
Arthur_WoodCommented:
as you can see, I have coded in BOTH C# and VB.NET, but my inclination is to stay with VB.NET.  I find it difficult of consistantly handle the case sensitivity of the C-based languages, and since both have complete access to the Framework, and there is almost nothing that can be done in one of the two that can't be done in the other (at least, nothing of any great impact on the applications that I develop at the moment), I prefer to stay where I feel most comfortable.  Now that being said, I am sure that someone coming from the C, C++, Java camp will feel precisley the same about the case IN_SENSITIVITY of VB.NET and will feel most comfortable with C# or J#.  To each his own.

Ultimatley it comes down to a point of personal preference, and not a real issue of which langauge is inherently the4 BEST.  The point being that having the flexibility to be able to switch from one to the other as the situation mandates is a VERY VERY important concept, and speaks strongly to the advisabilty of being at least 'familiar' with both languages (you might even throw in J# for good measure).

(as an aside, I personally find the VB/VB.NET approach to getting and setting properties of objects much more intuitive to the C#/J# Getters and Setters paradigm, but I have also had this discussion with co-workers who have worked in JAVA, and I can see their point of view - it is all a matter of background, familiarity, and comfort level)

AW
0
 
b1xml2Commented:
Object Oriented Programming is something very new to a majority of VB6 Programmers. Whereas it is not something new to C++/Java programmers.

Most VB programmers will flock to the VB.NET camp.
Every C++/Java programmers will flock to the C# camp (There's a distaste for anything VB here)

Now because there are far more VB programmers than C++/Java/C# programmers combined, on a percentage basis, you;d see more bad VB.NET programmers than C#. This is arguably just a perception, unproved by any scientific measurement.

The market reflects this perception, but it probably driven by both perception and market supply-demand. There is a lot of VB.NET programmers than C#. Actually, if one were to think about it, the fact that a lot of new programmers choose VB.NET over C# is testament to the success of the VB flavour and the VB.NET team's carefully development of this altogether good language.

Bottom line, I'd welcome more people to the programming world. If they find VB.NET is to their liking, excellemt. If they find C# to their liking, good on them. But I'd rather like to see the continuation of adoption of the .NET paradigm.

Regards...
0
 
b1xml2Commented:
and by the way, I code in both C# and VB.NET as driven by the dictates of the powers to be.
0
 
samtran0331Author Commented:
WOW!

Wonderful and insightful opinions from some experienced and true experts!!!

And the best thing is that for the most part, everyone's conclusions are the same AND re-inforce my own non-expert opinion.

When I started thinking that I was going to switch to making C# my primary language instead of VB, I was looking for one thing only...solid, concrete, unarguable proof that C# has a *significant* performance increase over VB.  And that evidence just isn't there.

When I couldn't find that proof, I went to the one place I could ask a large group of truly knowledgeable programmers their opinions...here on EE!

So I guess the answer isn't to switch languages...but to know both.  But knowing myself...I will have to "go deep" in one and not the other (due to my limited number of brain cells).  So I'll stick with VB.Net as my "primary"...and I'll try to keep my C# skills....sharp....but I don't think I will ever call myself a "c# developer".

And bottom line is...a good programmer is a good programmer, regardless of language...and a well-written app is a well-written app, regardless of language.  An old professor buddy of mine once said that it doesn't matter what the economy/industry does...if you're good at what you do, you'll always have a job!

Once again, thank you all for taking the time to voice your great and much appreciated opinions!!!!

-S

0
 
Arthur_WoodCommented:
glad to be of assistance, and I agree with your professor.  Languages come and go, but programming SKILLS are everlasting.

AW
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.