Last week Microsoft announced a change in their thinking regarding their plans for the future development of the Visual Basic language. This announcement leaves a lot of uncertainty for Visual Basic developers, but Microsoft’s Anthony D. Green, Visual Basic Language Designer, has provided some details on this new strategy.
Green begins by listing the four guiding principles that were used as the foundation for VB development at that time:
- The common IDE and platform building blocks that VB and C# share.
- The shared “multi-paradigm, object-oriented, imperative, strongly-typed, etc” natures of the languages.
- The need for strong inter-language interoperability and the trend for the richest language innovation opportunities to be at the boundaries of APIs (e.g. Generics, LINQ, Async).
- Customer feedback on language tooling parity.
Today VB is viewed by Microsoft as a language that is well-suited to those already targeting the Windows platform and/or are new to programming in general (at the very least, programming is not their primary vocation).
Another factor that affects C# but not VB, is the rise of non-Windows platforms. In Green’s view, VB is not well-suited for things like game development or targeting Mac OS X. This lack of suitability for non-Windows platforms causes a dilemma, as the open-source roots of F# and growing support for open source tools in C# gives those two languages an advantage in attracting and retaining developers as compared to VB. Having more developers for C# results in a positive-feedback loop where they can contribute to more advancements, thus attracting more developers.
Finally, Green presents a case that maintaining the development schedule and features alignment between C# and VB is a strain on limited resources. Microsoft would like to focus on C#, as it provides the widest amount of feedback in the quickest manner possible. As this feedback yields instances where concepts would be of value to VB developers, Microsoft will consider porting them from C#.
What does this mean for VB developers who want to know that their investments in the language will be rewarded? The four previously listed precepts have been replaced with the following goals: tooling, platform, and language.
Green says that quality tooling for VB will continue to be a point of emphasis, and mentioned how Live Unit Testing in Visual Studio 2017 supports VB. On a platform basis, VB will be maintained so that it can support the .NET Standard for .NET Core. The language itself will see new features and keywords added, but only if they make sense for VB’s mission –not just because they were added to C#. Green gives the example of UTF-8 strings as something that will not be added to VB.
The response from VB developers is very passionate, with many looking for VB to have multiplatform support—including Microsoft technologies like HoloLens. Reed Kimble writes, “It is a Chicken-and-Egg problem. Microsoft doesn’t provide a feature because they don’t hear people asking for it. People aren’t asking for a feature because Microsoft hasn’t already provided it, so that must mean they can’t have it.”