Microsoft has updated its .NET language strategy for the first time since 2017, the most notable change being a further weakening of the status of Visual Basic (VB), though the company promised that it remains “committed to Visual Basic.”
The post from Principal Program Manager Kathleen Dollard gives little away, stating that “you won’t find big changes” and referencing other documents for the detail.
There are three .NET languages, of which C# holds a special place both as the most popular by far, and also the language in which most of the framework and libraries is written. Microsoft promises continued innovation, but with a high commitment to backward compatibility, lamented by one developer who said “there is a need to limit the level of backward compatibility. No need to still support non-generic collections, for example.”
Microsoft Program Manager Immo Landwerth was quick to respond, saying that “we’re never going to make such an impactful breaking change” and adding an intriguing perspective on the Windows 8 experiment. “We tried to start fresh with .NET in the Windows 8 era and it has proven to be completely unworkable,” he said.
F# is the second language, a functional language that is popular in the financial community among others. Microsoft’s strategy is to “evolve F# to work well with C# and take advantage of new .NET runtime and library improvements.” There is also mention of the need to “rely on community to provide important libraries, developer tools and workload support.”
The awkward one for Microsoft is the third in the family, Visual Basic. The 2017 .NET language strategy document was a blog post by C# Lead Designer Mads Torgersen, and more detailed and opinionated than Dollard’s new piece. Torgersen stated that most VB developers “are using WinForms to build business applications in Windows, and a few are building websites, overwhelmingly using ASP.NET Web Forms.” Both WinForms and Web Forms are old frameworks, suggesting that VB coders are less interested than C# or F# developers in the latest technologies.
Torgersen also referenced a Stack Overflow survey showing VB as the “most dreaded” language developers have to work with, though as he added, it is not clear whether this is primarily VB.NET or the old VB, still found as the macro language of Microsoft Office.
An aside: Five years on, in the 2022 Stack Overflow survey the only mention for VB is as “VBA”, the macro language, and it is only third from bottom, the foot of the table being occupied by MATLAB. C# is 10th most loved, and F# mid-table at 17.
Microsoft’s VB strategy does seem to have shifted a little. In 2017 Torgersen promised that the team would “do everything necessary to keep it a first class citizen of the .NET ecosystem.” The new strategy, which describes VB as a language “favouring clarity over brevity”, says that VB will “adopt a consumption-only approach” when C# or the .NET runtime gets new features, and that “we do not plan to extend Visual Basic to new workloads.”
It has been clear for many years that VB was not the best language for those wanting to get the best from .NET. Arguably it was clear even when .NET was first launched at the turn of the century. C# was the new language of .NET; VB was remoulded for .NET and was always an awkward fit, not even satisfying VB diehards at the time many of whom vowed to stay with VB 6.
That said, in other contexts Microsoft is glad to hype the importance of citizen developers, and the plain English syntax of VB seems a good fit, making it a shame that the company has not managed to evolve it in a way that would make it more attractive for business developers.