Why is C# more prfferred than VB.NET.

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

Why do software industries go for C# than VB.Net ?
Wats the exact difference...
Which can be the best option..
 
Why do software industries go for C# than VB.Net ?
Wats the exact difference...
Which can be the best option..

My guess would be the similarity to C syntax (c/c++ programmers go to c#). Industries with C/C++ software would then go to C# and there is more c/c++ software than vb ...

However there is a wast amount of VB.Net code on the net and I get the feeling MSPress has more VB.Net books than C#, so ...
 
Snehal said:
Why do software industries go for C# than VB.Net ?
Wats the exact difference...
Which can be the best option..

Microsoft wrote the .NET framework with C#. Which is not to say that VB.NET
is not a good language, programming languages like C#/VB.NET/C++/CLI are
simply tools to build software and the more tools you have, the more
libraries/applications you can build.Many people view programming languages
as a religion, and will defend the language they know and use to the end.
Don't fall into this trap.

Many software companies are choosing C# because it is based on C/C++
languages. Did you know that the most of the .NET framework is nothing but
C# wrappers around the "C" based methods of the Win API? If you learn VB, it
will be very difficult for you to learn C/C++/C#. If you lean C#, it will be
much easier for you to lean C/C++. In my opinion this is the best reason to
choose C# as your first programming language.

Additionally:
From 1994-2000 Visual Basic 2.0-6.0 changed the Microsoft programming world
for ever (as did Delphi). These two languages were the only way to write a
two layer database applications (again for Microsoft technologies). They
were the RAD (Rapid Application Development) tools of yesterday. Even today
you can still build a nice two layer database application using VB6 (on a
LAN).

My last comment, and hopefully I don't start a war over this.
Microsoft should have never written Visual Basic.NET

Why?
Because Visual Basic 6.0 and Visual Basic .NET have nothing in common with
one another. VB 6.0 never had *true* "Object Oriented progamming" (not
Object like) and Interface based programming technologies like today's .NET
languages. Meaning it would be just as hard for a VB 6.0 programmer to learn
VB.NET as it would be to learn C# or C++/CLI. If he were going to use the
more powerful features that .NET offers. I think Microsoft should have spent
all the VB.NET development time on C#/C++ .NET.

Russell
 
Did you know that the most of the .NET framework is nothing but
C# wrappers around the "C" based methods of the Win API?

I disagree heartily with that statement. It's true for a *few* areas
of the framework, but far from most. What's your basis for this claim?

Jon
 
Russell Mangel said:
Why?
Because Visual Basic 6.0 and Visual Basic .NET have nothing in common with
one another. VB 6.0 never had *true* "Object Oriented progamming" (not
Object like) and Interface based programming technologies like today's ..NET
languages. Meaning it would be just as hard for a VB 6.0 programmer to learn
VB.NET as it would be to learn C# or C++/CLI. If he were going to use the
more powerful features that .NET offers. I think Microsoft should have spent
all the VB.NET development time on C#/C++ .NET.

I think that is the key point.

VB6 was great at producing polymorphic code through the use of interfaces
but the lack of implementation inheritance was very frustrating. VB
therefore carries a little bit of stigma because "Real programmers" doing
"true" objected oriented code didn't use VB.

Along comes C# and VB.NET. Both of which have almost the same learning
curve attached to them for a VBer to learn. However C# has a more
"prestigeous" heritage being based on C/C++ syntax and having a perception
of being a "from the ground up" .NET language. At least emotionally C# is a
prefered choice.

MS tried to soften the transistion for VBers by duplicating a considerable
amount of the language features of VB6 despite the fact that the framework
has it's own ".NET" way of performing those functions (e.g., the Format
function). Whilst you can choose not go down that path this, IMO, also
diminishes VBs preceived credentials as a ".NET" language.

None of the above is particularly rational so you might think hard-nose
business decision making wouldn't be swayed by it. However, if you're
looking for job which between C# or VB.NET would you prefer to quote on the
CV. When recruiting, which language is more attractive to the talent pool.
When promoting your product and services to clients which language is more
impressive.

As an ASP.NET developer though I have to say that one rational reason for
using C# is that clientside I need to use Javascript. Switching between C#
and Javascript coding is far less painful than VB.NET and Javascript.
 
Microsoft developed the C# language specifically to target the .NET platform,
from the very beginning. In that sense, one could say that VB.NET is
essentially an "unnecessary" language. Of course, Microsoft was not about to
jettison 4 million (allegedly) classic VB developers, so they created VB.NET.

The above might sound kind of simplistic, but I believe I've caught the
essence of it.
-- Peter
Recursion: see Recursion
site: http://www.eggheadcafe.com
unBlog: http://petesbloggerama.blogspot.com
bogMetaFinder: http://www.blogmetafinder.com
 
Snehal said:
Why do software industries go for C# than VB.Net ?
Wats the exact difference...
Which can be the best option..

That's because C#.Net is a standard controlled by the ISO and ECMA as a
standard and is not owned by MS, while VB.NET is proprietary to MS and is
not a standard.
 
C# is preferred mostly for ignorance. One of the main points is multiple
languages for .NET
Microsoft has Framework code written in VB.NET I am told in 2.0/3.0.

The only good reasons I can think of to prefer C# are:
C# is a standard now
Syntax; Previous experience is Java/C++

IDE Support was better in VB.NET than C# in 2003. It's still better for
VB.NET IMO for 2005. I use C# all day at work, and VB.NET all night at home.
The main difference is syntax, I feel some thing are over complicated in C#.

I have no desire to use C/C++ anymore.

Schneider
 
clintonG said:
As a web developer JavaScript, C#, and Java share the exact same syntax.
Adopting C# becomes a pragmatic decision.

They have *similar* syntax in many ways - but claiming it's "the exact
same" syntax is blatantly inaccurate, IMO.

How do you derive from another class in C#? Now how do you do it in
Java?

How do you call the base type's constructor in C#? Now how do you do it
in Java?

How do you synchronize access to a block of code in C#? And in Java?

How do you specify constraints on a generic type parameter in C#? And
in Java?


That's leaving JavaScript (with its closures etc) aside...
 
schneider said:
C# is preferred mostly for ignorance. One of the main points is multiple
languages for .NET
Microsoft has Framework code written in VB.NET I am told in 2.0/3.0.

The only good reasons I can think of to prefer C# are:
C# is a standard now
Syntax; Previous experience is Java/C++

IDE Support was better in VB.NET than C# in 2003. It's still better for
VB.NET IMO for 2005. I use C# all day at work, and VB.NET all night at home.
The main difference is syntax, I feel some thing are over complicated in C#.

Whereas I feel that VB is too big a *language* compared with C#. Look
at the number of functions/keywords which are defined by the *lanugage*
rather than being part of the *library*. I'm one of those who prefers a
small language with a big library behind it.

There are lots of idiosyncrasies in VB for historical reasons - the
oddities regarding strings and Nothing, for instance. C# still has a
few problems it's inherited from Java/C/C++ (such as a relatively poor
swich statement) but it's got less baggage.
 
That's because C#.Net is a standard controlled by the ISO and ECMA as a
standard and is not owned by MS, while VB.NET is proprietary to MS and is
not a standard.

I don't think that makes much difference to most people, to be honest.

As for it being "controlled" by ECMA/ISO - as I understand it, they
take the specification that MS produces and tweak some of the wording
etc. It's worth noting that Visual Studio 2005 came out long before
ECMA ratified the C# 2.0 specification, for example. If ECMA had wanted
to make significant, breaking changes, do you think they'd really have
been able to in a useful way? If not, in what way can they really be
said to be "controlling" the standard?
 
Jon Skeet said:
I don't think that makes much difference to most people, to be honest.

As for it being "controlled" by ECMA/ISO - as I understand it, they
take the specification that MS produces and tweak some of the wording
etc. It's worth noting that Visual Studio 2005 came out long before
ECMA ratified the C# 2.0 specification, for example. If ECMA had wanted
to make significant, breaking changes, do you think they'd really have
been able to in a useful way? If not, in what way can they really be
said to be "controlling" the standard?

MS doesn't own .Net they gave it all away. MS is on the ISO and ECMA
standard committee like IBM, HP, Sun Micro System, Novell and several
others, and MS is just one vote on the committee as to what happens to
..NET, not saying that MS doesn't have influence, no doubt.

And most people and most businesses are two different things. Many, many and
many various businesses work under the ISO and ECMA standards in controlling
the day to day operations of their business, and they look for ISO/ECMA
solutions.

C#.NET and .NET CLI are under that ISO/ECMA umbrella. This was made aware
to me by companies that are heavily regulated and must stay within the
ISO/ECMA guide lines to run their day to day operations. Third party vendors
that write ISO/ECMA compliant software look to ISO/ECMA solutions as well.
 
MS doesn't own .Net they gave it all away.

There's a big difference between the CLI (which is standardised) and
..NET (which is one implementation of the CLI spec plus a load of other
stuff).
MS is on the ISO and ECMA standard committee like IBM, HP, Sun Micro
System, Novell and several others, and MS is just one vote on the
committee as to what happens to .NET, not saying that MS doesn't have
influence, no doubt.

It may be just one vote on the committee, but given that MS released
VS2005 before ECMA voted, how likely do you think it is that ECMA would
have voted for a breaking change?
And most people and most businesses are two different things. Many, many and
many various businesses work under the ISO and ECMA standards in controlling
the day to day operations of their business, and they look for ISO/ECMA
solutions.

Perhaps they should be aware of just how little influence it's likely
to have if MS want to go one way and ECMA later decides it wants to go
another.
C#.NET and .NET CLI are under that ISO/ECMA umbrella. This was made aware
to me by companies that are heavily regulated and must stay within the
ISO/ECMA guide lines to run their day to day operations. Third party vendors
that write ISO/ECMA compliant software look to ISO/ECMA solutions as well.

Well, Java seems to be doing pretty well in all kinds of regulated
shops without an ISO/ECMA standard to back it...
 
Jon Skeet said:
There's a big difference between the CLI (which is standardised) and
.NET (which is one implementation of the CLI spec plus a load of other
stuff).

Are you going to sit there and say that C#.Net is not a standard?
It may be just one vote on the committee, but given that MS released
VS2005 before ECMA voted, how likely do you think it is that ECMA would
have voted for a breaking change?

What has this have to do with anything? It was ratified by the ISO, and the
ECMA just followed suite?

C#.NET is ratified as standard I don't care what version it is.

Are you going to sit there and say it didn't happen?
Perhaps they should be aware of just how little influence it's likely
to have if MS want to go one way and ECMA later decides it wants to go
another.

It's only speculation on your part and it's a moot point as it stands now.
Well, Java seems to be doing pretty well in all kinds of regulated
shops without an ISO/ECMA standard to back it...

What does this have to do with anything as to why a company would choose C#
as opposed to VB.Net?

I am also going to stick with the .Net guru that the company I was working
for at time flew in from India to train the company programmers on .Net
technology for four weeks. He had all the titles like MVP, MCSD and other
little titles on his cards. And I suspect he knew more on what was happening
on the inside, as he was a leading figure of .Net technology out of India.

You know, I really don't want to see a post from you about your take on
things that is really not worth too much IMO.

I am beginning to completely dislike anyone that's showing that MVP on a
post. It seems it is pretty much rampant in these MS NG(s), like an MVP
speaks it's suppose to be the gospel.
 
Are you going to sit there and say that C#.Net is not a standard?

C# and .NET are different things - what exactly are you talking about?

I'm *certainly* going to say that .NET itself isn't a standard. It
*implements* a standard, but it implements more than that. This is very
important - Mono implements the CLI specification, but it's not a
complete port of .NET, for example.
What has this have to do with anything? It was ratified by the ISO, and the
ECMA just followed suite?

C#.NET is ratified as standard I don't care what version it is.

There's no such thing as "C#.NET". If you believe there's such a
standard, please link to it. As starting points to avoid, here are the
ISO and ECMA standard pages for C#, neither of which mentions .NET:

http://www.iso.org/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=
42926

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

The latter link allows you to download the specification for free. It
mentions .NET twice in the introduction, but nowhere else in the spec.
Are you going to sit there and say it didn't happen?

I'm saying that Microsoft is in control of C# as a language - if it
ever decided to go in a direction that ECMA didn't want to follow (or
vice versa) the "Microsoft version" of C# would have far, far more
influence in the world than the ECMA version.

That's not to say the ECMA committee doesn't have any influence in the
design of C#, but Microsoft is the body which is in control of it,
effectively.
It's only speculation on your part and it's a moot point as it stands now.

It's not speculation to point out that Visual Studio came out long
before the C# 2 spec was ratified. If ECMA hadn't ratified the spec
(after some minor wording changes) that wouldn't have stopped C# 2 from
being a success.

Now, you have to wonder what the enticement of standardisation is for
companies. It's *definitely* important to have a well-written
specification, and it's *nice* to have it ratified as an international
standard - but that's not the same as saying that ISO/ECMA are in
control over C#. They're in control over what gets standardised, but
that's not particularly important in terms of where the language will
go in the future.
What does this have to do with anything as to why a company would choose C#
as opposed to VB.Net?

It's an indicator of how much importance the industry places on
standardisation. If it were all that important, Java wouldn't be as
successful as it is.
I am also going to stick with the .Net guru that the company I was working
for at time flew in from India to train the company programmers on .Net
technology for four weeks. He had all the titles like MVP, MCSD and other
little titles on his cards. And I suspect he knew more on what was happening
on the inside, as he was a leading figure of .Net technology out of India.

I'm not going to enter into a pissing match about who's got the most
credibility. It's pointless. It's far more useful to deal with actual
facts.

<snip>
 
Go away man and disappear out of my sight, because I am NOT here to debate
anything with you.
 
| <snip>
|
| > Did you know that the most of the .NET framework is nothing but
| > C# wrappers around the "C" based methods of the Win API?
|
| I disagree heartily with that statement. It's true for a *few* areas
| of the framework, but far from most. What's your basis for this claim?
|
| Jon

I agree Jon. Framework itself is layered and leverages itself. Probably a
lot more of core methods call into interop, then less and less as higher
level classes leverage existing BCL layer so on (DLR, WCF, WPF leverages fx,
etc),. Not that is matters anyway, an analysis is probably a waste of time
side from talking points for someone on one side or another.
 
Snehal said:
Why do software industries go for C# than VB.Net ?

Actually VB.NET are also used in the software industry.

There seems to be a division approx. C# 2/3 VB.NET 1/3
(managed C++ is insignificant).

I think the two main reasons for that are not related to
the two languages but to the context:
- the general perception and to some extent also inside MS
is that C# is new and the future while VB.NET is something
that exist for "skill compatibility" reasons
- even though C# and VB.NET are functionally equivalent, then
among developers often C# are compared with C++ and considered
more advanced than VB.NET which are compared with VB6
Wats the exact difference...
http://www.codeproject.com/dotnet/vbnet_c__difference.asp

Which can be the best option..

Whatever you (or the company you work for) like best.

Arne
 
Mr. Arnold said:
Are you going to sit there and say that C#.Net is not a standard?

MS's implementation of C# follows ECMA-334 (C# standard) rather well
I think.

MS .NET implementation is ECMA-335 (CLI) compliant, but it is also
magnitudes bigger.

You can not really consider the .NET framework standardized.

ECMA-335 2nd edition defines 295 classes.

..NET 2.0 has 6675 classes (only counting System namespaces).

Meaning that the standard covers less than 5% of .NET !
I am beginning to completely dislike anyone that's showing that MVP on a
post. It seems it is pretty much rampant in these MS NG(s), like an MVP
speaks it's suppose to be the gospel.

MVP's are just like all other - some are good - some are not quite
as good.

But the particular MVP you are talking about are rather good.

Arne
 
Back
Top