avatarMatthew MacDonald

Summary

Microsoft is ending the development of Visual Basic, transitioning it to a legacy language with limited support in .NET 5.

Abstract

Visual Basic (VB) developers have long felt marginalized by Microsoft, as the company has favored C# with more frequent and significant innovations. Despite some features like LINQ query syntax being shared between the two languages, VB has not kept pace with major technological advancements at Microsoft, particularly in areas like Blazor and Xamarin. The introduction of .NET Core

THE TECH GRAVEYARD

The End of the Road for Visual Basic

With development drawing to a close, VB enters a period of permanent stasis

Wikimedia Commons

Visual Basic developers have spent the last decade feeling that Microsoft is steadily marginalizing their favorite language. While C# gets a pile of innovations with every release, VB gets a decidedly mixed bag of changes. Some major features have crossed over (LINQ query syntax, nullable types), along with the occasional productivity gimmick (the silly My object). But ever since the jump from classic VB 6 to .NET, each new version of Visual Basic disappoints more developers than it excites.

The most glaring gaps opened up with Microsoft’s newer technologies. Don’t even try to use VB with Blazor (Microsoft’s next-generation framework for browser-based applications) or Xamarin (Microsoft’s toolkit for cross-platform mobile development). They were lean, fast-moving projects designed for C#.

The biggest disappointment was .NET Core, Microsoft’s cross-platform, open-source rewrite of the .NET Framework. VB developers rightfully expected to be first-class citizens in .NET Core — after all, that was the way it had always worked before. But .NET Core was not so kind. It allowed VB developers to write desktop applications but not websites, which was a huge downgrade no matter how you spun it.

Recently, Microsoft confirmed this strategic shift in a developer blog post titled, innocently enough, Visual Basic support planned for .NET 5. (If you’re not yet up to speed on .NET 5, it’s the next version of .NET Core, which will reunify the .NET Core and .NET Framework development paths for the first time.) In Microsoft’s blog post, they pledged to continue VB support for a handful of project types, including desktop applications (Windows Forms and WPF) and web services built with the ASP.NET Web API. But there was no mention of Razor or any other part of ASP.NET.

And then, buried in a paragraph with backhanded praised about VB’s “stability” — in other words, it’s lack of innovative change — there was this announcement:

“Going forward, we do not plan to evolve Visual Basic as a language.”

And, just in case you might mistake this for the current status quo (benign neglect), the post went on to clarify:

“Future features of .NET Core that require language changes may not be supported in Visual Basic.”

In other words, the evolution of Visual Basic is drawing to a close. The language will be supported, but it won’t often be changed, even if change is necessary to take advantage of new .NET features. The only possible conclusion is this: VB will not be a viable long-term language for new development. When .NET 5 takes over this year, VB will become just one more legacy language — albeit, one of the most popular languages of all time.

Sadly, the cost of maintaining a second marquee language while competing with JavaScript was simply too much for Microsoft to maintain. Going forward, C# will become the premier language for .NET development. VB will be just the latest casualty of Microsoft’s constant reinvention. And if you really want a language without semicolons and curly braces… well, there’s always Python.

To relive the glory days of Visual Basic, read The Rise and Fall of Visual Basic. And to get a once-a-month email with our best tech stories, why not subscribe to the Young Coder newsletter?

Visual Basic
Programming
Dotnet
Dotnet Core
Microsoft
Recommended from ReadMedium