.NET Framework - How easy is it to learn VB compared to C#?

Asked By Andy B on 29-May-08 12:09 AM
How hard/easy is it to use/learn VB compared to c#?

DavidAnto replied on 29-May-08 01:45 AM
It's harder to learn VB well.
This is due to the fact that VB offers more ways of doing most things.
Setting the return value for a function - 2 ways (C# has 1 way)
Wiring events to methods - 2 ways (C# has 1 way)
String manipulation - 2 ways (VB 'legacy' functions vs .NET methods)
Exception handling vs unstructured error handling (C# has 1 way)

These are just examples - I could list a few dozen areas where VB offers
multiple alternatives, sometimes based on a need to maintain legacy code.

VB also has a few features not available in C# (such as XML literals and
optional parameters), but C# also has some features not available in VB
(unsafe code, anonymous methods, and iterators), so these kind of wash out.
C++ to C#
C++ to VB
C++ to Java
VB to Java
Java to VB & C#
Instant C#: VB to C#
Instant VB: C# to VB
Instant C++: VB, C#, or Java to C++/CLI
Armin Zingler replied on 29-May-08 04:16 AM
VB is a higher level language.


Cor Ligthert [MVP] replied on 29-May-08 07:10 AM

Depends on what you want to learn

Programming: use C# as it is more strict with everything and does not
automaticly change your typing mistakes,

Learn to use a language to be productive: use VB as it does things that are
time spending to do with C# in many cases in a more easy way.

Just my opinion.

rowe_newsgroups replied on 30-May-08 05:13 AM
On May 29, 7:10 am, "Cor Ligthert [MVP]" <notmyfirstn...@planet.nl>

I agree, C# is much more strict in the way it enforces rules. I would
say it would be very beneficial for new programmers to use C# and get
a hold on how things should work and prevent many "stupid" mistakes
(like implicitly returning value types and dumb casting errors).
However, once you have a firm grasp on how to program, I feel VB
(especially in VS 2008's IDE) makes it much, much easier to crank out
code. It just seems to flow better and is much more natural to write.


Seth Rowe [MVP]
Andy B replied on 29-May-08 07:25 AM
What should you base the choice of what one to use off of? It's hard for me
since I know a lot of c# but VB looks like plain old english sentence
fragments to me and seems like it would be easier to understand than c#.
Andy B replied on 29-May-08 07:32 AM
I think I might give it a try and see how it turns out. Looks like I will be
around for a little while ...:)
Tom Shelton replied on 29-May-08 10:22 AM
I disagree.  I think since vs2005, the C# editor is much more friendly.
Even the autoimplement stuff seems to be a little bit nicer in C#.

That's my opinion of course...  The guy that LIKES case sensitivity.

Tom Shelton
cfps.Christian replied on 30-May-08 05:13 AM
Speaking as someone who knows both fairly well and has worked in both
a VB and C# environment I can say this.  VB is generally easier to
learn, the syntax is fluid for someone that doesn't want to learn a
lot of technical terms.  On the other hand C# isn't necessarily hard
to learn, but it's strictness forces you to write stronger code.  In
all reality if you code VB without using the built in functions and
with Option Strict on you'll be able to move between the two rather
Patrice replied on 29-May-08 10:34 AM
It's hard to tell as for example it depends on what you already know and as
personal preferences comes also in play...

IMO your best bet is just to start both and pick the one you prefer. The
more languages you know, the more asily you'll learn a new language (i..e.
on a logner term you may want to use one as your primary, nknow the second
enogh to be efficent plus perhaps JavaScript if you are doing web
development etc...)

DavidAnto replied on 29-May-08 11:07 AM
Barely - only if you consider 'unsafe' code.  Other than unsafe code (used by
a very small fraction of C# developers), I don't see how VB is higher level.
You might be thinking of C.
C++ to C#
C++ to VB
C++ to Java
VB to Java
Java to VB & C#
Instant C#: VB to C#
Instant VB: C# to VB
Instant C++: VB, C#, or Java to C++/CLI
kimiraikkonen replied on 30-May-08 05:13 AM
In my opinion definately VB.NET rocks when compared to C#. There are
easier (sure, almost every language has difficulties to learn of
course like VB, but that's comparison with C#)  and shorter ways to do
the same thing in VB with less error-risk, especially because of not
being case-sensitive, however both languages have some differences, no
need to extend with these differences which are available and can be
googled easily through the net.

However, in my opinion, also not tested 2008 yet, VB 2005 IDE is much
more developer friendly when compared to VC# 2005. Background
compiler(real-time compiler in design mode) of VB 2005 brilliantly
more accurate than C# IDE. In VC# 2005, you have to wait much longer
to see if there are coding errors in error list at the bottom of the
screen even for a semicolon mistake, plus you have to "build" your
project for once if there are additional errors to be reported in
error list, before starting debugging. In VB 2005 IDE i haven't had
such problems, almost never. And also typing performance intellisense
is a bit slower in C# than in VB on the same PC.

Just my thoughts,


Onur G=FCzel
FamilyTreeMik replied on 29-May-08 12:08 PM
Frankly I like both.  Some on our team pick VB, some pick c#.  Those that
pick c# tend to have tasted java or c in their past.  Maybe that makes an
easier migration.  At least it should.

Out of curriosity, why didn't you crosspost to the c# group?
Cor Ligthert[MVP] replied on 29-May-08 12:43 PM

Have a look at VB, there it is automaticly set in the right case.

Kidding of course.

FamilyTreeMik replied on 29-May-08 01:20 PM
That's an interesting concept in your blog.  We've been happy
compartmentalizing our dlls fairly well (I hope...).

I wouldn't recommend taking too far though.  I could imagine someone wanting
the next logical step, the following:

string message;
int index;

for index = 1 to 5 step 2
message = message & index.ToString()
Andy B replied on 29-May-08 01:47 PM
I am already somewhat experienced in C#. I have been using it for about 2 or
so years now and feel that I would have enough background to base a VB
comparison on. I haven't messed with VB though, and have no idea about its
learning curve. I didn't cross post either, because of reasons that I don't
think is right to say on a public list other than that whenever I post
there, I get harrassed with the idea that my posts and/or questions are too
vague and never do reach the point of "intellegence" or "accuracy". Guess
they are too lame to post overthere for some reason. Sorry for the short
lived vent, will get off my soap box now...
FamilyTreeMik replied on 29-May-08 02:06 PM
Then I suspect you will have an easy time migrating to VB.Net.  As others
have said, just turn on Option Strict.  I think it helps everyone avoid
common mistakes.