VB or C#

E

esha

I'm going to learn one of Framework based languages. I have a friend who
knows VB 2005 and he could help me with lessons. But I know from other
friends that C# is more popular and has higher demand.
My question - what to learn if I know in both VB and C# almost nothing.

Thank you

Esha
 
S

Scott M.

Saying that C# is in more demand is a subjective statement, I disagree.

All .NET languages must follow a Common Language Specification (CLS) and
have roughly the same capabilitites. The actual language is a matter of
preference.
 
D

David Hogue

esha said:
I'm going to learn one of Framework based languages. I have a friend who
knows VB 2005 and he could help me with lessons. But I know from other
friends that C# is more popular and has higher demand.
My question - what to learn if I know in both VB and C# almost nothing.

Thank you

Esha
I'd say learn both. Start with vb since you'll be able to ask your
friend questions and get help.

Most articles and documentation provides examples in both. There are c#
to vb and vb to c# translators online.

If you know the framework, the language used doesn't matter so much.
 
C

Chris Mullins

esha said:
I'm going to learn one of Framework based languages. I have a friend who
knows VB 2005 and he could help me with lessons. But I know from other
friends that C# is more popular and has higher demand.
My question - what to learn if I know in both VB and C# almost nothing.

I think VB.NET is by far the easier of the two languages to learn.

I also think the C# is (in general) more valuable if you're looking to land
a programming job.

Given that most people program for money, I would go with C#.

Now, the two languages are largley the same in terms of features and
capabilities. There are a few things VB can do that C# can't, and a few
things that C# can do that VB can't. The list of these things is really
pretty small, and seldom comes up.

Either way, the majority of your learning time will be spent learning the 65
thousand classes that make up the .Net framework. This is the hard part -
there's alot there to learn, and it's gotta be learned. The particular
language syntax you use to call these 65k classes is largley irrelevant.
 
C

Cor Ligthert [MVP]

Esha,

I think that C# is far the easiest to learn, it has less keywords and less
extra standard namespaces so this helps you if you are learning from books
in a kind of theoretical way.

For a VB.Net programmer has C# however something not which is in VB.Net and
the VB.Net programmers find that extreme important, C# does not have
background compiling. This background compiling helps you to do autotyping,
correcting things and check everything while typing. For C# you have to
build/compile every time the project new, which is not the finest to do when
learning doing that practical coding.

That C# does not that background compiling can be an advantage for very
large projects on slow computers, before somebody wants to point me on that.

Cor
 
M

Morten Wennevik

Hi Esha,

Both are equal as when learning either about 10% is language specific and
90% is framework. In the end you will find that it is easy to switch
between vb.net and C# since both share the (90%) framework part.
 
K

Kevin Spencer

If you've never programmed before, start with C#, for several reasons.

While VB and C# perform almost the same operations, and while they each have
features that the other does not, which makes that sort of comparison a
wash, I see that you're just starting to learn programming, and that is why
I recommend starting with C#.

Why? VB is a more human-like programming language. Its syntax looks more
like human speech than any other major programming language. While this
makes it easy to learn, it also makes it easy to stop learning. And it makes
it harder to think "like the computer" when you're programming, which is
necessary to good programming.

In addition, the C# syntax is based on C and C++ syntax, but resembles very
closely Java, JavaScript, and EcmaScript, while the VB language does not
look much like any other syntax. This means that when you learn C# syntax,
you are that much closer to learning other common programming languages,
which is highly likely to come in handy, as seldom these days do programmers
have the luxury of programming every aspect of an application in a single
language, especially if working with the web.

--
HTH,

Kevin Spencer
Microsoft MVP
Chicken Salad Surgery

What You Seek Is What You Get.
 
M

Mike Lowery

esha said:
I'm going to learn one of Framework based languages. I have a friend who knows
VB 2005 and he could help me with lessons. But I know from other friends that
C# is more popular and has higher demand.
My question - what to learn if I know in both VB and C# almost nothing.

Both are very similar languages but only C# has been released as an ECMA
standard. That means it has broader support, especially on non-Microsoft
operating systems. Something to consider.
 
C

Chris Dunaway

Mike said:
Both are very similar languages but only C# has been released as an ECMA
standard. That means it has broader support, especially on non-Microsoft
operating systems. Something to consider.

A corrollary to this is that since VB is not an ECMA standard,
Microsoft can change it dramatically at their own whims. It is much
harder for them to do this for C#.

But as other poster have said, learn both. It's not that much extra
effort and being able to code in both will look better on a resume than
just one.
 
C

Cor Ligthert [MVP]

Kevin,
Why? VB is a more human-like programming language. Its syntax looks more
like human speech than any other major programming language. While this
makes it easy to learn, it also makes it easy to stop learning. And it
makes it harder to think "like the computer" when you're programming,
which is necessary to good programming.
A little bit beside the truth, the probably still most used language for
common busines oriented language and measured in lifetime done (which is not
VB) is still more like "English" human speach than any other one.

It is absolute not needed to think like a computer, it is good to learn how
processes are done. That has nothing to do with a computer, which design
should be made on human processes.

Just my opinion (however not mine alone)

Cor
 
C

Cor Ligthert [MVP]

Mike,
That means it has broader support, especially on non-Microsoft operating
systems. Something to consider.

Interesting can you explain this a little bit deeper, it is a interesting
subject I never have heard before about or stated with facts.

So maybe can you fullfil that gab?.

Cor
 
M

Mike Lowery

Chris Dunaway said:
A corrollary to this is that since VB is not an ECMA standard,
Microsoft can change it dramatically at their own whims. It is much
harder for them to do this for C#.

Not as if standards have ever stopped Microsoft from implementing their own
proprietary solutions/additions! Hopefully since they authored this one they'll
stick with it (no guarantee.)
 
M

Mike Lowery

Cor Ligthert said:
Mike,


Interesting can you explain this a little bit deeper, it is a interesting
subject I never have heard before about or stated with facts.

So maybe can you fullfil that gab?.

Fact is projects like Mono do not (yet) fully support the VB language, but C# is
fully supported. One proposed reason is that VB hasn't been released as a
standard. The open source community rarely supports proprietary, non-standard
solutions.

C# standard:
http://www.ecma-international.org/publications/standards/Ecma-334.htm

A related discussion about standardizing VB:
http://www.panopticoncentral.net/archive/2005/12/30/10911.aspx

Microsoft is about the only major software company that has continued to support
BASIC from past to present. BASIC also has the dogma of still being a
beginner's programming language with severe limitations and poor performance.
Although that was true 10+ years ago, I don't believe it to be true today. But
you only get one chance at a first impression.

Open source is entangled in .Net:
http://www.infoworld.com/article/06/09/11/37OPopenent_1.html?source=NLC-OPENT2006-09-12
 
C

Cor Ligthert [MVP]

Mike,

Do you mean that this sentence:
That means it has broader support, especially on non-Microsoft operating
systems. Something to consider.

Completely build on the Mono project and some personal opinions, because of
this sentence above I would have expected more.

You are right in that, that VB has a quicker evolution path than C# and
therefore probably Mono can not keep in line with that, but I think that
this tells more about what ECMA means as registration, like registration at
a non computer company has for ever meaned, it is no benefit. We have seen
that with more languages who don't exist anymore. Basic has a very long
lifeline you know (AFAIK after Cobol the longest) for a program language.

Before you misunderstood me, I find both VB.Net and C# very fine programming
languages.

Just my thought,

Cor
 
M

Mike Lowery

Cor Ligthert said:
Mike,

Do you mean that this sentence:


Completely build on the Mono project and some personal opinions, because of
this sentence above I would have expected more.

Not sure I understand your question. Mono is the only mature non-Windows CLR
port that I know of, and VB.Net is only partially supported.
You are right in that, that VB has a quicker evolution path than C# and
therefore probably Mono can not keep in line with that, but I think that this
tells more about what ECMA means as registration, like registration at a non
computer company has for ever meaned, it is no benefit.

I don't know that VB has a quicker evolutionary path. But I do know it hasn't
been published as a standard so that makes it more difficult for other
companies/organization to implement it. How can you safely write a compiler for
a language that hasn't been officially published? This is especially
unfortunate considering VB is one of the most widely used languages by (Windows)
programmers.
We have seen that with more languages who don't exist anymore. Basic has a
very long lifeline you know (AFAIK after Cobol the longest) for a program
language.

Hence my dogma comment.
Before you misunderstood me, I find both VB.Net and C# very fine programming
languages.

Just my thought,

I do as well, and even think that maybe there's really no good reason to have
both. They're not all that different, and being a programmer, I'd rather just
master one language than multiple!
 
C

Cor Ligthert [MVP]

Mike,

I have the idea that you have never used the VB.Net IDE. Just looked at some
blogs that the world is flat and therefore it is in your opinion flat.
..
Now you are probably telling something uninvestigated in this newsgroup,
just looking at the language specifications..

Cor
 
C

ChrisRM

OH MY GOD. Well now you know. This is one of the famous CANS OF WORMS and
you went and opened it again.

THIS THREAD WILL RUN AND RUN........AND RUN.


I have no personal axe to grind but I suggest you look at some code from
both languages. Visit one of the sample sites and download some from both
languages. The answer to your question is which looks easier to read and
sits more gently on the eye. Learn that one! And ignore all the VB C#
biggots.

C# samples at http://msdn.microsoft.com/vcsharp/downloads/samples/23samples/

VB samples at http://www.freevbcode.com/

There are many more sites offering usfull samples

Good luck
 
M

Mike Lowery

Uh.... I've been using VB.Net and Visual Studio.Net IDE for about four years
now. Your poor English makes your messages very hard to understand.
 
C

Cor Ligthert [MVP]

Your poor English makes your messages very hard to understand.Yes the same I have with yours.

Cor
 
G

Greg Young

His argument bases on the fact that there is no standardization for VB.NET.
Because there is no standard there is alot of trouble supporting it in other
environments with another implementation (such as mono). Quite often people
come accross very strange edge conditions in C# (some which defy common
logic, especially dealing with advanced overloading etc), to determine
whether the compiler is acting in a compliant way or not one can cross
reference the ECMA specification which defines the behavior a compliant
compiler should have. Since there is no such definition for VB.NET one can
only say that the behavior exhibited by the MS compiler is the correct
behavior ... This becomes extremely problematic when trying to implement a
compiler for another environment that can be "compliant" with VB.NET ...

Because of this he is saying if cross platform development (compilation) is
important to you .. then C# is a better choice.

If you do not need to recompile (which is quite possible) it does not matter
which you use since mono can run the il produced by the vb.net compiler.

Cheers,

Greg
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top