What is the next VB 1.0?

The four colored boxes is the logo of VBA, and...
Image via Wikipedia

Visual Basic has to be one of the most polarizing technologies of the last twenty years.  No technology is at once as revered as the tool that brought Windows development to the masses, while also being maligned and looked down-upon by "real" developers.  Personally, I don't think there's a bit of doubt about the former, and I think the latter is a sad commentary on the people who trash-talk VB.

Even though I've largely converted to C# development myself, I've got a pretty huge soft spot for VB, because (yes, it's true) it's how I got my start in Windows development.  I wasn't alone; huge numbers of developers flocked to Microsoft development technologies because of VB.  Try as they might, Microsoft hasn't been able to catch lightning in a jar a second time.  They need to -- pretty badly -- if they're to regain dominance in a web world.

From time to time, I read about people who claim that such-in-such language or platform is the next VB 1.0, and inevitably, they miss something about the circumstances and environment that surrounded the real VB 1.0.  Here's an example:  Kottke is wrong -- Facebook isn't AOL; it's Visual Basic.

Facebook??  Really??

I don't think so.  I attribute VB's magic to two factors, and Facebook misses on both of them.  I'll tell you what the factors are so you can recognize the next VB if it really arrives, but first, we're going to take a little trip back in history to make sure we're clear on the context that birthed the VB magic.

VB, A Brief History

In 1991, Windows was taking the world by storm.  Windows 3.0 was the first legitimate reason to forget about DOS, and for the next half-dozen years, the Wintel platform was poised to enjoy spectacular growth.  Commercial applications were beginning to show up for Windows, but corporate development still happened mainly on DOS platforms like dBase or Pascal.  Businesses were anxious to reap the usability benefits of Windows applications, but for most, "real" Windows development was just too expensive.

Then VB 1.0 brought Windows development to "average" developers, but if you were around at the time, there's a very good chance you hadn't heard of it, because contrary to legend, VB 1.0 didn't make it big.  Neither did VB 2.0.

I made the jump from Clipper (dBase) about the time VB 3 came out.  I trained a team of COBOL programmers to work with VB, and we could distribute the apps we wrote for free.  In the early days of Windows, this was heady stuff.  In Geoffrey Moore's terms, I was a member of the pragmatists, and the pragmatists legitimized VB.  The magic of VB didn't happen until VB 3.

The Two Magic Factors

So what, then, are the two defining success factors of VB?  Ease of development and components.

(pause while everyone reaches for their keyboard to explain that ____ already has both of these...)

Let me explain.  When I talk about ease of development, I'm not talking about a better programming syntax; I'm talking about bringing development to people who aren't developing right now.  When I talk about components, I'm not talking about sharing source code; I'm talking about dropping functionality into a system with very little consideration for the internal implementation of that functionality.

The ease of use in VB came in part because of the language, but certainly not in whole.  Let's face it; VB is "basic" only to the extent that COBOL is really a "business oriented language".  I'd argue that a lot of VB's appeal came from the visual designer for Windows forms, as well as from the powerful abstraction of low-level instructions.  Thousands of us spent countless hours hooking up API calls so that we could eventually break free of that same abstraction, but some of us might never have grown to the ability level to consider API calls in the first place if we hadn't been working in VB.

There's a concept in usability that predicts that people will invest the time needed to learn a new system only if they see incremental benefits along the way.  People can get started in Word because the elapsed time to "Hello, world" is about ten seconds, and by the end of ten minutes, most people can handle paragraphs, bolding, printing and saving, and that's just about enough for most people to be productive.  Everything from that point on is gravy.

Visual Basic .
Image via Wikipedia

That's the kind of ease-of-use that VB had.  You get to "Hello, world" just about instantly, and most of the rest of the learning curve is commesurate with the skill you're trying to learn.

Then there's the VBX.  Remember those little gems?  They remain, in my opinion, the single greatest contribution to software development to come out of Redmond.  I remember opening up a catalog of VB components (yes, Virginia, this was before Google, and just about the time that Al Gore was busy inventing the Internet).  I'd open this catalog and see page after page with components I could buy - prices were almost always under $100.  A few days later, UPS brought me a box (no Internet, remember?), and just like that, I had a new component.  I got grids that could sort, report writers, doodads that could zip and unzip files - you name it.  And how much code did I have to write to get all this functionality?  Zip.  Bubkiss.  Squat.  Nada.

The VBX worked because it was easy to use, it was perfectly encapsulated, and (this is huge) because Microsoft juiced the market.  Remember all the "starter" VBX's Microsoft used to ship with VB?  You got all sorts of "light" versions of these components, and when you needed more go-power, you just upgrade.  Thus, a market is born, and everybody wins.

Will There Ever be Another?

If you look around today, who are the contenders to be the next VB?  How about Ruby-on-Rails?  I love the compact syntax and the "do what I meant" attitude, but it's not quite slick enough to empower people who aren't already using another tool.  Yahoo Pipes?  This could very well be easy enough for a non-developer, but it's limited in scope, and it seems to really be settling into a nich of "feed-manipulation" only.  How about an educational language like Scratch?  Maybe.

Note that none of these contenders is currently capturing the component market factor.  For this, you can look to blogging platforms like WordPress, Blogger, Drupal, and the like.  The breadth of add-ons for those platforms is really impressive, and "real" software development tools look down their noses on these components at their own peril.

Image representing Salesforce.com as depicted ...
Image via CrunchBase

Perhaps the closest thing we've got to a VB contender these days is a platform like Salesforce.com.  I think they're pretty close on the "ease-of-use" front, when you consider basic customization to be all the development that many people need.  The presence of a business taxonomy in the form of Account, Contact, and Opportunity records is a powerful leg-up to a business developer.  There's the beginning of a market, too.  The single biggest thing holding them back right now is pricing - every single app I'd ever want to write comes with a $x per user per month cover charge, and there are some apps for which this just doesn't make sense.

Honestly, in this day and age, the cross-polination from technology-to-technology is so great that I'm not sure we'll ever see another VB 1.0 as a distinct phenomenon.  Instead, I think we'll see a continuous evolution of ease-of-use and software components such that the bar is raised little by little across a whole range of products and platforms.

Still, the phenomenon that was Visual Basic is worth understanding, because there are powerful lessons here in how you win a market.

Has Visual Basic Lost Its Way?
Visual Basic's Next Chapter

Reblog this post [with Zemanta]

7 Replies to “What is the next VB 1.0?”

  1. My current shop uses all VB.NET. What got them started in that route was ASP 3. That, and, if you really want to, you can basically write VB6 style code in VB.NET. The way I look at it, all IDEs now have generalized the VB phenomenon by building in the Visual Editors, code completion, real-time compiling, etc. I'd say today all of .NET is VB.

    You are right though, there isn't really a VB contender the way the old VB existed in the market.

    Oh, and the largely conversational style of VB.NET's language is still much easier for people to grasp then C#, et al. I came from a C++ background, but like I said, most of my co-workers were “script kiddies” originally. C# is still very difficult for them to read and write…

    1. I made the jump to C# a bit over two years ago. It was much easier going from another .Net language because the framework is such a big part of .Net development. At the time, though, I certainly got the sense that C# was a lot more verbose than the equivalent VB.Net code.

      Personally, I think it's unfortunate that MS has marginalized VB.Net to the extent they have. Although they keep saying that they're behind VB.Net 100%, there's absolutely no question at all that it's a secondary language for them.

      The good news is that VB.Net doesn't appear to be in imminent danger of turning into Foxpro. There are still syntax improvements that are happening in VB.Net before C#, and this will help create “cross-pollination” among .Net languages that should improve all of them over time.

      1. There's not much to define VB.NET from C#. Not like with F# or Ruby, etc. Synatically it's very verbose. It has a few syntax add-ons like events, but lacks others like anonymous delegates. In fact there's nothing you can't do in C# that you can do in VB.NET, but there's plenty you can do in C# that you can't in VB.NET.

        Unless MS does something to VB.NET to set it apart from C#, the equation of which to use will continue to shift to C#.

        1. Keep your fingers crossed – I think MS is planning some big advances in dynamic language support in VS.next. Rumor has it we'll hear some announcements from PDC. Speaking of dynamic languages, have you heard of Phalanger.net? It's a PHP compiler for .Net. It looks like the project has sort of withered, which is too bad – I tried to get WordPress running on it, and it looked like it would have worked if I could have gotten it to connect to MySQL.

  2. There's not much to define VB.NET from C#. Not like with F# or Ruby, etc. Synatically it's very verbose. It has a few syntax add-ons like events, but lacks others like anonymous delegates. In fact there's nothing you can't do in C# that you can do in VB.NET, but there's plenty you can do in C# that you can't in VB.NET.

    Unless MS does something to VB.NET to set it apart from C#, the equation of which to use will continue to shift to C#.

  3. Keep your fingers crossed – I think MS is planning some big advances in dynamic language support in VS.next. Rumor has it we'll hear some announcements from PDC. Speaking of dynamic languages, have you heard of Phalanger.net? It's a PHP compiler for .Net. It looks like the project has sort of withered, which is too bad – I tried to get WordPress running on it, and it looked like it would have worked if I could have gotten it to connect to MySQL.

Comments are closed.