So, there have been some things going on with .NET Hot Reload you may have heard of this week. It's an important issue. Others had it covered so I thought I'd hang back, but I've seen calls for more voices, so here's mine. 🧵 1/

Some background: Microsoft merged a PR that removed Hot Reload from the .NET 6 despite it working, an unusual move, and said it was due to prioritization for Visual Studio. There has been lots of backlash, snark, and attempts to reinstate it as a result. 2/
First up: Lots of amazing people work at MS who care about OSS and the community. Folks I continue to look up to. MS contains multitudes, and I think we'd all do well to keep that in mind. I'm rooting for them. 3/
On to the opinion section-- This decision is troubling for a bunch of reasons: 1) The surprise factor 2) The transparent business interest driving it while pretending otherwise 3) the communication around it 4) The implication of those business moves for the larger community. 4/
1) Surprises: this code was working, in an RC release, and people were starting to use it. It had been touted as a great feature of .NET 6. Then it was just gone, "de-prioritized". But de-prioritized doesn't mean it has to be removed. Patterns exist for flagging it, etc. 5/
My initial reaction was "well, MS has to support it, so it's only fair that they get to prioritize or not what they take on". I sympathized with MS. But then I realized it was essentially feature complete and usable, and things seemed fishier from there. 6/
2) Business interest: then the Verge piece came out saying that an MS CVP is essentially clawing this stuff back from OSS and wants to make it a proprietary feature of Visual Studio for business reasons. Oof. That's really not OK. 7/
MS should be all about making profit. But I wanted to believe they'd learned a lesson about making profit at the expense of community and "bigger tent" strategy. This flies in the face that. Terrible business decision. Squanders goodwill. /8
3) Communication: Initially I thought this was poor communication about readiness. I was going to suggest longer explanations in PRs, a call for the community to help, an open discussion on the roadmap sooner. But since the Verge article, I'm realizing it wasn't about that. 9/
This truly does seem to be the "old" Microsoft rearing its head again, and trying to sneak it in under the radar with vague corporate speak around priorities. That's very disheartening. And it does make me mad. 10/
4) Implications: The reason it makes me mad is that I truly feel that, warts and all, we're working toward a better place in .NET OSS. And the MS turnaround has been such a big part of that. For a CVP to endanger that is just bananas reckless. 11/
With one move, this decision gravely undermines the idea that .NET works in the open, that it builds for community first, that it wants to be a player in an overall ecosystem vs "just get yours" mentality for its product teams. It is actually a big deal. 12/
So, how can MS fix this? 1) Revert that PR if it's being held back for any reason other than quality and/or completeness. 2) Re-affirm that this was a mistake, both of leadership vision and of communication. 3) Work toward a unified approach to OSS and ensure CVPs respect it. 13/
Since MS hasn't fixed it yet, it sounds like the community is going to. Forks are beginning to take place of these tools. This is probably the appropriate thing to happen. If the community wants the tooling and MS won't look out for it in this case, 14/
Then "we'll do it ourselves" is the correct response. Looking forward to seeing how I might jump in there.

MS: This is not a good look. Do better. Listen to your OSS veterans. They have your best interests at heart. 15/
OSS is more than just tech. It is also a social contract and a community you agree to participate in alongside your most ardent fans and adopters. Don't take that for granted. There are many inside who know that already. Elevate them. (fin) 16/16.
17/16: I stink at tweet threads and forgot links because of course I did.

* Original PR with vague wording and blog post link: https://t.co/5fpHvtiLan

* The Verge article: https://t.co/wHkGETk2PI

* Great blog by @dustinmoris on the topic: https://t.co/gZBknsbRnX
18/16: Lastly, I'll say that I think folks are trying to work on this internally. I see you and I love you for it. Corporate culture change is so difficult. You have my utmost respect.

You May Also Like

A brief analysis and comparison of the CSS for Twitter's PWA vs Twitter's legacy desktop website. The difference is dramatic and I'll touch on some reasons why.

Legacy site *downloads* ~630 KB CSS per theme and writing direction.

6,769 rules
9,252 selectors
16.7k declarations
3,370 unique declarations
44 media queries
36 unique colors
50 unique background colors
46 unique font sizes
39 unique z-indices

https://t.co/qyl4Bt1i5x


PWA *incrementally generates* ~30 KB CSS that handles all themes and writing directions.

735 rules
740 selectors
757 declarations
730 unique declarations
0 media queries
11 unique colors
32 unique background colors
15 unique font sizes
7 unique z-indices

https://t.co/w7oNG5KUkJ


The legacy site's CSS is what happens when hundreds of people directly write CSS over many years. Specificity wars, redundancy, a house of cards that can't be fixed. The result is extremely inefficient and error-prone styling that punishes users and developers.

The PWA's CSS is generated on-demand by a JS framework that manages styles and outputs "atomic CSS". The framework can enforce strict constraints and perform optimisations, which is why the CSS is so much smaller and safer. Style conflicts and unbounded CSS growth are avoided.
I'm going to do two history threads on Ethiopia, one on its ancient history, one on its modern story (1800 to today). 🇪🇹

I'll begin with the ancient history ... and it goes way back. Because modern humans - and before that, the ancestors of humans - almost certainly originated in Ethiopia. 🇪🇹 (sub-thread):


The first likely historical reference to Ethiopia is ancient Egyptian records of trade expeditions to the "Land of Punt" in search of gold, ebony, ivory, incense, and wild animals, starting in c 2500 BC 🇪🇹


Ethiopians themselves believe that the Queen of Sheba, who visited Israel's King Solomon in the Bible (c 950 BC), came from Ethiopia (not Yemen, as others believe). Here she is meeting Solomon in a stain-glassed window in Addis Ababa's Holy Trinity Church. 🇪🇹


References to the Queen of Sheba are everywhere in Ethiopia. The national airline's frequent flier miles are even called "ShebaMiles". 🇪🇹