Unable to load image
Reported by:

EFFORTPOST [Effort] How one autist embarrassed an entire team of Microsoft programmers

Some background

When they're not busy designing pride flags the folx at Microsoft spend their time coding shitty software. Among these is the new Windows Terminal.

Casey Muratori is a programmer who, despite never releasing anything, clearly considers himself to be some kind of genius.

With that out of the way, here's the drama:

ACT 1: THE ISSUE

Frustrated with the slowness of Windows Terminal when printing colors, Casey submits a github issue. He even develops a benchmark application to accurately measure the speed.

After a bit of back and forth Casey starts to becomes frustrated:

Am I missing something? Why is all this stuff with "runs of characters" happening at all? Why would you ever need to separate the background from the foreground for performance reasons? It really seems like most of the code in the parser/renderer part of the terminal is unnecessary and just slows things down. What this code needs to do is extremely simple and it seems like it has been massively overcomplicated.

He receives this legendary response:

I believe what you’re doing is describing something that might be considered an entire doctoral research project in performant terminal emulation as “extremely simple” somewhat combatively. I am not aware of the body of work around performant GPU terminal emulation

Casey gets angry:

When we're at the stage when something that can be implemented in a weekend is described as "a doctoral research project", and then I am accused of "impugning the reader" for describing something as simple that is extremely simple, we're done. Consider the bug report closed.

After which a different Microsoft employee goes in on him:

You were overly confident in your opinion, but I hope [what I linked] helps you understand that it's actually really darn hard.

Basically the whole team agrees that what is being asked of them is extremely difficult. While Casey is insistent that it's trivially simple.

So who is right? A team of senior engineers in a trillion dollar company or a reclusive game dev?

ACT 2: A WEEKEND PROJECT

Casey tweets the following:

I take back literally everything I said about Microsoft taking an interest in fixing their terminal.https://t.co/K9ojvy1liX

— Casey Muratori (@cmuratori) June 17, 2021

And, over the following weekend, he implements from scratch a terminal that works in the way he proposed. It's ~100x faster than Windows Terminal:

(video timestamped to the part with the pretty colors, although the rest is fun too)

Twitter thread with some juicy questions from the audiance

Then this happens:

Afterward, the same dev [lhecker] also used a fake name to hang out on our groomercord and talk about Windows Terminal without telling anyone who he was. I figured it out and confronted them, and they failed to see anything wrong with that behavior. It's a really special team they have there.

— Casey Muratori (@cmuratori) May 6, 2022

ACT 3: MICROSOFT BENDS THE KNEE

Over the following months, there is an embarrassed silence from the Microsoft team. Eventually they release a blogpost basically admitting they were wrong, but don't mention Casey by name. Note that the person making the post is the one who snuck into Casey's groomercord.

Casey tweets:

When I tell the Windows Terminal team something is simple, I am "misguided", being "somewhat combative" and am "impugning the reader". But a year later when they call the exact same thing "trivial", that is just, you know, them writing a blog post:https://t.co/AXrgZjvUPT pic.twitter.com/UTDrD9s0o6

— Casey Muratori (@cmuratori) May 6, 2022

And finally one of them makes a post on Hacker News seething about the whole thing. Quotes:

We get it, Microsoft sucks, we should all be fired, rah rah rah.
-
Casey, I'm sorry. We made a mistake. I made a mistake! We didn't know what we didn't know, and thought we were clever enough to pass for it.
-
I just don't know what else he's asking for here. Credit? Us to die screaming? The blog post is matter-of-fact, and Casey is right: however, he said himself that it was trivial to do this. Is it not acceptable that we use the same language?

Truly a new low for Microsoft.


Want more nerd drama? See the previous post in this series.

311
Jump in the discussion.

No email address required.

A company I worked for hired a consultant to write Java (this was long ago when that was still very mainstream). He was a very good developer, smart guy, could adapt his code easily to cover all the company's very very weird business scenarios.

100% of the code he wrote was overengineered to the point where you were going through 20 layers of abstraction when debugging it to get to where it was actually fricking doing anything. Because I understood how smart this guy was, I knew he did it on purpose so we'd have to keep calling him for consulting. The bigger consulting firms all have similar tricks but this guy was just a freelancer. His code was like if you read the Design Patterns book that was big right around then and tried to fit every single one into your application. Want to put some text on the screen? You should call the InputHandlerFactory to get an instance of the UI element where you want to put the text and then call the fricking TextStringMakerFactory to get an object that you can pass to the other bullshit.

At the time I hated this guy so much, but after I went into consulting, I could appreciate the hustle.

Jump in the discussion.

No email address required.

It's likely just overanalysis rather than a hustle. Designing software architecture and forward-looking data schema without making it too convoluted is pretty darn hard. What you see is a software engineer attempting to cover all the potential bases without realizing that they've utterly sacrificed readability to make room for as many potential future functionality/business requirements as possible. What is lacking is the business sense to prioritize readability and maintainability at the expense of potential implementation options that will never realistically be necessary.

Jump in the discussion.

No email address required.

:#marseydepressed:

The client has changed their mind. They want [completely different type of software] 8 months into the project. You have two weeks to do the needful.

Jump in the discussion.

No email address required.

Response response = ResponseFactory.getInstance(rDrama.someGuy).generateResponse(ButtholeFactory.getCrankyInstance().getSnarkyResponse())))))))))))))))))) ))))) )))))))))))));;p;;l;;l;

Jump in the discussion.

No email address required.

print("fstragott")

Jump in the discussion.

No email address required.

Whenever I bust out the macro and template magic out of my sack to make that call into a single 'auto response = function<templateholder>(parameter)' my review becomes "no other marsey can read this shit bro. Stop it with the cutesy try harding and write obstruse code 5000 times in a row like a real npc monkey." :marseygunshotsuicide:</templateholder>

Jump in the discussion.

No email address required.

Yupp, the line is really fricking blurry. OP himself admitted the code could be adapted quickly to cater to very weird requirements. This is the price you pay. You can have simple code you need to design and implement anew for each feature or you can have a very hard to comprehend moloch of FeatureFactoryFactories. Doing it both simply and flexibly is the highest level of divine mastery.

TIL we have profanity filter. C*nt shart.

Jump in the discussion.

No email address required.

or just fricking incompetence

Jump in the discussion.

No email address required.

>factories

>1000 line stacktraces

>NullPointerException

>Long/long, Int/int ...

>builders

>20 different java versions, one machine

>factory builders

>30 year old code

>NullPointerException

>groovy/kotlin is meant to help, just means you have to learn them too

:#marseyrope:

Jump in the discussion.

No email address required.

groovy is somehow stupider than its name.

Jump in the discussion.

No email address required.

Thats basic java

Jump in the discussion.

No email address required.

Want to put some text on the screen? You should call the InputHandlerFactory to get an instance of the UI element where you want to put the text and then call the fricking TextStringMakerFactory to get an object that you can pass to the other bullshit.

:#gigachad:

Codecels stay seething at the Inscrutable Grindmaxxer.

Jump in the discussion.

No email address required.

to write Java (this was long ago when that was still very mainstream).

Java is still very mainstream, especially for soulless corpo enterprise apps or am I living in a different dimension?:marseyconfused:

Jump in the discussion.

No email address required.

It is, but not like it was 15 years ago. It's still got at least one popular web backend, so it's not like it's dying, but it's also not the consultant bonanza it was in its heyday. And this is coming from someone who exclusively works on soulless corpo bullshit.

Jump in the discussion.

No email address required.

Now that .NET is available on most architectures and Linux, and Linux subsystems are available on the opposing operating systems, it loses a lot of its domination as the "run anywhere so everything" language.

Jump in the discussion.

No email address required.

you are, come back baby. your family wants you to wake up.

Jump in the discussion.

No email address required.

Wow, you must be a JP fan.

Jump in the discussion.

No email address required.

A fellow hustler

Jump in the discussion.

No email address required.

Jump in the discussion.

No email address required.

Link copied to clipboard
Action successful!
Error, please refresh the page and try again.