C# verses VB.Net Which Way to go

  • Thread starter Thread starter Robert Lario
  • Start date Start date
R

Robert Lario

C# verses VB.Net Which Way to go. I am sure this issues has come up before.
Please direct me to any good articles that cover this issue. Ideally some
neutral assessment.



Thanks



Robert
 
* "Robert Lario said:
C# verses VB.Net Which Way to go. I am sure this issues has come up before.
Please direct me to any good articles that cover this issue. Ideally some
neutral assessment.

You may want to ask Google and Google Groups Search...
 
Robert,

If you are trying to evaluate for an organization, and you want to
leverage existing skill sets, then you will want to go with the .NET
language that is similar to what your organization already knows. For
example, if you come from a VB shop, then you will want to use VB.NET. If
you come from a C++ shop, then Managed Extensions for C++ or C# would
probably be the best route to go.

However, with few exceptions, there really is little difference between
the languages. All of the functionality is in the base class libraries
anyways.

Hope this helps.
 
Text from my thread over on the VB.NET boards.

These are the things as a VB.NET programmer I have had problems with:

- unsafe. VB.NET does not support the C# unsafe block, which is a shame.
It especially becomes an issue when you need to manipulate bitmaps pixel by
pixel.
- Compact framework control design. You cannot create a CF control with
design support using VB.NET. You can create a control, just not with design
time support.
- Code examples. I find a lot more in depth examples in C# from 3rd party
sites, though occasionally you will find a VB.NET "trump card" example with
no C# equiv. MS, however, does a good job of providing both C# and VB.NET
examples for most things.
 
Yes!

If you have VB developers, probably VB.NET. If you have Java developers, C#.
There really is not a whole lot of difference here and the differences
should fade even more with the next version.

VB.NET
1. Late binding - only with OPTION SAFE off, but it can be done
2. Familiar VB syntax and compatibility helper functions (which have perf
hits)
3. Better IDE help

C#
1. Unsafe code
2. Ability to overload operators (+, -, et al)
3. Tighter syntax (less typing)
4. Case sensitivity allows same variable names with case (not a good idea,
however)

I think that pretty much covers it

--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA

**********************************************************************
Think Outside the Box!
**********************************************************************
 
Nicholas said:
Robert,

If you are trying to evaluate for an organization, and you want to
leverage existing skill sets, then you will want to go with the .NET
language that is similar to what your organization already knows. For
example, if you come from a VB shop, then you will want to use VB.NET. If
you come from a C++ shop, then Managed Extensions for C++ or C# would
probably be the best route to go.

However, with few exceptions, there really is little difference between
the languages. All of the functionality is in the base class libraries
anyways.

Hope this helps.
The funny thing that I found out form MS evangelist is that one thing
that they have noticed is that VB 6.0 programmers get used to C# pretty
quick (more than VB.NET). He was saying that this might be because
VB.NET just enough different to cause enough headaches to someone who
has already done a lot of VB programming.
With C#, they approach it as a new language and pick it up pretty good.
All in all, I think going with C# usually seems like a best bet since
going to and from VB.NET isn't that hard after that.
 
Robert,
This question was recently asked in this newsgroup, here is my response:

Learning the syntax of C#, VB.NET, C++, J# or Java is relatively easy once
you have one, so why not learn both or all. Not so much to be an expert in
each, but to be able to read & write them, then the "samples" problem is not
really a problem. In fact the following section of MSDN highlights the
differences, making moving between languages even easier.

http://msdn.microsoft.com/library/d...us/vsintro7/html/vxgrfLanguageEquivalents.asp

Rather then "C# verses VB.Net" I would recommend you study solid OOP
techniques, Design Patterns, the CLR, the base class library, one or more
specific .NET technologies (ADO.NET, ASP.NET Forms, ASP.NET Web Services,
Windows Forms). As once you have these things mastered, the language you use
is largely immaterial. Then there are some of the other technologies that
are used in .NET that having an understanding is good, such as XML, XML
Schema, XML Transforms, XPath. Did I mention OOP!

I also found studying Refactoring (http://www.refactoring.com) to be
beneficial in expanding my understanding OOP Techniques & Design Patterns.
However you need to have OOP & Design Patterns down first.

Hope this helps
Jay
 
Hi Girish,

That makes a lot of sense. Climb out of the box. Learn something new. Get
back in and make up the difference.

Regards,
Fergus
 
As for what's been said:

I agree that you should be focussing on the bigger picture, you can pick up
syntax in a few days, but learning the libraries and OOP is really going to
determine the success of the project.

I disagree that it doesn't matter which way you go. I expect that a person's
background will make a big difference when it comes time to find their next
gig.

Suppose a person learns C# with no C/C++ background (as I did). When they go
to find employment on a C# team, they're going to have a distinct
disadvantage against guys/gals that do have lower level experience. Nobody
will expect C/C++ background from a VB.NET programmer. This is already
visible in the .NET job postings. The market is demanding a different set of
qualifications for each language, and if nothing else, it will be used to
justify different salary ranges.

If you want to go C#, be prepared to go out and acquire the skills your
going to need to back it up.

-Eric
 
Hi Eric,
I have seen this message before, this have been with Algol programmers and
Cobol programmers too. This is always a matter of time, if it becomes real
the most productivity tools stays and the other is slowly disapearing.

At a moment there where only a few Algol programmers needed.
And I suppose at the moment not any one more (for Cobol programmers is still
business it seems).

(You can compare Algol versus Cobol to C and VB, which what I am not saying
that C# will be the loser and VB the winner the next time).

Cor
 
I'm being a little dramatic. It's more and more likely that as .NET matures
that you wouldn't need to go unmanaged. I suppose the line won't be crystal
clear, but if you know C# and don't have some C/C++ background, then you
won't qualify for all C# positions. In a tough market that could mean months
of unemployment.

I still think that the market will drive the expectation of a C# programmer
to be much more skilled than a VB.NET programmer. Most classic VB
programmers were so abstracted from the OS and don't truely know how things
work.

-Eric
 
As a VB programmer for 10 year, I concur with this. I have had a lot of
luck learning c# while trying to work in vb.net is like programming with my
knuckles. I feel like nothing makes sense. But then I've been a c++ wanabee
my entire career, so the farther I get from vb the cluckier it feels.

--Ken
 
I agree Eric, and I'm betting on C# because I think as they diverge in the
future the mission statement for VB.Net will tend to be back towards the
less-technical RAD roots and C# will be the more technically advanced
option. Who knows, but that's my prediction. I think in a few years there
will be"C" and Java developers in one "class", and everyone else. All
completely and absolutely my conjecture and opinion.
 
Daniel,

Today I was busy with a routine in a VB.net program with a very deep nested
if else.

I find that structure from VB.net dump, all those useless "IfElse" and
"then"

Then I did thought what it would look in a probram language that uses {} for
it.

It would be unreadable. This is an aspect from VB I did not like, and what
is a major difference between VB and all other modern languages, but with a
deep nested if and the help from the IDE, VB.net gives very nice readable
code.

I am not so sure that it will be a C, or J, or VB language

I hope that there will be in future a languages who has all goods from both
sides.

Just a thougth as answer on your message.

Cor
 
Exactly, I took up C# knowing that I'd have to raise my game a notch or two.
Anyone coming into C# should at least consider that the competition for jobs
will be a lot tougher. Your can't just commit to learning C# and the
Framework libraries, your going to have to dig deeper.

The only issue mudying the waters is ASPX. It would seem that you can go Web
Forms and limit your knowledge to what the Framework provides.

There will always be a need for two levels of resources, but whether C# and
VB.NET will define them is yet to be seen.

-Eric
 
Back
Top