The TIOBE index is an index that rates the popularity of programming languages. It recently created a bit of a hubbub when it listed Visual Basic .NET on the fifth position. This was a step up from the sixth position in June 2018. This is in contrast to the perception and gut feeling of many programmers out there. However, there can be several explanations to this phenomenon. But there are also some concerns with the TIOBE index. And should we even care?
The TIOBE index
I recently tweeted this (partial) graph of the TIOBE index:
The graph shows a steady rise of the popularity of VB.NET in recent years. You can find the actual numbers and other programming languages on the TIOBE index website.
The TIOBE index works by inspecting the amount of results a search for the programming language yields across a variety of search engines.
Several possible explanations have been given for the rise of VB.NET’s popularity.
Many businesses have VBA code that is vital to their operations. VBA is short for Visual Basic for Applications. It allows a user to automate parts of a host application. A popular use-case for VBA is to heavily automate Excel to a level that is no longer possible with simple formula’s.
Microsoft’s last release of VBA was VBA 7.1 and it was linked to Office 2013. Since then, there haven’t been any updates. The last update added some 64-bit support, but not all controls are supported. It is clear Microsoft isn’t focussing it’s attention on VBA.
There is also a real security risk with VBA code. Malicious code can easily be added to a Word or Excel document and sent to unsuspecting users. This is why IT administrators often disable VBA by setting the correct group policies for the entire company.
With these aspects in mind, it is clear why many companies are looking to migrate their VBA applications to a newer platform that has more support. Migrating VBA code to Visual Basic .NET is certainly one of the easier paths. Especially since the VBA code was often written and maintained by less technical business people. VB.NET provides the same readability and easy learning as VBA did.
Visual Basic for Applications was an implementation of the Visual Basic language in host applications, usually Office applications. But you could also just write standalone Visual Basic applications.
Where VBA was traditionally used by business people, Visual Basic was more often used by professional developers. This group has moved on to newer eco-systems faster than the business people have.
The reason for this, I believe, is that business people use Office applications where VBA can still be used. Developers, on the other hand, have easily moved to Microsoft’s .NET products (VB.NET and C#).
As companies increasingly look to move away from Visual Basic, the move to Visual Basic .NET seems the most logical.
There is, however, criticism on the TIOBE index. Because it’s an indication of the number of search results, nothing else. Sure enough, if you search for “vb.net” and “c#” in Google, VB.NET has more results:
That’s 558 million for VB.NET and only 132 million for C#. But critics of this approach have argued against the TIOBE methodology.
One argument is that VB.NET has more pre-StackOverflow websites that are no longer maintained. The heyday of VB.NET was in the years before StackOverflow became popular, the critics say.
StackOverflow is a massively popular Q&A site for software developers. If we look at the amount of questions there, we would conclude that C# is more popular:
At the time of this article, there are more than 1.3 million questions tagged with C#, for only 124,828 with VB.NET.
This would indicate that C# is more actively used by software developers around the world. On the other hand, it can also mean that VB.NET developers have flocked to StackOverflow less, and stayed more in traditional websites and forums.
Another fact that critics point out is that Google Trends indicates a much larger volume in searches for C# than for VB.NET:
As you can see, there are much more searches for C# than there are for VB.NET. In fact, if we look only at VB.NET, there has been a decline since 2014:
Not the rise in popularity that the TIOBE index portrays.
What Does This Even Mean?
A first thing to note is that it is very hard to measure programming language popularity. Up to now, there hasn’t been a really good set of metrics. So most of these statistics should be taken with a grain of salt.
Right or wrong, these numbers influence the career choices of professional developers. VB.NET developers will start looking at alternatives to learn. Because they’re already familiar with the .NET ecosystem, they will easily learn C#. It’s just a different syntax.
This can severely reduce the pool of skilled candidates to recruit from. I’ve touched on this before, when I covered the potential risks of using a legacy programming language.
It’s Not A Contest
Before we start panicking, we should assure ourselves that using a less popular language is not a reason to switch to another one.
Valid reasons to move away from a legacy programming language are a lack of:
- potential candidates
In the case of VB.NET not all these criteria are met.
Microsoft has mentioned that certain new features won’t be coming to VB.NET, but will be added to C#. Although these are not currently important enough to warrant major concerns. Microsoft has even committed to keeping VB.NET supported in the upcoming .NET Core 3.
Should We Care?
It’s apparent that the amount of enthusiastic VB.NET developers has been declining over the years. But this doesn’t mean the language is dead yet. There is still support and there are still many tools available to your developers.
Visual Basic .NET remains a very simple language to learn, which makes it accessible to business people too. Though over time, other easy-to-learn languages like Python may overtake it.
Depending on the application you have running with VB.NET, you may want to start planning for a migration path. The good news is that skilled C# developers won’t have too much trouble migrating VB.NET code.
The potential difficulty lies in finding developers that want to work with VB.NET, as it has lost popularity among developers. Don’t hesitate to contact me if you’re looking for someone to plan a migration of VB.NET code to another language.