Microsoft has released a detailed update to its .NET language strategy, providing guidance on how three languages will play a part in its forward strategy and what their roles will be. The lengthy blog post covers Microsoft's language strategy, the framework for each language, and how each language will evolve.
Microsoft first introduced the .NET tools in 2002. At the time, it had two languages: C# and Visual Basic (VB). Since then it has added a third language, called F#, which does its own special functions.
Microsoft notes that C# is currently one of the most popular programming languages, and its Stack Overflow survey confirms that. Visual Basic doesn't even show up, but that could simply mean VB is popular elsewhere, like with beginner programmers, who move on to C# or C++.
C# is going to continue to pick up more complex features as it has throughout its history. Microsoft promises to "innovate aggressively, while being very careful to stay within the spirit of the language." It wants to make sure improvements benefit all or most developers, avoiding over-focusing on a given segment. C# 7.0 will gain integrated support for tuples and pattern matching syntax as its primary new features.
As for Visual Basic 15, it will also gain some tuples support but not to the same degree as C#. Microsoft wants to keep Visual Basic approachable for new developers and focus on things like cross-language tooling experiences since many VB users also use C#.
Microsoft admits this is a shift from the co-evolution strategy it laid out in 2010, where C# and VB were set on a "shared course." For VB to follow C# in its aggressive evolution "would not only miss the mark, but would actively undermine the straightforward approachability that is one of VB’s key strengths," the company said.
The third .NET language is F#, which was developed to be an easy to learn and use language with more enterprise scale use, particularly around modeling and analytical work. Developers state they can go from not knowing the language at all to having applications in production in weeks.
For F# 4.1, Microsoft said it will offer vastly improved tooling in Visual Studio through integration with Roslyn’s editor workspace abstraction, targeting of .NET Core and .NET Standard, and improved error messages from the compiler.
Microsoft is also encouraging community participation in F# by continuing to build the necessary infrastructure and tooling to complement community contributions, something different from its other languages.
Splitting the development paths of the two main languages seems to be a little late. When Visual Basic .NET came out in 2002, it broke compatibility with old apps and lost a lot of its simplicity because it was basically turned into C# with a VB face. After losing 15 years of momentum, you can't backtrack. That's why VB is basically a non-entity now.
Microsoft says the blog post is not a roadmap -- rather, it is meant to offer guidance so whatever decisions are made for the languages, people understand where they are coming from. "If you’re left to fill in the gaps, that easily leads to unnecessary fear or speculation. You have business decisions to make as well, and the better you can glean our intentions, the better informed those can be," the company said.