This week, Microsoft explained how it plans to evolve its current crop of software development languages. And fans of Visual Basic may want to sit down and collect their thoughts before reading any further.
“We haven’t always been good at sharing how we make decisions,” Microsoft’s Mads Torgersen writes in a post to the .NET Blog this week. “Our language strategy, the framework for how we think about each of our .NET languages and chart their evolution.”
Here’s a quick rundown of Microsoft’s current thinking around its most popular development languages.
C# is Microsoft’s most popular language and is used by millions of people, Torgersen says. (According to Stack Overflow, C# is the 3rd most popular programming language in the world behind JavaScript and Java.) It was launched alongside .NET over a decade and a half ago, and will remain Microsoft’s primary focus.
Microsoft’s stated strategy for C#:
“We will keep growing C# to meet the evolving needs of developers and remain a state of the art programming language. We will innovate aggressively, while being very careful to stay within the spirit of the language. Given the diversity of the developer base, we will prefer language and performance improvements that benefit all or most developers, avoiding over-focusing on a given segment. We will continue to empower the broader ecosystem and grow its role in C#’s future, while maintaining strong stewardship of design decisions to ensure continued coherence.”
This one is a bit complicated for me. I literally got my start writing about Visual Basic, and wrote three books about this language—covering VB 3, 4, and 6—plus several about Visual Basic Script and Active Server Pages (ASP). But that was before the controversial switch to Visual Basic.NET, where Microsoft’s starter language was redesigned to work as much like C# as possible.
The idea was that VB developers would be able to easily make the leap to the more professional C# language. But the real leap was from classic VB to VB.NET, and many amateur users of the language never did come along for the ride. Today, Microsoft says that VB is used by hundreds of thousands of people. But Stack Overflow notes it is also the “most dreaded” programming language in the world. “Developers wouldn’t miss it if it went extinct,” the site notes. Ouch.
So Microsoft is taking a belated step to focus VB as “a good, approachable entry language for people new to the platform and even to development.”
Microsoft’s stated strategy for Visual Basic:
“We will keep Visual Basic straightforward and approachable. We will do everything necessary to keep it a first class citizen of the .NET ecosystem: When API shapes evolve as a result of new C# features, for instance, consuming those APIs should feel natural in VB. 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.”
Microsoft is also actively developing and improving its F#, with which I am not familiar. It’s fairly new, is only used by tens of thousands of developers, but is apparently well-liked.
Anyone pursuing a career in programming, or just seeking to better understand how software is made, would do well to learn C#. It is clean and well-designed, as are the .NET libraries that work with it. There’s an interesting case to be made that Apple’s Swift takes a further step forward into modernity, dropping some of the C-type complexities of C#, C++, Java and other similar languages. But anyone who learns on C# can make that sideways step easily enough.
As always, I will recommend Bob Tabor’s excellent video series for those new to C# and Windows development: C# Fundamentals for Absolute Beginners and Windows 10 Development for Absolute Beginners.
8578
<blockquote><em><a href="#40878">In reply to </a><a href="../../users/illuminated">illuminated</a><a href="#40878">:</a></em></blockquote>
<p>I think bringing VB to .Net was just another example of the compromises inherent in trying to make a "one-size-fits-all" solution. Just as MS hasn’t moved all their applications to UWP, they didn’t rewrite them using MFC or later .NET. There’s a long history of MS trying to sell developers on the "next big thing" only to fail to follow their own advice.</p>
8578
<p>One of MS’s biggest miscalculations was to emphasize Javascript as a way to develop Windows 8 apps. Traditional Windows devs weren’t into that approach and web devs didn’t suddenly become interested in developing for Windows just because they could write in JS. </p>