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.
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.
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.
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.