The silent majority…

One piece of conventional wisdom that I hear now and again is that “nobody uses Visual Basic.” When someone’s giving a talk and asks people to raise their hands if they use VB, they say VB’ers are in the minority. In the buzz-o-sphere, Visual Basic seems to be only discussed when debating whether some other language is the “new” Visual Basic. Even Microsoft has been accused on occasion of seeming to favor C# over VB in things like samples or documentation.

We were having a discussion internally about this piece of conventional wisdom and whether the numbers really backed this idea up. And they don’t. If you look at some of the numbers:

  • Visual Basic is the #1 .NET language (as reported by Forrester Research)
  • Visual Basic is the #1 downloaded and #1 registered Express Edition (topping the #2 position by 20%)
  • Visual Basic is the #1 MSDN language dev center and blog in terms of traffic
  • The Visual Basic Team blog is in the top 1% in readership of all MS bloggers (I don’t know where I fall in that since I host independently.)

All this points to a large “silent majority” of VB users out there who simply go about their work day after day yet don’t make a splash in the places that some people seem to think are the ones that matter (i.e. conferences, blogs, etc.)…

65 thoughts on “The silent majority…

  1. VBMan

    Paul –

    Glad you posted this information. From my own observations, this seems to be right on. All the "kewl" kids who are seeking attention and want to be part of the "in" crowd, are using (or profess to using) C#. They (C#’ers) remind of the vocal minority of activists. Whiney and insecure, always shooting their mouth of and looking for ways to elevate their status into the intelligentsia.

    Devs who have actually have a life and job, and don’t have time to blog and spend the wee hours of the night tinkering with bits, I believe, are more likely to use VB. Call ’em Morts, call ’em whatever, but that IS the reality.

    Not every business developer is a comp sci propeller head. Some, like me, love to solve business problems using VB.NET and prefer the simplicity, elegance and expressiveness of VB.NET over C#.

    I only wish that MS would b*tch slap themselves and do more to publicly profess their love and support of VB. Screw the C# whiners… they’re the minority of your revenue stream anyhow. :-))

    Time for MS to show the VB community some REAL love, and not just lip service. Thanks goodness fo you Paul!

    Reply
  2. Nate Taylor

    Thanks for posting this.

    I am a former MFC C++ developer (6 years) with sides of VB6 here and there. I started a new job and had the choice of C# or VB.net in terms of my new project. I chose VB.Net for no particular reason.

    I’ve often wondered if I made the wrong decision because so much of the code samples I see are C#. I don’t mind converting C# to VB.net (it’s not that hard) but I was beginning to wonder if VB.net was on its way out (despite VBx being talked about).

    Reply
  3. Matt

    I have a lot of respect for VB6 and ASP/VBScript too. VB is a pragmatic language and I’ve been pleased with the results I’ve had with it over the years.

    With that said, all of the statistics you give don’t seem to take into account professional programmers vs. non-professionals. This is not a knock against VB, far from it. VB tends to be the gateway to programming for a lot of people. And that’s exactly why it could be showing up in the stats that way. That would also explain why you see so much about C# in professional literature instead of VB.

    In my eyes VB was stripped of all advantages with the move to .NET. From a professional point of view, it’s dead. Maybe it’s dead like Pascal or COBOL are dead, so dying a very slow death. But dead nonetheless. I mean, they make new versions of Fortran too, ya know? I’m still not going to code in it.

    Reply
  4. Jonathan Allen

    > In my eyes VB was stripped of all advantages with the move to .NET. From a professional point of view, it’s dead.

    Dead, unless you want to work with COM, XML, or the new stuff like Jasper and the DLR.

    Reply
  5. Matt

    COM and XML are non issues, and Jasper is off my radar, but if the DLR can bring back the tight code-and-run cycle I liked in VB6 then I say more power to you guys.

    Like I said, I have a lot of respect for VB, and I’m still pissed they ditched ASP in favor of J2EE, er, ASP.NET. It wasn’t the prettiest code but I got things done in it fast and it wasn’t a pain in the ass to do.

    Reply
  6. Ron

    Microsoft could and should show the VB world some love with more examples, books, events etc. I don’t get the competition between VB and C#, its all just a preference of which syntax you prefer. I prefer VB, to me it is easier to read, but thats just me.

    As for the guy who said that COBOL is dead, I guess you never worked at a large company. Last year something like 90% of financial transactions around the world ran through COBOL programs. That doesn’t sound like it is dead to me. They are still making Mainframes and as long as they do that, COBOL will live on. At least one company has even produced a COBOL.NET

    Reply
  7. VBMan

    @Ron –

    I agree; most of the world’s financial and insurance industries are still COBOL based. I read somewhere, that 80% or so of all the worlds "real" business transactions are still COBOL based.

    MS developers a little myopic like that you know… as if everything in the world is now .NET based. Puh… I love .NET, but get real Matt. Dead? I know COBOL consultants making $$ that the commodity supply of .NET devs dream they could make…

    Reply
  8. spanky

    I worked in VB back in ’95-’96 and again in 2002-2003. It sucked both times. VB is an easy language to learn and use but that is actually it’s biggest downfall (similar to Lotus Notes). It’s terribly easy for someone with little experience to build one big, huge pile of crappy code that someone else then has to fix… ugghhh, I’ll never touch it again.

    Reply
  9. Matt

    First off, I apologize profusely for stepping on the COBOL nerve! Who knew?

    Still guys, you don’t mention how many NEW systems are being created in COBOL. Declining number of systems + diminishing number of programmers = dead. Maybe "dying" or "mortally wounded" is more correct? I’d be alright with that. People still try to speak Latin too.

    You can throw stats at it all day long. You can also toss around stats about JCL, Ada, RPG , etc., etc. And yet still it’s dead. And who really cares? Weren’t we talking about VB?

    Btw, where are all the people rushing to Pascal’s defense? No love for Delphi?? πŸ™‚

    Reply
  10. Tikola

    And of course there has never been a bad C# program written by a professional programmer!

    I program in both languages and to me its only semi colons and curlies versus line continuation underscores.

    Just remember a language does not make a good programmer.

    I think the only thing that takes away from Visual Basic is its name. If it was called V#, I think it would be easier for the silent majority to be less silent.

    Reply
  11. Anthony D. Green, MCDP

    It is not simply the impression that VB is risky platform but as much or more the perception (be it accurate or not) that the quality of developers who profess VB as their primary language is less than that of their C# counterparts. Perhaps it is that C-derived languages proliferate academia and those exposed to Java and C# and C++ in college seem to gravitate towards C# and go on to do great things and build great frameworks. I’ll spare you my disparaging words on the value of CS degree these days in “the real world” with regards to code quality.

    If the ideal pool of professionals is mostly in the C# segment and those of quality sieved from the VB community are (by definition IMHO) bilingual or at least can pick up C# then it makes sense to standardize the organization on C#. This is true not only from an internal perspective but from a marketing standpoint. “Code in C# – people will think you’re good even if you suck”. I’ve seen the rotten fruits of that assumption but that’s neither here nor there.

    We are being forced into closets and caves and underground communities and many of our number have simply given up and converted for quality of life reasons. I do not count myself among them but even now I feel the suffocating pressure of semicolon wielding zealots. As a consultant, client outlook overrides this “personal preference” of legend that was foretold to be the sole determining factor in this “choice” that once was. As an employee, organizational standards override my “matter of personal preference” and all my labors will be recorded in the annals of “Works in C# Great and Small” regardless of the fact that they were wrought sans semicolon, pried from my bleeding fingers, and disfigured – translated – to appease the unmerciful marketing gods.

    And so this cycle continues; self-fulfilling and ever-accelerating. Do not be so quick to discount “conventional wisdom”. For whole markets have been born and collapsed on words less conventional and less wise. Surely a company such as Microsoft can appreciate the power of perception, no?

    It is not enough to say that there is a majority of VB.NET users in the world – you must make it so that the majority of that majority is of competitive quality. It is not enough that VB is a choice – you must make it a compelling choice. It is not enough that you recognize a silent majority – you must empower and inspire them to speak.

    Reply
  12. Pingback: @ Head

  13. Jonathan Allen

    It sounds like the biggest adoption problem is the inability to covert VB 6 applications to .NET.

    Why is this still an issue after all this time? Why can’t Microsoft stop treating stuff like the Printer object as a side project and move it into the main release?

    Reply
  14. Scott Brady

    How does what language you use determine the quality of your code?

    VB.NET like all other languages is just a tool, and misused will produce less than desirable results.

    Where I live, many employers that I have worked for, prefer their applications built with VB.NET simply for the readabity aspect and it is easier to get another programmer to maintain their codebase if their current programmer up and leaves.

    For the record, at work I code in VB.NET but at home I play with C#. As a professional programmer it pays to be able to pick up and run with whatever your required to use.

    Reply
  15. Csaba

    Hi all, If VBx has enough dynamic possibilities so that VBx can replace VBS and PowerShell as script tool for administrators, many more will boost about VB and say loadly that they are using VB.

    And if VBx kan replace VBA, then VB might be larger than Java again. – I hope it is not just wishful thinking.

    Reply
  16. spanky

    Me again. Sorry (well, not really), I’ve been absent from the MS scene for a few years but I thought the whole thing about DOT.NET was that you could program in your language of choice (starting with the acronym MS of course) and share the compiled module with someone else using their stupid language of choice and everyone gets to pretend their language is superior to the other’s.

    Am I missing something?

    Reply
  17. Tom A.

    Well of course more people use Visual Basic than C#. Visual Basic.NET is pretty much a dumbed down version of C#.NET. C# is easier and faster to use once you learn it, but the learning curve can be more difficult in the first place which explains all the VB adopters.

    This also explains why blogs and boards tend to be dominated by the C# crowd. The more serious programming is to your life, the more likely you’ll be visiting and posting on development forums.

    Reply
  18. Herbert

    1. VB.NET is speed:

    I am teaching programming for students entering university. Students are free to do their examples in C# or VB.NET. They usually know C/C++.

    Result: Students using VB.NET are faster in coding, and quicker in finishing samples.

    (one reason could be the odd location of { } on European keyboards)

    2. VB.NET is suppressed by Microsoft and its authors:

    Both independent gurus like Juwal Löwy or M.L. Bustamente, Microsoft employees and the herd of MVPs … whenever a book about a new technology appears, all the samples are C# only.

    Result: I wish Microsoft forces MS-Press to release only books that contains samples in BOTH languages.

    3. There really is no difference between C# and VB.NET.

    If one language has a feature the other one has not – it will be repaired in the next VS release.

    Result: Document how to bypass a feature only available in C# in VB.NET

    4. Many MSDN/VS.2005 online VB.NET samples still are not written by VB.NET programmers. They are auto-converted from C#. Which makes them look "alien" to VB.NET programmers.

    Result: rewrite the code-converters to produce VB.NET style VB.NET code

    Reply
  19. Pingback: STEFANO DEMILIANI

  20. KK

    VB would suffer the same fate as VFP. It is a matter of time.

    Anybody who had used VFP would know its short learning curve, SIMPLICITY and a good business programming language.

    Now, Microsoft needs a single rallying language and focus to match what is coming out from Sun. Just checkout http://www.netbeans.org and you know what i mean. Simplicity in the the ever increasing complexity.

    Reply
  21. Gary

    "How does what language you use determine the quality of your code?"

    Tell me of a single Microsoft internal development project that used VB over C#? I doubt anyone will come up with anything on that one.

    Language doesn’t determine quality but I think you can safely stereotype here. From my experience VB programmers typically lack moderate study in the computer science field. The large majority of computer science programmers use C/C++ throughout their programs. VB[N] was their first language and they often have no real sense of what’s going on under the hood. They also make a complete mess out of OOP. Most have learned VB by dabbling with Excel/Access macros and eventually progressing to VB6/VB.NET.

    VB is more "popular" than C# because of the high number of cubicle widget programmers out there. They make little applications for their business area and that’s about it. You will find A LOT of programmers out their without computer science degrees and VB was the easiest way for them to get into the field because it is a very forgiving language.

    To much typing in VB.NET and as a C# developer you’ll find if you need to program in Java the switch is effortless (other than the framework itself and a few keywords).

    Reply
  22. Tikola

    Well if you have a mortgage or car repayments, mouths to feed or holidays to go on etc etc, then if C# pays those bills great, if VB pays those bills great. After that what else matters.

    In 10 to 15 years I doubt C# or VB will be in vogue we will have some other nonsense to discuss.

    Reply
  23. Elijah

    "Tell me of a single Microsoft internal development project that used VB over C#? I doubt anyone will come up with anything on that one."

    Here are two:

    Silverlight

    Javascript for Silverlight (Its compiler is written in VB)

    VB is a language that focuses are simplifying–take XML literals and the full query comprehensions. C style languages focus on only introducing features that are useful in all aspects of programming; foregoing productivity.

    I often liken C style languages to the African Click-Clack of programming languages due to its bizarre use of symbols and syntax. Truly VB’s ugly sister.

    Reply
  24. Gary

    Silverlight? Not so sure. Yes I agree about the Silverlight Javascript compiler but not Silverlight itself because Silverlight runs on a version of the .NET Framework that includes a subset of the WPF UI. The .NET Framework is written mostly in C++ and some C# so other than that jscript compiler I’m not sure how VB figures in here. Compilers are written in C++ (even VB’s). The only part of the framework written in VB.NET is Microsoft.VisualBasic.dll so I’m not sure how VB figures into silverlight.

    Now in response to your XML Literals, Paul Vick from C# team says:

    1. It is extremely risky to put some portion of your language design in the hands of another language design team. In other words, if VB integrates XML as it stands today into our language, what happens in the future as the XML standard continues to evolve? What we do today may be sufficient and there may not be any demand for adding any further features the XML standard may add. But maybe not. And those features will not necessarily have been designed with an eye towards whether they’ll work well in VB. Heaven knows we’re going to have enough issues shoehorning XML into the language, what happens if we hit some really sticky issue in the future? What if XML heads in a direction we’re not willing or able to go in?

    2. It is extremely risky to tie yourself explicitly to a technology that may or may not be here 15 years from now. Right now, XML is king. But what happens if some other technology comes along and knocks it off its perch? What if things radically shift in some other direction and XML suddenly becomes a side track instead of the main line.

    Linq, XLinq in particular will help satisfy.

    Reply
  25. Elijah

    I’m glad to break this news to you Gary, C# isn’t going to be the language of choice on Silverlight: http://www.infoq.com/news/2007/05/VB-JScript-Compiler

    C# isn’t going to be supported on the DLR (for obvious reasons). I bet apps like office are going to use the DLR for scripting.

    VB 10’s compiler IS going to be written in VB!

    I’m actually not a bomb thrower when it comes to languages; VB is just a much better choice for me.

    I find many Click-Clack developers to have an elitist mentality. They think they know VB but when I question them they NEVER do. Do you really know VB?

    Considering Xaml, WCF, SQL, and many other major technologies rely on XML do you really think it’s going anywhere? Why not have a rich way to use it? Have you seen XML literals in conjunction with Linq used?

    Any time you introduce a new feature in a language, you are taking a risk. The goal is to have rich expression but not have fad features that will loose relevance to soon. VB strikes close to the cusp of this parabola.

    Steve McConnell, in Code Complete second edition, states that the primary technical imperative in software is managing complexity. VB helps with this.

    Before grabbing your Click-Clack (C#, C++, Java) loin cloth and spear in a holy war against VB stop and consider that languages are PRODUCTS that are differentiated and appeal to different rungs in the developer market.

    Reply
  26. VBMan

    Elijah – beautiful. Just beautiful. Love to watch C# (or any language) elitists get b*tched slapped like little girly men they are.

    Click-Clack… now that’s just classic. Gotta remember that one. The imagery is just too funny on that one. Bunch of greasy haired dorks click clacking at each other puffing their chests out as the single female dev in the group walks by…. πŸ˜‰ Thanks for the laugh!

    I’m with you. VB is the hottie sister. C# the ugly one with the attitude. Puh…

    Reply
  27. Kuria Ndungu

    "I often liken C style languages to the African Click-Clack of programming languages due to its bizarre use of symbols and syntax. Truly VB’s ugly sister"

    Exactly what do you mean African?

    Hi, i’m an African living in Africa. I love and have used vb for the last 8yrs. I can use both C# and VB and prefer VB. In my Computer Science Course i had a choice of VB and went for it.

    I’d just like to know the Tone that was meant in the "African" Remark.

    Reply
  28. JR

    The fact that the two are sematically convertable between each other means that c# coders are just using VB anyway. How that must hurt. Perhaps they should all consider assember as the only academically pure language and get real – VB apps are quick to write and easier to maintain if they’re written well. c# is much harder to maintain and trying to find decent coders is difficult and expensive.

    Reply
  29. DancingHart

    Discussion so far ignores syntax. Vb syntax is moving toward Java/C#. Look at try/catch, etc.

    Additionally, object oriented programming reduces importance of syntax.

    Now we’re evoking objects and methods so that we’re really jot using language syntaxas much.

    Reply
  30. Pingback: Richard Clark

  31. Pingback: ?????? ?????

  32. VBMan

    Kuria –

    Now understanding the context of the reference, doesn’t that image just crack you up? The image of C# leemers walking in circles "clacking" at each other… πŸ™‚

    Of course, one could say us VB’ers just drool… πŸ˜‰ knuckles dragging etc…

    Reply
  33. Pingback: Greg Robinson's Blog

  34. jason

    I’m somewhat new to .Net. I picked C# for familiarity with other languages I’ve worked with including <gasp!> Perl. I did some VB about 10 years ago (V3/4 ???). I find VB somewhat clunky, but in the end, it’s .Net, right? I’m sure there are reasons to use one over the other for specific items … and there will always be.

    That VB would be more used is not a surprise, there’s a bigger base partly because it’s been around longer. That produces more documentation, examples etc. Also consider the inertia of existing programmer-base.

    Now …for fun (See link before reading the rest of the comment)

    http://blogs.techrepublic.com.com/10things/?p=262

    Gandalf, Martyr and Vince Neil (merely due to his age) probably use VB. Fanboy and Evangelist are probably C# coders … what about the rest?

    Enjoy!

    Reply
  35. commenter

    I’m not a huge fan of the VB syntax Full Stop For some reason Open Bracket I dont know why Close Bracket I find it harder to read than Comma for example C# Full Stop

    Reply
  36. VBMan

    Well…. "C"obol is a c-language! ;-))

    And I thought VB was the Cobol of the future, looks like C# is taking that role! πŸ˜›

    Reply
  37. Howard

    I’d love to say I agree with you 100% as I develop in VB.NET ….

    But just one feature in VS200x tells me C# is the favoured language:

    REFACTORING

    Yes, I know I can get Refactor! download as an add-in, but in comparison with the built-in C# it is buggy and used to crash my VS regularly.

    I will only believe MS is serious about VB when they add proper refactoring tools to the IDE.

    Reply
  38. Pingback: Gaidar Magdanurov

  39. Pingback: Gaidar Magdanurov

  40. Pingback: Caffeinated Coder

Leave a Reply

Your email address will not be published. Required fields are marked *