Microsoft Outlines Its Development Language Strategy

Posted on February 3, 2017 by Paul Thurrott in Dev with 33 Comments

Microsoft Outlines Its Development Language Strategy

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#

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.”

Visual Basic

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.”

To the future

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.

 

Join the discussion!

BECOME A THURROTT MEMBER:

Don't have a login but want to join the conversation? Become a Thurrott Premium or Basic User to participate

Register
Comments (33)

33 responses to “Microsoft Outlines Its Development Language Strategy”

  1. 10014

    I don't get it.  Why do you write "fans of Visual Basic may want to sit down and collect their thoughts before reading any further."?

    I didn't read anything other than that Microsoft will continue to support and enhance VB (Vb.Net).

    You must be literally talking about the original legacy Visual Basic rather than Vb.Net.  I can understand why they might let that one die.  Once I made the switch I have never looked back.

    Productivity = Profits!  Three cheers for Vb.Net!!! 

  2. 131

    I was one of those people who felt the leap from classic VB to .NET was too much to bother with (I'm an IT pro and only develop for fun).  I guess I need do what I've said I'm going to do for the past 15 years and finally learn C#.

    • 2851

      In reply to wbhite:

      Yep.  Me too.  I had started with Visual Basic 3 back on Windows 3.1 and went to 4, and then 6.  I just couldn't grasp Visual Basic .Net and just didn't have time to make the switch.  I guess it might be better if I just learn C# as well someday - at least by the sounds of this article, C# will be around for a while longer.

  3. 5842

    C# is beyond awesome. It's closest competitor would be Java which feature-wise is lagging behind C# quite a bit.

    As for Visual Basic I am not holding any hopes. Switch from VB6 to VB.NET was a radical change that pretty much killed attractiveness of VB.

    With all that said I really miss VB6 UI development tools. Almost 20 years later there is no UI development environment that is as easy as VB6 was. You cannot just fire up Visual Studio and create semi-professional looking app with a few mouse clicks. There is either XAML/Blend path that requires PhD in UI, XAML, MVVM patterns and IOC or an amateur path that leads to uber-ugly UIs.

     

  4. 5592

    Not sure why "fans of Visual Basic may want to sit down and collect their thoughts before reading any further" when the article and this week's reactivation of the separate VB Team blog after a year and a half retirement show an important improvement of support for Visual Basic moving forward. That's reason for fans of VB to jump up and cheer rather than sit down.

    As to F#, that's, by far, the leading functional programming language and has been getting amazing traction lately. Several corporations I have had business relations with lately have, at a minimum, pilot dev projects in F# and have found the learning curve is a small price to pay for the much more stable code than in traditional languages.

    • 399

      In reply to MikeGalos:

      I'd say Scala has a better claim to be the "leading FP language" (where by leading I take it we both mean popular and in commercial use - Haskell and OCaml tend to win on the "invented here first" type of leadership).

      • 10177

        In reply to maethorechannen:

         

        As far as I understand it, Scala has lost a lot of momentum.  The type system is so complicated that compile times are slow even with excellent machines.  It also makes syntax highlighting hard to get right, even the best tools have problems.  The build tool SBT uses so much operator overloading that they should make NO_CARRIER one of the function calls (that's an old modem joke).  Major version upgrades often include breaking changes to ABIs and APIs.  It's still popular and it still has its fans, and I wouldn't turn down a job that used it.  But in 2010 I think we all expected it to conquer the world, and it's growth has slowed.  Some high profile users have moved away from it.
        Clojure is gaining popularity, though I'm not sure where it ranks with respect to Scala or F#.  But crucially F# and Clojure both have fast compile times, excellent tooling, and build tools that are simpler to use than SBT.

         

         

  5. 9201

    Well C# is the premier language for productive code. Certainly my language of choice, as I am evangelist  belief in strongly typed languages.  At times it seemed that Xamarin supported C# better than Microsoft.  Couldn't care less about Visual Basic.  But yeah they need to sort out the awful XAML syntax, its a mess and the robustness of the Visual Studio XAML designer.

    I pretty much hate JavaScript (loose robustness and a horrible debugging experience) but Scott Hasleman recommends, promotes an understanding JavaScript is essential skill.  See his awesome NXTA presentation on Javascript.  Microsoft seems pretty strong on supporting Javscript so its curious to know where Typescript fits into Microsofts future intentions.

  6. 10177

    In reply to dcdevito:

    In two years?  No way.  Maybe someday, but not that quickly. 

  7. 943

    C# is going to be THE compiled language of choice, but we have to keep an eye on JavaScript. I've never taken a look at F#, so I can't say anything one way or the other.

  8. 8578

    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. 

  9. 5914

    I also recommand Bob Tabor's videos. I learned alot with the Windows 10 Dev. series.

     

    I just hope with Visual Studo 2017 that the WPF designer will be better.

  10. 5714

    Just when I thought C++ skills were obsolete, new technology came along (Emscripten/AMSjs) to take all of our 3D code and move it to the web.  Web Assembly (WASM) promises even better tools, and better performance with planned support for multiple threads.  I'm learning Javascript to improve my web development skills and to interface with our new plug-in free ..er.. plug-in ... for lack of a better word.  I'm also exploring ELECTRON technology to bring our Web Applications back to the desktop ... ANY DESKTOP.  I really think this is the best of all worlds in software development

  11. 5234

    Lightswitch was a brilliant idea, poorly executed.  It was promised to allow business IT consultants to become part-time custom LOB app developers, but fell short of its promise to not require programming skills.  Eventually they turned it into a web-app maker, and then they stopped selling it and integrated it into Visual Studio.  And now it's dead.

    Just another point of contention I have with Microsoft's inability to stick with small business partners.  Instead of sticking with them, they're sticking it to them.

    I have better hopes for Google's App Maker.  I'm not in their preview program for it (I wish I was - I've already applied), but from what I've seen so far, it looks far better than anything that Lightswitch offered, and it may even become part of the standard G Suite for business plans.

  12. 4618

    From my little time of looking into it, Swift has many functional traits of Scala, which itself is also similar to F#, so I agree with many people that are asking MS to move F# forward at a faster pace than the usage base warrants - increasingly parallel CPU architectures will warrant the functionally inclined languages and architectures more and more, and with VS being one of the best IDEs and NET Core being cross-platform, F# is positioned to become the most well supported easiest to use (and non-clunky) functional language.

  13. 5281

    Looked at their blog post.  Very short on details.  Nothing on strategy -- Xamarin, Mono, Unity 3D, fullness of the Mobile and cross-platform .NET libraries, support for newer versions of the C# language on non-Windows platforms, timelines for all the above, etc.

    Is there a similar post somewhere about C++ support?  Because, quite frankly, even after all this time, the ONLY language that is truly cross-platform is C/C++.  Everything else comes with (mostly unacceptable) caveats.

  14. Ohuanasis Garcia

    In my company ...all and i mean all of our development is made using VB.NET. We know C# but my team has decided to stick to VB.net since we have being developing all of our application in since VB6 migrated to VB.net. We keep developing new applications and processes using VB.net with not problem. there is nothing C# has that we cannot do in VB.net except Xamarin as far as i know. We integrated the VB.net like mobile application IDE B4I(Basic for IOS) and B4A (BAsic for Android) at a very affordable price of $200 for the enterprise edition. so now we develop mobile application in Visual basic like IDE with all features that VS offers. MS needs to understand that VB.net is a very widely used programming language that many ppl love to use for developing.

  15. 169

    I'm glad to know they are continuing development, but I don't think visual basic makes too much sense anymore.  Newer versions work a lot like C# but they have clunkier syntax.   How is that easier?    I do appreciate the nostalgia for basic.   My favorite was GFW Basic (a german variant) on my old Atari ST.  Some of the later DOS versions of BASIC were great too.

  16. 469

    Is VBA in Office going anywhere, or is that being left alone?

     

  17. 399

    I'd really like to see Swift#.

    "Anyone pursuing a career in programming, or just seeking to better understand how software is made, would do well to learn C#."

    You'd also do well to learn F# or one of the other Functional languages.  

  18. 5611

    Personally, I much prefer VB.NET to C#. I can code in both, but when I'm thinking through a problem, I think in VB and not in C#. If VB.NET disappeared, I would certainly miss it.

    Technically speaking, it doesn't really matter which one you use because they both compile to the same thing.

  19. 217

    I predict F# will become their most popular language in 2 years.

Leave a Reply