Tuesday, March 17, 2020

Microsoft Plots the End of Visual Basic

.NET Team:

We are supporting these application types to provide a good path forward for the existing VB customer who want to migrate their applications to .NET Core. This allows Visual Basic customers to take advantage of new platform features like side-by-side deployment, cross platform support, performance and new API improvements.

One of the major benefits of using Visual Basic is that the language has been stable for a very long time. The significant number of programmers using Visual Basic demonstrates that its stability and descriptive style is valued. Going forward, we do not plan to evolve Visual Basic as a language. This supports language stability and maintains compatibility between the .NET Core and .NET Framework versions of Visual Basic. Future features of .NET Core that require language changes may not be supported in Visual Basic. Due to differences in the platform, there will be some differences between Visual Basic on .NET Framework and .NET Core.

Paul Thurrott (via Hacker News):

When Microsoft released the .NET version of Visual Basic, originally called Visual Basic .NET, alongside C# at the beginning of the .NET era, the two languages were evolved together and had roughly identical feature sets. But this changed over time, with professional developers adopting C# and many fans of classic VB simply giving up on the more complex but powerful .NET versions of the environment. Today, virtually all of Microsoft’s relevant developer documentation is in C# only, with VB source code examples ever harder to find.


What this means to VB developers is that they might be able to bring their existing codebases forward to .NET Core or, soon, to .NET 5.0, which will replace both the traditional .NET and the open-source and cross-platform .NET Core when it’s released in late 2020. The issue is that not all legacy technologies will be supported going forward, so developers using WebForms, Workflow, or Windows Communication Foundation (WCF) will need to stick with classic .NET. Those applications will continue to work and be supported until the underlying Windows versions are retired; classic .NET support life cycles are tied to the Windows versions on which they were initially deployed.


1 Comment RSS · Twitter

Sören Nils K

It's kind of a shame. VB.NET had some really interesting features like XML literals. It also got a few things right that C-style languages including C# didn't: no, I don't want the result of `7 / 100` to be `0`, but `0.07` (C# inherits C's behavior to default to integer division and silently truncate the result).

It seems Microsoft never quite knew how to position it next to C# — those who came from VB Classic and wanted to stay on that language were also stubborn enough to want to stay on the same framework; they regarded .NET as too complicated. Those willing to move to something more modern were served just fine with C#.

And of course .NET in general didn't quite play out the way they were hoping (particularly on the Windows desktop side). Now that it's seeing quite the renaissance, it almost entirely comes from people who prefer to write C#.

Leave a Comment