VB Developers Aren’t As Dumb As You Think


The other day I got into an argument with someone about programming languages and their users. I don’t know why – it’s one of those conversation topics like religion or politics or the Yankees that will only end badly for all involved. I guess I was in the mood for a fight.

The basic premise of the argument was that VB developers are somehow “dumber” than C++ developers. Having long ago written a book on Visual Basic (don’t buy it, it’s not a good book) I took umbrage. And I was in the mood for a fight. So while my opponent was making a bunch of assertions about how all VB developers are self-taught and don’t understand basic computer science principles like semicolons, I stared blankly into space awaiting my turn. Then I dusted off my marketing hat and began to cite a bunch of Microsoft internal research.

You see, Microsoft does a huge amount of research into its customers and a lot of that research centers on developers and who they are. We spend a lot of time doing pretty solid worldwide research (well over a dozen countries, an overall sample size exceeding 11,000, etc.) and we ask a lot of questions that help us shape product.

So here’s what I said to my biased friend.

If you ask VB developers how much education they have, about the same have college degrees as C/C++ developers (we ask what their primary language is and cross reference by level of education attained), and only negligibly more C/C++ developers have graduate degrees. More than that, more pro developers who primarily use VB say they have an undergrad CS degree than pro developers who use C/C++ primarily (though more C/C++ primary devs say they have an engineering degree). In other words, C/C++ pro devs are more likely to have an engineering degree than VB devs (it's outside the margin of error, but just barely).

Granted college education isn’t a sign of how smart you are (Bill Gates, for example, dropped out and he’s pretty smart). But in lieu of direct quantitative data, it’s a good proxy, and it shows that VB developers aren’t as dumb as my argumentative friend thinks.

Comments (29)

  1. Alex Beluga says:

    Well, I think that VB developers are just more closer to real tasks. It’s not a matter of dumb/not dumb it’s more a matter of how close one is to computer and how far he is from market.

  2. BlakeHandler says:

    Programming languages have similar strengths and weaknesses as spoken languages. To assume that someone that speaks a “less sophisticated language” is also “less sophisticated” simply is not true in the real world, or the virtual world.

  3. zzz says:

    var exhibition = {"C","C++","VB.NET"};

    Museum.Show(exhibition);

    Does that compile?

  4. zzz says:

    Seems some C# programmers are dumb. (banging head on the keyboard)

  5. I see that you link "being smart" with the "degrees" acquired by education. How exactly are they linked?

  6. Dagogo (Nigeria) says:

    vb developers are never dumb as some might think, coming to look at it, it takes almost the same effort putting up with the demand of the two languages. vb might be easy to learn but there are lots of catching up to do with the tweaks and stuff like we used to do in vb6.0 for OOP, and these are things that are second nature in the OOP kings(c++). I guess they consume the same amount of brain cells.

  7. johnmont says:

    Without being able to administer IQ tests (and we all know how uncontroversial those are), college education is one proxy for "smartness." Until you actually look at the code people write, however, you won’t know.

  8. Nick says:

    I’ve never really thought of it that way… though I do think that VB attracts a different type of programmer than C/C++/C#.  Basically, I think C* programmers are more nitpicky, while VB programmers want to just get it done. C* programmers are more likely to want to know what’s going on under the hood, and are more likely to investigate internals, while VB programmers want to just get it done.

    Of course, I have absolutely no proof to back this up other than my own observations in the work place.

    Sometimes I wonder how much those statistics you mentioned really prove, because often times companies force a particular language on a person which they’ve had to learn, but would prefer not to use.  I think that’s even more true in the .NET world, since the differences between the languages are not just syntactical.

  9. Rosyna says:

    I have to strongly disagree. While many VB developers may just be using VB for it’s RAD, there are quire a few that use it and think it’s the best thing evar1!11!. It’s not so much they aren’t "smart" but they don’t have the same critical thinking skills that most C developers acquire. Just because VB never "forces" people to acquire those skills. It’s a safety net of sort and there’s very little evolving.

    Cocoa on Mac OS X can be compared to VB in this same way. It requires the same kind of thinking and it prevents critical thinking skills from developing as well. I’ve seen people that have done objective-c/AppKit for well over 10 years and yet still make very simple mistakes. While this is true of many languages, the percentage of long-term Cocoa developers that don’t "get it" is much higher than the same number of C developers.

    When the runtime does everything for you, you never have a chance to learn how to do anything for yourself.

  10. Xepol says:

    VB has a reasonably loose, flexible syntax which gives programmers much rope with which to hang themselves.  This means that people with poor skills can get more past the compiler than they would with other languages leading to more poor quality projects than you would see in C, C++, pascal.  C and C++ also give you more rope than pascal, but are obscure and hard to use, so before you can hang yourself there, you have to spend more time learning how to even get the compiler to compile your app than your average VB programmer.  Pascal, with its strong typing gives you even less rope to hang yourself with, meaning even more learning and attention to detail.  Does this prevent you from hanging yourself?  No, but it does mean that the number of rank amatuers capable of writing truely bad code drops off dramatically.  This is where VB gets the majority of its bad reputation from. (the poor performance and huge deliverables contribute the rest)

    That said, there can be good VB apps, but they’ll still run slowly compared to a C/C++/pascal app,  leading to a poorer experience.  Getting compile time errors at run time doesn’t help appearances either.

    It is not hard to see where VB gets its bad reputation, and its equally easy to see how it has come to deserve it.

    It is not the college educated that cause the majority of the VB issues, but rather the amatuers that VB makes it easy to attract. That said, some so called educated professionals write some pretty bad code, but if you ever read the Daily WtF, you’ll see that language is no barrier there.

    However, VB.NET is a totally different issue.  Strong typing, proper compiling make it possible to avoid many of the pitfalls of VB (unless you reconfigure it to allow many of the exceptionally BAD practices that made VB the tech pariah it is, which you can unfortunately do..)

  11. I’ve only been programming a short time (34 years is a short time right?) but I’ve seen programming languages come and go. In the beginning a lot of people were using FORTRAN and COBOL and some were using various forms of BASIC. Today you don’t see much FORTRAN and COBOL but there are some amazing versions of BASIC (like VB) around. Later people used C and some of us did OS development in BASIC-PLUS. Not much pure C left as C++ and C# and that Java language took over. A lot of people still using some form of BASIC though.

    I’ve programmed professionally in a bunch of higher level languages and a half dozen or so Assembly languages for 12, 16, 32 and 36 bit processors. But given a choice I do my programming in Visual Basic.

    One picks the language for the problem. Saying that VB programmers are dumb for using VB and that smart programmers use C++ is like saying that dump carpernters use saws to cut wood while the smart ones use a chisel and hammer. Doing something the hard way does not make one smarter than doing it the easy way.

  12. tonetheman says:

    vb programmers are not "dumb", especially if they are vb.net programmers. but earlier versions of vb were just exercises of bad programming constructs. the language naturally supported bad habits… and so maybe vb programmers are not dumb… but they sure do have a lot of bad habits, which in the mind of programmers who do not share their inbred family line… they might appear dumb.

  13. Keerthi says:

    VB lets you work at a higher abstraction. Not only VB, any programming language lets you work at a higher abstraction. We turn smart when we realize that and peek into the details.

    When we understand the things below the abstractions (say, function call mechanisms, byte orders, etc), we make less stupid decisions at programming.

    Most VB programmers never cared to look down the abstraction and continued to enjoy there. I mean MOST. LESS C/C++ programmers never cared to look down the abstraction and suck badly.

    This is why the unbalance exists on VB <-> C/C++.

  14. JBG says:

    Well said, AlfredTh. Especially with VB.NET, there is little difference. VB2 through VB6 were great tools that allowed many people get the job done. Not dumb people, but real people who were not necessarily computer scientist, like doctors, psychologists, engineers, etc. Simply put, old VB was one the fastest RADs. New VB on the other hand, still holds the crown of having the fastest learning cycle. Unless you are allocating arrays of 1Gb or more, and/or doing heavy math, the only difference between VB and C++ is that you’ll see results quicker with VB. Even for the math, VB.NET is only about half as slow as C++… BTW, I’m a mathematician doing research in data mining of large biological datasets. I’m proud to tell you: everything is done AND WORKS in VB.NET. And just in case I clarify: I am a very good C++ programmer. VB is one of the tools that have contributed the most to the democratization of digital literacy. Geeks get furious when they say: "you are dumb if you don’t do pointers", and dumbly spend time doing things VB programmer never have to worry about. It’s like believing that in order to travel in a car, you must know mechanics.

  15. Alan says:

    Being a developer for about 16 years starting from Turbo Pascal to C# I can say a good programmer is the one who can solve a complex problem in the simplest way in any language. Not an easy task that is.

    University degree and even scoring high in I.Q. test can’t measure whether one would become a good programmer or not. I guess problem solving is done by certain parts in the brain hence if that part is not strong then most likely one don’t have the ability for problem solving. This is a scientific fact.

    In my days I have seen codes even from Microsoft that demonstrated how the programmer made something simple so complex and hard to understand. This easily can happen in any language.

    In Software world we do require programmers with different set of skills. Just setup a team of very skilled programmers and see how badly they would perform and how bored they would become. At the end of the day within the team you do want someone who is not as skilful as others and he/she doesn’t want to become as strong as the others either.

    Some programmers are happy to stay in the same level for years and just do the same repetitive work all over again.

    Basically the argument whether VB developers are dumb or not is silly. If all the VB developers to switch to C# or C++ tomorrow those who claim they are smarter because they used C++ or C# would find it harder to find a job.

    However what I’m strongly against of is the people who didn’t have the talent in VB6 era had switched to C# and now the code they produce is horrible. Worse than that the country I reside there is a trend going on that every programmer should learn c# and I know not everyone can become a good c# programmer. This is a huge problem for the industry in a long run and no one admitting or acknowledging it.

    We are all meant to be different in so many ways otherwise the world that we live in would have been so boring.

  16. ScottishYorkshireman says:

    Does it really matter? Is this a sniper attack on which is the best language or is it just another poke that those who live in the land of the SBL (semi-colon based language) chose to learn it because some wag told them that ‘if you do this, people will think you are smart’.

    Well sorry, your choice of language is no longer enough to cut the mustard. See, it’s all about problem domains and if you use C++/C/VB/java/Whatever and you can’t get your head around the problem domain, it doesn’t matter. You aren’t going to impress your client and he definately isn’t going to pay your bill.

    So it all boils down to who pays the invoice, your client or your peers. Maybe you want your peers to think you are really smart. Me, I’ll let my client decide and the Lexus on my driveway can speak to my peers.

    The degree bit is also irrelevent, some companies just look for a degree, some want a specific degree. Does the degree prove you can solve problems or does it prove you can do research?

    Me, I can do both and I can still write more code in VB in an hour than a C programmer can write C in a week. My clients have a problem, I supply a solution and along the way they dont’ give a hoot about what it was written in as long as it does what they need.

  17. alex.day says:

    i love delphi,i love C#

  18. Scott Rudy says:

    First of all I see no coorelation between a degree and being smart. There are people with degrees that are even .Net certified that I wouldn’t hire to walk my dog. From what I see in the field most C* programmers can program in VB*. However, VB* programmers can program in C* are much harder to find. There are advantages to each and a "smart" programmer will know when to use which. For sake of argument though, let’s put two candidates on the same playing field and say they both know VB.Net. If you had to choose a developer to code a solution and you have the choice of a programmer with an engineering background and a programmer with a non-CS background who would you choose? While all developers may not be dumb, many are ignorant on the science of computing. That makes them potentially dangerous and would keep me from hiring them. I would like to see a coorelation of development languages and people that can explain a simple Singleton pattern.

  19. Fan Decheng says:

    I did begin in BASIC and QBASIC, and then learned C and C++. It’s all right. No problem. However, my major languages now include only C, C# and C++. VB is not my major language now.

  20. wonder.jiang says:

    Language is just a tool which implement people’s thoughts.I don’t think there are any differencies between vb programmers  and any other programmers for languages.

  21. wonder.jiang says:

    Language is just a tool which implement people’s thoughts.I don’t think there are any differencies between vb programmers  and any other programmers for languages.

  22. 王牌在线 says:

    I live vb,I live vb.net.

    oh,yeah.

  23. bonna says:

    well if you start programming c++ in a vb.net application then you aren’t that smart now are you.

    absurd answer to an absurd thread, programming a certain language is a matter of taste or environment and has nothing to do with being smarter.

  24. Bob Thomas says:

    I normally do not feel obliged to enter a finger pointing exercise but I’d like to help level set the playing field. I speak three languages, have a BS in Physiology with minors in chemistry, physics, and math, a MS in a management discipline and teach CIS full time at a local college. I also work full time programming and system engineering. I’ve programmed as an integration specialist for more years than I’d care to admit, just a shade age sensitive. Having said all of this I sound like a real peacock. However I do not believe anything I’ve said indicates my ability to program. My customer base and what they are willing to pay me to accomplish this is the true measurement of my performance. The world needs smart people, no doubt! The world also could use a few handsome/pretty people, no doubt! But the world must have a lot of nice humble people who realize that treating all people with respect for their accomplishments makes you a good person and a joy to be around even if you program in logo or alice or ……………………!

  25. dad says:

    There does seem to be the idea that C++ and C# developers are more intelligent than VB developers, but from what I can tell, that is mostly propagated by C/C++/C# developers. I have also seen a lot of poor VB and VB.NET developers choosing to go to C# because they think it looks more prestigious.

    I learned and used Turbo-Pascal/C/C++/Java in college and picked up VB on the side.  Now almost all I use is VB and I spend my time becoming an expert in that language instead of diluting my abilities across multiple and "similar" languages. Pick whichever language you want but your choice isn’t going to make you suddenly become smarter. If you think C# is high and mighty, just be aware that there are a lot of dumb developers coming your way.

  26. Keith Rull says:

    An algorithm to solve all of this 🙂

    public void EgoGenerator(Programmer programmer)

           {

               try

               {

                   if (programmer.UsesCurlyBrackets)

                   {

                       programmer.Ego *= 100; //<– this is true

                       programmer.Smart = true; //<– error here

                       programmer.Salary += 5000; //<– error here

                   }

                   else

                   {

                       programmer.WorksFast = true; //<– really true

                       programmer.GetsFasterPromotion = true; // <– totally true

                       programmer.HasTimeToCombTheirHair = true; // <– definetely true

                   }

               }

               catch (Exception ex)

               {

                   throw new ArgumentOutOfRangeException("What a silly argument!", ex.InnerException);

               }

           }

    btw, i’m a C# guy that started my career in java.. found vb and loved it.

  27. Gordon says:

    If the basic premise is that, on the whole, VB developers are less skilled than C++ developers then one would have to agree. Classic VB was indeed a RAD tool that allowed developers to write functional code without knowing much about the underlying Windows API, pointers, COM plumbing and so on…Therefore, it’s natural that developers who would not (or could not) stand up to the rigors of  boilerplate C++ development might otherwise survive in the friendly confines of VB.

    But any argument about smart vs. dumb is itself dumb. I’ve known quality developers who spent 10+ years in C/C++ who embraced VB for its productivity…the point: The choice of using VB is not an indicator of “dumbness.”

    And now that VB.Net, as a language, is a more or less on par with C# will the VB bashing go away.  Heck no…the C++/C# crowd still needs an ego boost by “looking down” on someone.  In the same way Java developers look down on C#…silly indeed.

  28. In a post about the role of the personas that for several years have defined developer division’s thinking…

Skip to main content