Microsoft Backs Down From Open-Source Mistake

Posted on October 26, 2021 by Paul Thurrott in Dev, Linux with 30 Comments

With the .NET 6 release looming, Microsoft made a critical faux pas that the open-source world jumped on immediately. The software giant quickly reversed course in the face of the condemnation it received, and the issue that triggered this fracas will seem uneventful to non-developers. But I think this event says a lot about how little the open-source world still trusts Microsoft, despite its many years of support. And maybe it’s time to acknowledge that the Microsoft/open-source relationship is a bit one-sided.

So here’s what happened.

In May 2021, Microsoft announced that it was bringing Hot Reload functionality to Visual Studio, a proprietary product for Windows (and Mac, sort of), and to the .NET 6 command-line tools, which are open-source. Hot Reload lets developers modify their source code while testing their apps without having to recompile and restart those apps. That is, the changes are applied immediately.

With .NET 6 set for a November release, Microsoft last week provided an update about how Hot Reload would be implemented in Visual Studio 2022. But buried in that long post was some bad news for open-source developers: the “the very basic” Hot Reload support it added to the .NET tools would not ship with .NET 6. “We’ve decided that starting with the upcoming .NET 6 [public] release, we will enable Hot Reload functionality only through Visual Studio 2022 so we can focus on providing the best experiences to the most users,” the firm said. “We’ll also continue to pursue adding Hot Reload to Visual Studio for Mac in a future release.”

The reaction was swift and, I think, incommensurate with the scope of the change, with OSS developers taking to Reddit, Twitter, and other online forums to complain that Microsoft was an untrusty open-source partner. The problem, of course, is that this one feature—which is incredibly useful, for sure—would only work with Visual Studio, a proprietary and paid development tool. (Yes, Visual Studio Community edition is free.) And perhaps not surprisingly, given the way the world is going today, Microsoft and .NET were on the verge of being canceled by the OSS world for a basic product support decision.

So Microsoft reversed the decision.

“First and foremost, we want to apologize,” Microsoft’s Scott Hunter announced. “We made a mistake in executing on our decision and took longer than expected to respond back to the community. We have approved the pull request to re-enable [Hot Reload] and it will be in the [public] build of the .NET 6 SDK.”

As Hunter notes, Microsoft’s decision to pull Hot Reload from the .NET 6 SDK had nothing to do with screwing over the open-source developers who use command-line tools; it simply wanted to make sure that Visual Studio delivers the best experience for .NET 6, since most .NET developers actually use Visual Studio. The mistake it made, he says, was in deleting the source code for Hot Reload instead of simply skipping over that code path: I assume Microsoft always intended to keep working on it and ship it in a later release.

“Our desire is to create an open and vibrant ecosystem for .NET,” he concluded. “As is true with many companies, we are learning to balance the needs of the OSS community and being a corporate sponsor for .NET. Sometimes we don’t get it right. When we don’t, the best we can do is learn from our mistakes and be better moving forward.”

Good luck with that, Scott: one might have thought that Microsoft was making all of .NET proprietary again given the immediate and vicious response to this decision.

Tagged with ,

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 (30)

30 responses to “Microsoft Backs Down From Open-Source Mistake”

  1. erichk

    What are some of the other ways one can develop with .NET without Visual Studio?

  2. garethb

    Microsoft decided to remove a largely working feature from an open-source project (that it runs) to favour a Windows-only development product, with a promise that it would (eventually) be released for their commercial Mac IDE. The change was proposed and closed off quickly, deliberately to prevent any discussion, completely against normal open-source practices.


    Make no mistake, many have been using this new feature for months from CLI (despite .NET 6 only being in the release candidate stage), and despite the initial justification of limited engineering resources there did not appear there was any intention for it to return. It was felt by many that - as well as focussing on a commercial return for Microsoft - there was also the 'benefit' of hobbling developers using Linux.


    Inevitably, as .NET [Core] is an open-source product, someone could have forked the project and maintained this - but given the volume of changes primarily from Microsoft, this would not be practical outside the very short term.


    Overall there seems to be some growing concern in the .NET community of whether Microsoft is willing to genuinely participate in the open-source world. Between this event and a recent furore regarding changes implemented (also refusing any discussion) by the .NET Foundation - there are increasing signs that Microsoft is flexing its muscles, and willing to operate in a less collegiate manner. Already there are signs of developers reconsidering the future of .NET, and their future with it.

    • garumphul

      Nope. Wrong in every way. Removing a single INCOMPLETE feature of marginal benefit does not hobble anyone.

      Nobody with half a brain cares about this.

      • F4IL

        Obviously and given the extensive coverage, everyone with a vested interest in .NET cares since it raises doubts about the professionalism and responsibility of the firm regarding project management and their capacity to effectively and transparently communicate with the parties involved. This time the project was open-source so the backlash was public instead of privately exposed behind corporate HQ. But alas, even in closed-source projects people don't unilaterally decide and make changes without first discussing said changes with the interested parties / colleagues. Whether or not this is a symptom of miscommunication is debatable, but most agree that it is a problem.

    • IanYates82

      I would like to see a journalist report on this where they've got some inside contacts on the .net team and can indicate, obviously anonymously, that there was actually a decision to remove it to make it VS Exclusive. So much of the discussion and reporting is making reasonable leaps of assumed intent, but they're still assumptions and before hanging I'd like to give the benefit of the doubt.


      The foundation is trying to right the ship. I've read many of the long github forum posts about it. The initial transgression that kicked off this latest round was poorly handled by the foundation's leader, but she's stepped aside and more has come to light about some possibly well-intentioned but poorly executed governance and understanding on the part of the foundation and people who contributed their projects. It seems many have their own individual agreements and, due to the way the board is involved closely in the affairs of the foundation but turned over frequently, institutional knowledge is lost, with much of the project->foundation relationship often being really a personal relationship between project and a board member or two

  3. garumphul

    Visual Studio has had a free Community Edition for Adobe time. The code is still open, the changes to support any dev platform are still in place and bring actively worked on to get perfected.

    This is a non-story in every conceivable way except as red meat for the rabid Slashdot crowd.

    This whole comment thread is embarrassing in its lack of knowledge.

    • garumphul

      I don't know where "Adobe" came from when I swiped "some".

      And "being" not "being".

      SwiftKey sucks, I guess.

      • wright_is

        As we say in German, "der Erfinder von Autokorrekt ist ein Erdloch und sollte sich ins Knie fügen!"


        It doesn't translate very well, but:

        "The inventor of Autocorrect is an Earthhole and should go and grout his knee!" The first part is obvious, the second part loses in translation, but is the equivalent of should go an **** himself, being miss-autocorrected to fügen, to grout.

  4. Piyer

    VS Code is developed as open source in github. I do not think the hot reload was removed from there. However, Microsoft has the lock-in for the Razzie award for communications!.

  5. lvthunder

    The open-source people could have forked it and added the removed portion back in if they wanted to.

  6. blue77star

    .NET 6 has no future. It really went down for them ever since they abended .NET Framework which in my opinion is hell of better than any .NET Core version. I am developer for over 20 years.

  7. david.thunderbird

    I trust MS to screw me out of bucks given half a chance.

  8. rm

    So, more importantly, what stops any company from pulling code from open source? Is it only trust? If that is the case, do you trust Google with Android after all the anti-trust judgements go against them. Will Android need to pull Android to find new ways to make money? I don't know if only trust is keeping them from doing that. Because Google does evil quite often!

  9. javial

    The main problem is not the Hot Reload feature but how managing this issue completely ignoring the open source community and losing trust in Microsoft.


    Microsoft issues and aproval a BLOCKED PR to remove hot reload for dotnet CLI that nobody can't discuss oo comment about it. And unilateral aprove that PR deleting the code.


    The question now in the open source community that lost trust in Microsoft is if. NET is really open source.

    • F4IL

      Unfortunately, this was handled pretty badly by msft. Managing open source software with cryptic, closed source practices and disregard towards the community, is reminiscent of scummy behavior and similar attempts to bait users into using proprietary tools.

      • MutualCore

        Microsoft back to Embrace, Extend & Extinguish tactics now that they're the big, swinging d*ck of tech again. Look at their market cap & earnings. Back to the bad old days of Steve Cocaine Ballmer.

  10. usman

    I want to some more colour as this post does miss out on some issues that are key to the complaints as well as my perspective as a .Net developer.


    They issued a PR that no one was allowed to comment on and fast-tracked it for that feature to be removed. Not just commented out but outright removed after .Net 6 had already hit RC1.


    Then there's the Verge article which mentions that it was a decision by a Visual Studio product manager to remove the feature from the dotnet cli.


    The decisions and features relating to dotnet SDK and CLI tools shouldn't reside with a product manager for a closed source commercial IDE.


    I'm primarily a backend .Net developer so hot reload on .Net UI-based applications didn't really apply to me it's more about the principles.


    I do use Visual Studio, but also I use .NET CLI, VsCode and other lightweight text editors, people on my team also use Rider.


    Where ever possible we try to use the CLI and lightweight editors, to just improve our flow.


    It would be one thing if it were delayed but instead, it was removed from the CLI and focus shifted to Visual Studio IDE allegedly due to a business-led decision.



  11. curtisspendlove

    And my guess is that very few of those complaining will ever use the .NET livereload functionality.


    In my experience most of them just want something to complain about.


    And most of them probably use VS Code as their primary source editor; whether they will admit it or not.

  12. christianwilson

    I'm not a developer, but this seems blown way out of proportion. Microsoft didn't make a "mistake," they made a (my opinion, reasonable) business decision the OSS community didn't like. I do understand that portions of the OSS community are strict about their philosophy, though, and that's who I suspect were vocal about this.

Leave a Reply