Fog Creek Software
Discussion Board




Angry Coder on VB inferiority Complex

http://www.angrycoder.com/blog/entries/20030605.html

I have seen some of the same sentiment.  What do you guys think

Phil
Monday, June 09, 2003


It didn't take a whole lot of brains to make that prediction. While Jonathan has an ego the size of Texas, his mental masturbation over the future of C# didn't produce any real insights.

So a language that looks like C++ and Java is taken more seriously than something called "Visual Basic"? Well no kidding, Sherlock.

Mark Hoffman
Monday, June 09, 2003

I think it's pretty dumb, but then I've given up on making sense out of programmers.

I used to be a c programmer, then I moved to perl.  Started using VB6 when I moved to a windows shop and haven't looked back since.  Now that .NET has regular expressions, I don't even miss perl anymore.

     
Monday, June 09, 2003

oh, and I like vb.net for some of the same reasons.  Less typing, no case sensitivity.

     
Monday, June 09, 2003

I've never worked in a shop where VB was put to heavy use, but knowing other programmers and knowing the perception of VB, I'd say his reasoning is probably dead-on.  Prejudice at its finest, but them's the apples we're dealt.

Crimson
Monday, June 09, 2003

How long until the first VB.NET->C# code convertor shows up? Or has one already?

You can kind of already do this simply by compiling the VB.NET to MSIL and then use one of the .NET decompilers that outputs C# code....  If you combined this with a simple source parser that would be used to discover the 'true' names of local variables, the results would probably be pretty damn good, I'd bet.

Of course, one shouldn't have to do this, but given a situation like the one he describes where the customer has an anti-VB bias against code that's already been written, it might be a decent solution.

Mister Fancypants
Monday, June 09, 2003

There are a LOT of C#->VB.Net code converters out there, but only one VB.Net->C# I know of, most likely because VB.Net's a much less structured language.

Philo

Philo
Monday, June 09, 2003

Philo,
Do you have any links for those? Thanks

Yaniv
Monday, June 09, 2003

After 10 seconds of deep thought, here's my C# vs VB.Net salary theory:

- dev's with a C/C++/Java background are more likely to gravitate to C#.
- dev's with a VB background are more likely to gravitate to VB.Net.

Therefore the C# dev's are paid more based on their experience.

Nick
Monday, June 09, 2003

There's alot in a name.

C# says "I evolved from C".  Anybody who's ever looked at any programming in C knows it's the real deal.

VB.NET has "BASIC" in the name.  It says, "I'm an easy language that anybody, even clueless computerphobes, can learn.

C#, right or wrong, seems to guarantee a little higher level of dedication to the art whereas VB.NET is actively pitched at the "You can learn to be a software engineer and make as much as $30,000 a year in just 21 days!"

Richard Ponton
Monday, June 09, 2003

What is the relative frequency of VB and C# coders?

C# is a relatively new language, while VB has a long and *ahem* colourful history behind it.

Is it possible the disparity in wages is due to there being more competition for VB jobs that there is for C#?

Chris Davies
Monday, June 09, 2003

It's a shame that incompetent developers ruin the name of a perfectly good language.  It's the developers themselves whose knowledge falls well short of what they should know.  Unfortunately the ignorance of people who call one language inferior and another superior is all too commmon.  It makes these same developers appear incompetent just like the developers who started coding with VB and really never knew what a 'pointer' was.


Monday, June 09, 2003

IMHO C# coders are paid more for two reasons:
1) C snobbery. Same old, same ol' - "C is better than VB" with no analysis whatsoever to back it up. (I'm not saying there aren't reasons; I'm saying that a LOT of people who say that don't know why they're saying it)

2) Microsoft's colossal misstep in naming VB.Net. VB has no more in common with VB than VB does with TRS-80 BASIC. As a result, the C/C++ and VB camps remained fairly distinct in the migration to C#/VB.Net, with the exception that a lot of VB coders with C++ aspirations took the opportunity to switch camps. In other words, if you presume that C++ jockeys are generally professional coders, and VB coders are generally script kiddies, then shifting to C#/VB.Net actually straightened things out a bit to conform to those stereotypes.

The problem with both analyses, of course, is that C# ~ VB.Net. There's nothing technical regarding what I wrote above - it's all social engineering, with the result that hiring based on which language you picked would be like hiring a programmer that drives a Mercedes because if he can afford that car he obviously writes enough good code to earn the income.

Philo

Philo
Monday, June 09, 2003

s/b "VB.Net has no more in common with VB than VB does with TRS-80 BASIC."

Philo
Monday, June 09, 2003

There is not much surprise here.

VB not having any respect is a common thing, and someone in this thread rightfully stated:

        “those are the apples we are dealt”

There also tends to be a real disdain of VB among the Linux/open source crowd. This attitude comes form the fact that many think that programming is a very elite type of task, and VB makes it easy (so, as result, VB can’t really be considered a developer language...since it is not hard, and difficult to learn). Anything that damages the elite standing of writing code is to be hated.

Hey, most VB people don’t consider HTML and web developers real programmers either!

VB is a very productive language. It is excellent for writing business applications. I know of NO small business that has ever written a business application for use in c++. Virtually all of them have used VB. This also means that the cost of developers is also cheaper.

One better start to look at this equation from the business side of things, and not the ego side.

The only question left really is:

Does one find a higher level of productivity in C# over VB.net?

VB has always been far more productive for writing business applications. With good designs, and good developers, using VB is hard to beat. A large portion of these smaller business systems generally do not benefit a lot from a OO approach. (but, I certainly do encourage the use of class objects in VB, and that shold be standard fair).

When you start writing games, and shrink wrapped applications, and things like IDE’s, then c++ does start to become the tool of choice. There is some overlap here...but c++ really does start to become the platform of choice in these types of appcltions.

Hence, some bias towards VB can be justified, but VB is hardly a kiddy language.  VB is *very* productive.

However, the final question at the end of the day is the issue of productivity?

Does VB.net again offer a more appropriate environment for writing business software? Because, if it does not, then I will not bother with VB.net, and will jump right to C# (and so will most VB developers). Many of us are exactly thinking along these lines right now.

I have not yet used the .net environment.  I am just in the process of acquiring the .net tools as I write this.  (5 weeks away from now, I will start learning the .net stuff).

In looking at current VB.net code, it sure did seem similar to vb stuff. So, it would seem the learning curve to vb.net is going to be easier.

However, if the productivity is now equal between vb.net and c#, then there is little need for vb.net.

Of course, people like me are waiting for the .net version of office and ms-access!

Albert D. Kallal    (Microsoft MVP  [ms-access])
Edmonton, Alberta Canada
kallal@msn.com
http://www.attcanada.net/~kallal.msn

Albert D. Kallal
Monday, June 09, 2003

It's a funny sociological issue at to why so many people feel entitled to condemn VB. The worst code I've seen, in rough order, has been in Perl, C, Java and javascript, and only last in VB.

I think VB's image problem arises from the fact that it was robust enough and clean enough to be learnt to professional levels outside university CS departments.

Throught the mid to late 90's, hecturers hated and despised something they hadn't learnt, and hadn't considered important, but which was nevertheless powerful and successful. They passed this attitude on to their students, who by definition will be taught in C/C++ ( or Java to an increasing extent.)

In the marketplace, I've actually observed the opposite of what the VS magazine reports; I've seen VB salaries much higher than C++ salaries, to my great surprise and disappointment. I think it's because VB is employed in important enterprise roles, whereas there are lots of production line C programmers churned out by the colleges.

I use them all
Monday, June 09, 2003

I wouldn't agree with that last comment.  I recently graduated from college and I would say that the minority of my classmates know C.  The ones that do learned it on their own; it wasn't taught in school.  It was all Java (and even higher level languages like Matlab, maybe a semester of a lisp-like language).  I think it is surprising how many CS graduates don't understand pointers.

I think from the professor's perspective, they use Java because it is sort of like C++ but without all the warts.  There are still a lot of people coming into a CS program who haven't done any significant programming.  They're job is to teach the algorithms and concepts, not to be inundated with questions like "what is this char** argv thing".

Admittedly no one would try to use VB in a college programming class, I doubt.  There is certainly a stigma on the language, whether it's justified or not I will remain neutral on.  I wouldn't like to be chained to Microsoft, but then again if you use Java a lot you're chained to Sun.

Andy
Monday, June 09, 2003

"I think it is surprising how many CS graduates don't understand pointers."

WooHoo!!! There goes the last shred of "holier than thou" that I'm gonna take from CS graduates!!!

[grinning, ducking, running]

Philo

Philo
Monday, June 09, 2003

First, I agree with Mark Hoffman. Jonathan appears to have a very big ego (never met him in person). I wasn't surprised when I read last year that he used to work for Arthur Anderson.

Imo, the recent salary survey that was performed by Visual Studio magazine is statistically insignificant. In fact, if you visit the Fawcette's Discussion Forums you will find a Fawcette employee who posted a response message where he admitted that his employer's salary surveys don't mean squat.

Classic VB deserved its reputation as an inferior programming language. I don't see how anyone who knows something about how VB was put together and how it was maintained over its life span can argue otherwise. VB.NET probably should have been given a different name. Even so, I can understand why Microsoft's marketing department decided not to do this.

If C# developers are typically paid more than VB.NET developers, my guess is this so called fact is largely based on the developer's software development knowledge/experience.

I am not sure which programming language (if any) will become the dominant Microsoft programming language. Personally, I perfer VB.NET's syntax.

Learning both C# and VB.NET certainly seems like the prudent thing to do for many people.

One Programmer's Opinion
Tuesday, June 10, 2003

>I have seen some of the same sentiment
>Prejudice at its finest, but them's the apples we're dealt.

This is the same prejudice that Delphi programmers have faced for years simply because their development environment comes from a vendor other than Microsoft.

(This is not meant to start a language war, but to illustrate that unfounded prejudices are not new to our profession.)

Matt Foley
Tuesday, June 10, 2003

I think it has to do with you'd have to be pretty messed up in the head to choose VB.NET when it's virtually identical to C#.

After all, it implies you actually like the syntax.

Where I work we don't pay retards full salary either. ;)

And the horse you rode in on
Tuesday, June 10, 2003

If what's his name is from Arthur Andersen, what are we doing even discussing his article?

I use them all
Tuesday, June 10, 2003

Visual Basic is and was a superb tool for Windows development, enterprise development ( aka database stuff) and rapid development and prototyping.

Absolutely superb in the hands of a good *Windows* software engineer.

Build rock solid stuff that works beautifully every time, deploys effortlessly, allows the integration of performance components in C++ when required, and just flows.

Anyone who can't do the above doesn't really have the expertise to pass judgement.

I use them all
Tuesday, June 10, 2003

I don't believe Delphi got it's prejudice because it wasn't from Microsoft. After all, neither was Java.

I think Delphi got the treatment it got because it was caught in the middle between VB (easier) and C++ (much harder) and its documentation sucked at a time when MS was making its reputation on developer support.

By the time Borland was playing catch-up, they were four laps behind and losing...

Philo

Sufferable Yank
Tuesday, June 10, 2003

The other thing to bear in mind is that the language variants in .NET are superificial differences.

Essentially, .NET is the next generation Windows development environment i.e. Visual Basic. Whether you're using C#, VB.NET or whatever, you're using visual designers, pre-packaged controls and all the other helpers that were the fundamental beauty of Visual Basic when it appeared and which spawned numerous copycats.

C# == Visual Basic

I use them all
Tuesday, June 10, 2003

Actually: C# == Visual Basic + Curly Braces

Thomas Eyde
Tuesday, June 10, 2003

Actually, wouldn't the first "visual" environment be NeXT?  VB took a lot of ideas from Interface Builder, or at least it was an extraordinary case of parallel development... 

.
Tuesday, June 10, 2003

*shrug*

I think the whole VB vs. C thing that goes on in the software world is dumb.  In fact, I think that to assert there is only One True Anything is dumb. 

The world is filled with an infinite variety of programming needs.  God forbid there should be context-appropriate tools to accommodate that variety.

That being said, I intend to learn both VB.NET and C#.

Norrick
Tuesday, June 10, 2003

As usual, AngryCoder is so young and inexperienced on a broad scale that he's absolutely clueless that this kind of snobbery is just as old as his other rants and threads on "exposing know-it-alls", etc.

Dissing VB and VB programmers is (at least) a 10 year old game. When I first *heard* about VB I dissed it myself (being a C++ snob at the time.) It was an instinct - "uh, not hard and arcane, therefore inviting to people I consider a threat." Since then I've learned. And I've also had to remember that I've seen people make complete asses of themselves in hard core compiled languages as well.

And the infantile "who has the bigger tech weenie" game goes back even farther than that. When I worked in an embedded military group in the mid 80s the jackasses I worked with scorned "application smurfs" who programmed in Ada.  Our 'concern' was the bits and bytes. Truly infantile, in retrospect. And what was "Yawnathon" doing back then, hacking his Speak n' spell? :-)

Bored Bystander
Tuesday, June 10, 2003

What does the quality of the language have to do with anything, anyway?  Objective-C is the best language there is, but the only people who use it are MacOSX developers.

Seriously, though, obscurity can be a good career enhancer.  Certainly learn a lot about the mainstream development technologies, but knowing some weird stuff can open some doors for you.  Then when a job pops up that needs those skills, you'll be one of a handful going for it, as opposed to competing with the millions of indistinguishable Java/VB programmers changing your resume once a day in the hope of getting noticed.

Jim Rankin
Wednesday, June 11, 2003

*  Recent Topics

*  Fog Creek Home