Microsoft: ‘We Do Not Plan to Evolve Visual Basic as a Language’
In its move to the open-source, cross-platform .NET Core, Microsoft will support Visual Basic in the upcoming .NET 5 and is expanding the programming language’s supported application types to help VB developers migrate their code, but noted “we do not plan to evolve Visual Basic as a language.”
The expanded project types to foster a move to the new framework were in response to customer feedback, said Microsoft, which noted advantages of the language such as stability.
“We’ve heard your feedback that you want Visual Basic on .NET Core,” said the .NET team in a March 11 blog post titled “Visual Basic support planned for .NET 5.0.”
The expansion of supported project types will help VB coders move their existing applications to .NET Core/.NET 5 and leverage cross-platform functionality and features such as better performance, side-by-side deployment, and new API improvements.
The .NET Core evolution is currently at version 3.1, with the unifying .NET 5 planned for November. Microsoft announced that with .NET 5, VB’s supported project types will increase beyond Class Library and Console applications to also support:
- Windows Forms
- Worker Service
- ASP.NET Core Web API
However, it was the warnings about future support and evolution of the language that caught the attention of multiple developers who commented on the post, which garnered an unusually high number of comments (39 and counting steadily at press time).
“Going forward, we do not plan to evolve Visual Basic as a language,” the .NET team said. “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.”
Microsoft also noted that a VB app migration to .NET Core isn’t necessarily in the plans for all developers, as it works fine with the Windows-only .NET Framework, which will be supported as long as Windows is.
“If your application uses technologies that aren’t supported on .NET Core, like WebForms, Workflow or WCF, you might want to stay on .NET Framework because porting will require work to move to newer technologies” the post said.
That aforementioned developer feedback in the post’s comments section ranged from praise for VB to confusion about what the announcement means. One developer said:
It’s not April 1st is it?
This post basically breaks Microsoft’s promises in Kathleen Dollard’s post barely four months ago:
In that post (actually published Nov. 12, 2018, but updated Oct. 8, 2019), Dollard explained Microsoft’s “Visual Basic in .NET Core 3” strategy and quoted parts of Microsoft’s .NET Languages Strategy guidance such as:
- “We will do everything necessary to keep it a first class citizen of the .NET ecosystem.”
- “We will keep Visual Basic straightforward and approachable.”
- “We will keep a focus on the cross-language tooling experience, recognizing that many VB developers also use C#.”
- “We will focus innovation on the core scenarios and domains where VB is popular.”
It wasn’t clear what promises in that post were allegedly broken with this week’s news as claimed in the reader comment, but it nevertheless added to the confusion and uncertainty among some developers about VB. For example, one developer commented:
I did not clearly understand the post.
From one side it said that is stable and use by many developers and will be supported in .net core
But from other side said that
“Going forward, we do not plan to evolve Visual Basic as a language.”
Can anyone in simple words explain if we can continue feel comfortable with VB.NET ?
Shall we forget and start turning to c#?
The .NET team didn’t seem to think so, ending its announcement with: “Visual Basic is a great language and a productive development environment. The future of Visual Basic will include both .NET Framework and .NET Core and will focus on stability, the application types listed above, and compatibility between the .NET Core and .NET Framework versions of Visual Basic.”