Is Visual Basic dead? Yup. Wow, hey, that might have been the easiest blog post I’ve ever written. See ya next week!
Oh, wait. You probably want me to justify this claim somehow, don’t you? And then you probably want me to add support for the argument, nuance in position, and something actionable. Alright, fine. Have it your way.
Is Visual Basic Dead? Let’s Define Dead: Zombies and Nothingness
First, the nuance. To continue with the dead metaphor, let’s consider two subtly different flavors of dead:
- First, you have truly dead languages, fading into nothingness and complete obscurity. Think, for instance, of Pascal, which has plummeted on the TIOBE index from a peak of third most popular to today’s position of 136th, putting it behind every language you’ve ever heard of and 50 you haven’t.
- Then you have zombie languages. Zombie languages die out of the realm of first-class, maintained languages but refuse to stop running the software of the world. I’m looking at you, COBOL.
What determines whether a language rests quietly in its grave or goes lurching around the countryside, terrorizing companies with legacy applications in their portfolio? Well, obviously there are countless factors involved. But I’d argue that the languages most likely to zombify are the ones that enjoyed the most prolific adoption within the risk-averse, cost-conscious enterprise. For instance, the worlds of government and banking have no shortage of green screens and mainframe applications upon which they rely to this day.
So is Visual Basic dead? Again, yup. But I would argue that it’s a zombie language rather than a language fading to nothingness. As an industry, we collectively rapid-prototyped a lot of WinForms and VBA things into existence, many of which keep chugging along to this day.
But, But, But…
I’ve introduced nuance but not really any reasoning or evidence so far. And I can imagine some objections to what I’m saying.
First of all, Visual Basic has proven to be a lot more malleable over the years than most other programming languages. In the early days of BASIC became Microsoft Basic (and Microsoft’s first product). Then in 1991, Microsoft released Visual Basic, which was a groundbreaking drag-and-drop programming environment. In the decade that followed, it would become synonymous with programming productivity in a Windows environment, culminating in the iconic VB6. From there, VB made yet another (somewhat awkward) pivot with the release of .NET, becoming a first-class object-oriented language and often showing up with WinForms and Web Forms.
So how can I declare a language with this much history and resilience dead in any form?
And beyond that, what about its support from Microsoft? Before the release of Visual Studio 2010, Microsoft declared a co-evolution strategy for VB and C#, effectively fusing their fates. And while Microsoft has more recently backed off of that, they still have officially declared a strategy of keeping it a “first-class citizen of the .NET ecosystem.”
Does a language of which all of these things are true profile as a dead language?
Survey Results for VB are Actually Pretty Mixed
In short, yes. All of these things are true of Visual Basic and it still profiles as a candidate for zombiehood.
First up, let’s throw a little cold water on the TIOBE index as a means of declaring VB to be thriving. This index measures the number of global search engine searches for a given programming language. So I actually helped VB’s index while researching this article, for instance, despite having no intention to use the language to program.
Other surveys are less bullish on VB, such as Stack Overflow’s insight that Visual Basic beats out Perl, SharePoint, and WordPress for the distinction of being “the most dreaded tech.” So just these two measures taken together could indicate that a lot of people search for VB-related information out of reluctance and dread, in legacy contexts.
There’s also evidence in both places to suggest that a lot of newbies view VB as an approachable language for getting started and prototyping. But they also seem to view it as a stepping stone. As the aforementioned Stack Overflow developer survey results says, “VB tops the list of languages whose users would rather use another language in the future.”
Reading the Tea Leaves to Infer Zombie Status
Let’s also take a look at something Mads Torgersen said in the strategy announcement mentioned earlier:
This is a shift from the co-evolution strategy that we laid out in 2010, which set C# and VB on a shared course. For VB to follow C# in its aggressive evolution would not only miss the mark, but would actively undermine the straightforward approachability that is one of VB’s key strengths.
On the surface, this appears to be a gentle announcement of the separation of C# and VB, for the good of both. But think about the underlying implication. C# is going to continue to evolve aggressively, in response to market demand, for the good of its users. VB, on the other hand, will see a significantly slowed pace of change…to preserve “approachability.”
Who uses VB, according to what we’ve seen so far? Lots of folks with legacy WinForms and Web Forms applications, programming newbies, and folks that want to switch to another language. In response, Microsoft is slowing the pace of change as a win or draw for all of those people. Legacy codebase maintainers can let their charges run out the clock until replacement. Newbies can still come up to speed easily, and then they can also leave quickly for languages not optimized to preserve the status quo.
There’s Nothing Wrong With Working in a Zombie Language
So you’ve got a language that already skews old and far from the bleeding edge. And all signs point to that becoming more and more true as the language’s creator seems, alongside the rest of the world, to want to move onto newer and shinier things. If you don’t agree that it’s a zombie language yet, give it a year or five and you probably will.
I can imagine the resentment and objections at this point. “I’ve been building the best WinForms apps you’ve ever seen for 15 years now, and who are you to tell me to stop, you idiot?” “It’s a great language, and you’re just a fad-of-the-month fanboy.” And so on and so forth.
You can save the ire. There’s nothing wrong with working in a zombie language. A lot of people have been doing it with the aforementioned COBOL for years, and to great profits. In my consulting travels, I can’t tell you how many forklift upgrades from mainframes I’ve seen happen with only great reluctance and done only because the (well-paid) COBOL developers were literally aging out of the workforce. Those folks would retire, and desperate companies would then try to lure them back out of retirement for hundreds of dollars per hour.
You’ll probably enjoy similar career prospects if you continue to specialize in Visual Basic (especially pre .NET) and things like Winforms and Web Forms.
Go in With Eyes Wide Open
Absolutely none of what I’m saying here is intended to give Microsoft, Visual Basic, or Visual Basic programmers a hard time. Quite the contrary. I’m telling you this so that you can optimize for the future.
Is Visual Basic dead? Yup. It and its users might not realize it yet, but it’s headed for zombie status. Luckily, programming languages can enjoy long, fulfilling, and healthy deaths as zombies.