Fog Creek Software
Discussion Board




The big disadvantage about using VB .NET...

...is that I don't get to look down my nose at the VB programmers.

Whence the disdain?

I can see how some people would have a syntax preference, or appreciate certain constructs that are only available in one language or the other.  But I really don't understand the air of superiority that so many C# programmers put on, especially given that C# and VB are kissing cousins.  I'm also baffled at why, when the two can coexist so easily, companies would prefer someone having experience in one over the other.

Certainly there are obnoxious blowhards programming in every language under the sun.  But are there any psychologists around here who can explain the special loathing that C# programmers have for VB programmers?

(I have a few theories of my own, but I'd like to hear others' suggestions first.)

Kyralessa
Monday, April 19, 2004

Some of the perceptions I've seen...

C# programmers are viewed as more likely to have come from a C++ background and therefore are more likely to be a "professional." That perception allows C# programmers to charge more than those unwashed VB masses.

VB.net programmers are presumed to have been VB programmers. And VB programmers are generally not viewed as professionals, but more likely the self taught guy who learned from "Learn VB in 24 hours", can't tell the difference between Donald Knuth and Knute Rockne, and creates Rube Goldburg nightmare software.

There is also a prejudice that VB.NET programmers don't really "get" OOP and are still just writing VB programs and running those programs through a .NET compiler.

This forgets the past, however, when most C++ programmers didn't really "get" OOP and were really writing K&R C programs and running them though a C++ compiler.

C'est plus change, c'est plus que la meme chose

Bill Addington
Monday, April 19, 2004

"But I really don't understand the air of superiority that so many C# programmers put on, especially given that C# and VB are kissing cousins.  I'm also baffled at why, when the two can coexist so easily, companies would prefer someone having experience in one over the other."

Building upon what Bill said, there are few programmers who started their programming career with VB.Net or C#: Invariably there will have been an extensive history preceding them, and my experience has been that the only developers/ teams/ shops that choose VB.net as their language of choice for .NET development are historically VB-only shops. Everyone else, from virtually any other language, chooses C#.

Dennis Forbes
Monday, April 19, 2004

The real reason of course, is that C# has the letter C in it.  That makes it harder to use but more like a real programming language.

VB? Hah! Only an incompetent would need two letters to name a programming language.

If MS would have called it simply V I'd be able to charge a lot more money for using it, since V sounds cryptic and like it might possibly use some sort of alien technology.

Okay, I'm going back to my coffee now.

Steve Barbour
Monday, April 19, 2004


" But I really don't understand the air of superiority that so many C# programmers put on, especially given that C# and VB are kissing cousins. "

Yeah, but C# has "{" and "}".

:')

Mark Hoffman
Monday, April 19, 2004

I use C# instead of VB.net for two reasons:

1. Most of the samples you'll find are in C# or both, but rarely ever in VB.net;

2. I type less with C# than VB.net, since it's a language that opts for symbols instead of literary phrases.

:)

Brad Wilson (dotnetguy.techieswithcats.com)
Monday, April 19, 2004

Dim Light As Bright
Dim Dark As Night
Dim Slim As Fat
Dim This As That

NoName
Monday, April 19, 2004

Which just goes to show how great VB is, because...

Bright Light;
Night Dark;
Fat Slim;
That This;

...doesn't even rhyme.

Kyralessa
Monday, April 19, 2004

Historically many, many bad programmers wrote absymal drivel in VB. VB.Net has carried this stigma forth while C# hasn't had the time to develop a reputation as the new VB.

Mr Jack
Monday, April 19, 2004

"Historically many, many bad programmers wrote absymal drivel in VB. VB.Net has carried this stigma forth while C# hasn't had the time to develop a reputation as the new VB."

Perhaps because of industry-wide "right sizing" and the decline of the do-anything euphoria of the bubble, I doubt we'll ever see the scale of bad code created during the late 90s again. My personal feeling, perhaps caused by my own reality, is that the general quality of code has improved dramatically since then. I'm talking about real quality metrics, not arbitrary pseudo-progress like standardized comment blocks.

Having said that, VB has a bad reputation primarily because it was often the platform chosen by people who didn't know any better. VB as a language was pretty much a mesh of all of the "worst of"s, and the tool and runtime was beaten by superior competitors in virtually every way.  VB.NET only exists to cater to the existing VB crowd, and you can be fairly certain that it will be deprecated as years pass by.

.
Monday, April 19, 2004

Historically, many programmers have written abysmal drivel in whatever language they could get their hands on.

I know I've written lots of drivel in C, and tons more in bastard pseudocode while trying to keep from drivel in C.

Let's be frank.  The reason VB has been looked down upon is that it is easy enough to be used by someone who doesn't spend all their time programming.  The fact that mere mortals can use it blinded "professional" programmers to its advantages for jobs requiring relatively light lifting computation wise, but were still complex enough to require a programmer. Yes, it was lacking in many regards, but it generally got the job done and did it without requiring blood sacrifice on the part of the person using it.

Frankly, C# and VB.Net are close enough now that I often use the C# examples when doing something in VB.Net.  I prefer to use VB.Net mostly because I find that I can leave a program alone for a month and come back to it and still recognize what I was trying to do without spending a lot of time reading through my documentation.  To me, VB is simply easier to maintain.  But if you want to pay me extra to write in C# I won't argue with you.

Steve Barbour
Monday, April 19, 2004

"The fact that mere mortals can use it blinded "professional" programmers to its advantages for jobs requiring relatively light lifting computation wise, but were still complex enough to require a programmer."

The amount of "nightmare software" Bill mentions comes from this - anyone can fire VB and put together an app that works.

Then, a few months later, that app needs some maintenance, and the original developer is unavailable (his main job may not even be programming), so a professional VB developer is called for the job. He takes a look at it, and thinks "Oh, another amateur VB spaggeti-fest". If the professional developer is not a VB developer, he'll just say "Oh, another VB spaggeti-fest".

So, I'm not really surprised at the disdain. VB has earned it by aiming at the lowest common denominator.

For a while, I thought Java would replace VB as the language of the amateur. However, the fact that Java is more complex, and requires a lot of effort not to suck on the desktop, was a demotivator, IMHO.

Just use whatever feels comfortable. A good professional is always a good professional, be it in Delphi, VB, C#, Java, or whatever. His productivity may vary, but his good habits won't.

Paulo Caetano
Monday, April 19, 2004


"I doubt we'll ever see the scale of bad code created during the late 90s again."

Oh, I dunno about that!

Mark Hoffman
Monday, April 19, 2004

Couldn't the problem be that bad VB code runs, and if it doesn't is easy enough to kludge.

Whereas bad C++ code just forms part of the 90% of software projects written by highly qualified professionals that never actually ships.

Stephen Jones
Monday, April 19, 2004

To Bill Addington:

The correct French expression is:
"Plus ça change, plus c'est pareil.", which roughly means "the more things change, the more they stay the same."

I know it has nothing to do with the topic at hand, and I hate being a prick, but I'm tired of people using quotes and expressions from a foreign language to look "in", especially when they can't be bothered to make sure they have it right.

Another thing I see often: "viola" which means "raped" in the past tense, instead of "voilà" which means "there!"...

/obnoxious rant

MediocreDev
Monday, April 19, 2004

I really loved to work with VB Classic. I had the pleasure to some VB6 coding last month, and was amazed of how quickly I could code in it.

But I won't use VB.NET. It's not VB anymore, in the quest for OO correctness and C# equality, it's designers lost the magic. Now it is too verbose and it's coding efficiency is no greater than C#'s.

Then C# is more like Java than VB. If I have to move to the Java world, I believe it is easier with a C# background than a VB.

Thomas Eyde
Monday, April 19, 2004

"Whereas bad C++ code just forms part of the 90% of software projects written by highly qualified professionals that never actually ships."

Ermm...about 99% of commercial software apps were written in C++, and [UNDERFLOW ERROR] were written in VB. VB is the domain of inhouse low-skill corporate developers building another "form holding grid control".

.
Monday, April 19, 2004

Heh, I always thought viola was a small violin.

Of course, the term raped could apply equally well to that.

Steve Barbour
Monday, April 19, 2004

"I really loved to work with VB Classic...But I won't use VB.NET. It's not VB anymore, in the quest for OO correctness and C# equality, it's designers lost the magic..."

But this is what I like about it.  I'm coming out of Access/VBA development, where creating your own objects is hardly worth the effort.  Once I got past Hello World, VB programming wasn't as fun as I expected; it often felt clunky to me.

VB .NET, on the other hand, is actually *fun* to program in.  Whereas C# feels like a cranky old schoolmarm with its fussing about case and parentheses and semicolons.  It doesn't seem any harder to program in than VB .NET; it just seems like more of a hassle.  And if I'm dying for Java syntax, why wouldn't I just use Java?

Kyralessa
Monday, April 19, 2004

The phrase I know is, "Plus ça change, plus c'est la même chose."

Stephen Jones
Monday, April 19, 2004

To Stephen Jones:
At least, you spelled it right... And I heard it like that too.

Sorry I'm so "blasé"... (/me winks)

MediocreDev
Monday, April 19, 2004

voila = "look there"

Richard P
Monday, April 19, 2004

Kyralessa, you can't compare Access/VBA with VB6. They are not the same. Almost anything is better than coding in Access/VBA.

Thomas Eyde
Monday, April 19, 2004

The preferences between the two languages are strictly psychological, since the .NET runtime pretty much forces identical programming models.  The syntax might be different, but the same program written in each language will look the same, only one will have curly braces and semi colons.  While I would much rather be working in actual C or C++, C# and VB.NET are pretty much mutually compatible for programming.

VB anything also has that groovy "Nobody got fired for choosing even bad Microsoft products" mind set going for it, while C# has the scary letter C in it, and the shape of that letter resonates with too many emotional scars that programmers picked up in their youth.  Thus making anything with VB the choice of pointy haired people everywhere.

Clay Dowling
Tuesday, April 20, 2004

> Heh, I always thought viola was a small violin.

Or possibly vice versa.  I though programmers were more likely that average to listen to classical music, but apparently not.

Anonymous critic
Tuesday, April 20, 2004

I listen, but I wouldn't know fugue from funk, I just know what I like.  Good is good and crap is crap, no matter how long ago, or how recently it was composed.

Steve Barbour
Tuesday, April 20, 2004

Visual Basic just does not have the power of C#,Java,C++ or anything related to C, try C++ and C the difference youself. Operator Overloding is worth learning C++ with out the addition of a lot of other programming posibilities you give up for the ease of BASIC.

THE RED MENACE
Tuesday, April 20, 2004

On the contrary, Visual Basic .NET is more powerful than Java, C++, Perl, and Smalltalk combined.

See, I too can make wild assertions with no supporting evidence.  If you're so certain that VB .NET is inferior, let's hear _why_.

Here's another assertion:  Those most vehemently denouncing VB .NET are also those who have the least amount of experience programming in it.  My supporting evidence is the fact that such people never cite examples to prove their point.  I infer that this is because they don't actually know what you can and can't do in VB .NET.

Kyralessa
Wednesday, April 21, 2004

"Those most vehemently denouncing VB .NET are also those who have the least amount of experience programming in it."

This is the same for any language/tool. If you have extensive experience with it, you probably won't approach it with disdain. You may point out things you don't like about it, but you won't find it a piece of trash, otherwise you wouldn't be using it - I'm conveniently ignoring the cases where you have no choice :)

E.g., I don't like VB, and my experience in VB totals approx. 1 month. The conclusion I've reached is simple - unlike Thomas, I'll take Access over VB anytime (for DB apps).

I wasn't a big fan of Access, but I had no choice. Within a few weeks, I was already enjoying how easy it was to develop in Access. I won't use it on my free time, because I prefer Delphi/C++ (looking into Python right now), but I went from saying "Access sucks" to "Well, it has advantages, but deployment is a pain", and "I wish it allowed for more customization", etc.

BTW, it's not a matter of curly braces, because I also don't like Java :)

Paulo Caetano
Wednesday, April 21, 2004

Joel's opinions here on VB just about sum it up for me:

http://www.joelonsoftware.com/articles/fog0000000006.html

http://www.joelonsoftware.com/printerFriendly/articles/fog0000000051.html

I think bad code in VB matters less because it's /much/ easier to understand and refactor it. (Reasonably) bad VB code is more maintainanble than any <single letter+punctuation> language.

VB
Thursday, April 22, 2004

BTW, anyone here who has the same opinion about VB and VB.NET does not know enough for their opinions to mater.

VB
Thursday, April 22, 2004

THE RED MENACE,

<quote>
Visual Basic just does not have the power of C#,Java,C++ or anything related to C, try C++ and C the difference youself. Operator Overloding is worth learning C++ with out the addition of a lot of other programming posibilities you give up for the ease of BASIC.
</quote>

Operator Overloading is hardly the Holy Grail of programming. There is nothing that can be doneusing Operator Overloading that can't be done using some other technique. Useful yes - but I would hardly use it as the yardstick by which to measure a language...

Seeya

Anon
Thursday, April 22, 2004

Clay,

<quote>
The preferences between the two languages are strictly psychological, since the .NET runtime pretty much forces identical programming models.  The syntax might be different, but the same program written in each language will look the same, only one will have curly braces and semi colons.  While I would much rather be working in actual C or C++, C# and VB.NET are pretty much mutually compatible for programming.
</quote>

While I wouldn't agree 100% (for example, VB evaluates Nothing = "" to True, which I believe C# does not) your overall point is a good one. VB.Net and C# are far more similar than they are different.

Seeya

Anon
Thursday, April 22, 2004

*  Recent Topics

*  Fog Creek Home