embrace EXTEND exterminate

"The new microsoft" is not new. Some have said for some while now that microsoft, under Satya Nadella, is a new company – one that has recognized the value of open source, and has embraced the community. To be sure, MS has embraced the community because they recognized the value, but MS does not value the principles of the open community, only the products.

The difference in value here is crucial, and shows how good and how trusted MS can be as a steward of open source projects. Those of us who remember the browser wars and the antitrust of the 90s, and who were engaged in the open community at that time, have long kept a wary eye on microsoft. In those days, microsoft became famous for EEE, their strategy to stifle competition and maintain market control. It's essentially one big bait-and-switch with MS constantly pulling the rug out from under their users. EEE is a three phase strategy where first microsoft embraces the thing they're trying to conquer. They make a show of being friendly towards it. Next comes the extend phase where microsoft adds features to make the thing more proprietary or make it only work within a broader microsoft ecosystem. They talk about how they're being innovative and making the product better. Once microsoft has captured sufficient control of the market, they abandon (exterminate) the original product in favor of their proprietary, microsoft-centric version. Somewhere between extend and exterminate, MS might claim it's too hard with limited resources to continue supporting 3rd party implementations.

This week we finally got a show that microsoft is the same company, with the same monopolist values, as they tried to introduce changes to .NET that only worked in visual studio. Microsoft extended .NET to work best on windows, a move that would encourage developers to use windows and get locked in to a microsoft ecosystem of products. If allowed to stand, microsoft would have continued to extend other "open" products to work best with proprietary microsoft products, having captured control of large segments of the open community.

Fortunately, the open community remains strong, and voiced enough concern that microsoft has backtracked on the changes. This is not a win for the open community, however. Microsoft does not share the community's principles and only wants to capture the community's products. The new microsoft is not new, and they've started to push into the extend phase.

from time to time we have to look at quality, time, resources to make tradeoffs while continuing to make forward progress. The vast majority of the .NET developers are using Visual Studio, and we want to make sure VS delivers the best experience for .NET 6.

This is a bold lie when considering open development, and the truth is in the latter part of the statement – microsoft doesn't want to make or maintain an open, standards-based product; they want to focus on products that only work within a microsoft ecosystem. They should go ahead and do that if they want, but let's all stop pretending "the new microsoft" values the open community. If microsoft wanted .NET to be an open project, it would have a separation of concerns between .NET and Visual Studio. It would be the Visual Studio team's responsibility to make their product work best with .NET, not the other way around.

.NET is and always has been a microsoft product. Open developers using .NET should take this opportunity to reconsider whether it's going to be a stable platform for long-term projects, or whether they should expect microsoft to pull the rug out from under them.