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.