C# or VB.net?

T

Tony Thijs

C# or VB.net?

When considering a complex Commerce Server clustered environment with over
500 K users expected, one of the fundamental choices to make is the
programming language to be used. Which substantial advantages are there in
c# over VB.NET that would be considered mission critical. There must be a
dozen or so I guess.

Or in other words, where and on what details does Visual Basic falls short
in that environment?

Links to backgrounders on the subject in general are also appreciated.

Kind regards

Tony Thijs
 
S

Scott Allen

Hi Tony:

Since you talking about a specific environemnt, I guess you might be
wondering how the two languages compare in terms of performance and
scalability.

There is a lot of debate on this subject, but I firmly believe it's a
draw. Experienced devs can write code in either language that will
have the same performance characteristics. If there is something you
absolutely have to do in a different language (like use C# to fast
copy an array using unsafe code), then it all still links and works
together.
 
B

Bob Grommes

Actually, no, programming language is not a fundamental choice, at least not
for the reasons that you imply.

What you really are dealing with is the Common Language Runtime and the
framework classes, which are the same no matter what language they are
accessed from. Use C# or VB.NET ... or Eiffel.NET if you wish, or S#, or
COBOL.NET ... you get the idea.

Language is a mostly matter of personal preference or organizational
politics or vendor support, but it's not a significant technical issue.

While on the subject of vendor support, it seems to me that MSFT promotes
and encourages C# and VB.NET for somewhat different markets. Until recently
I was unconvinced that VB.NET would get new features as quickly as C# (for
example, they were not promising generics in VB.NET for the next release
until relatively recently). But it's starting to look to me like even that
is a toss-up.

--Bob
 
T

Tony Thijs

A MS produkt manager indicated that with the 2005 generation things like
refactoring object interfaces won't belong to the VB realm anymore.
Furthermore, my impression is the C# language environment is better geared
for reusibility and security control of code and components over VB where it
comes to explicitness and things like inline raw performance monitoring and
error handling. Another thing are performance considirations like late and
early binding. Are they really as sustainable in both languages?
Kind regards,
Tony Thijs
 
B

Bob Grommes

Tony Thijs said:
A MS produkt manager indicated that with the 2005 generation things like
refactoring object interfaces won't belong to the VB realm anymore.

I can believe that. As far as I know, even 3rd party refactoring tools are
only available for C# at this point, though at least one vendor has stated
plans to roll out a VB version.
Furthermore, my impression is the C# language environment is better geared
for reusibility and security control of code and components over VB

I don't know about reusability. Depends on what you mean by it. You can
build classes and control visibility as well with either language in my
experience, though VB does encourage some unsavory practices such as its
Module feature which I feel provides ease of use at the expense of safety
(by encouraging global variables).
... where it comes to explicitness and things like inline raw performance
monitoring and error handling.

Error handling works the same, unless you use legacy VB error constructs.
With Option Explicit and Option Strict propertly set you can make VB as
explicit as C#, but of course, the possibility is there for you to be sloppy
if you choose. That is the basic difference -- C# provides what a classic
VB developer would probably consider "bondage and discipline". VB offers it
too, but only as an option.
Another thing are performance considirations like late and early binding.
Are they really as sustainable in both languages?

Both languages can do both late and early binding -- VB actually makes late
binding a bit easier to do in some ways. I don't know that actual
performance would be influenced by the language used, however.

I prefer and use C# whenever and wherever possible -- but I was compelled to
take on a substantial VB.NET project recently, and it wasn't the end of the
world. It is easier to be a slob programmer in VB.NET, but you don't HAVE
to be.

By the way, when I mentioned political considerations connected with
language choice, I did not mean to imply that those were inconsequential.
For example, I take the completely unscientific position that if I use C#
rather than VB.NET, stakeholders will tend to perceive a project as more
"serious", and I will tend to get more "serious" programmers when I
advertise for help, etc. There's something inherently romantic about all
those curly braces that impresses the people with the purse strings and
fends off the more casual / sloppy type of developer. It's nutty, of
course, but sometimes, perception is more important than reality, and even
*creates* reality.

Look at it this way, some people hold a core belief that VB* (meaning VB6,
VBScript, VB.NET, VB.anything) is a "toy" langauge. This is utter nonsense,
of course, particularly in the case of VB.NET. But if you have the ability
to choose, why not pick a C-family language where no one is going to kick
sand in your face? It just makes life easier all on down the line.

--Bob
 

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

Similar Threads


Top