5 ms·
To be fair, the GitHub commenter in question had made this statement: > It really seems like most of the code in the parser/renderer part of the terminal is un
by lelandfe 5y ago
To be fair, the GitHub commenter in question had made this statement:
> 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.
I think they deserved a better response from Microsoft, but I also probably would not have responded favorably to that wording – irrespective of if they were correct.
- 10000truths 5y ago> I also probably would not have responded favorably to that wording – irrespective of if they were correct. Why not? I see nothing wrong with this sort of feedback. It's blunt, but constructive.
- lelandfe 5y agoIf it was your code they were talking about, you may feel differently. Blunt, hyperbolic statements like "massively overcomplicated" can feel like a shot across the bow when someone is talking about code you wrote. Kindness and gentleness go a long way in OSS.
- AnIdiotOnTheNet 5y agoStatements like this make me feel like all the people talking about how overly sensitive modern "snowflake's" are might be right.
- gimme_treefiddy 5y agoHonestly the vague reference is what turned me off. It’s not thing to point at a specific item and suggest different approach, but to simply say the whole thing is over complicated makes it seems deliberately vague to be inflammatory.
- 10000truths 5y ago> If it was your code they were talking about, you may feel differently. I'd much prefer to-the-point feedback like that, even if it's somewhat vague. But maybe that's just my ability to swallow my pride/ego. > Blunt, hyperbolic statements like "massively overcomplicated" can feel like a shot across the bow when someone is talking about code you wrote. Kindness and gentleness go a long way in OSS. Casey's statements don't seem hyperbolic to me at all - they accurately reflect the performance and simplicity that the Windows Terminal developers were leaving on the table. We know this because Casey literally created refterm to prove his claims. If anything, the developer's response in the initial GitHub issue, that optimizing the performance of a terminal requires "an entire doctoral research project in performant terminal emulation", is more hyperbolic than anything Casey has said.
- chmod775 5y agoWhen you receive feedback like that, the appropriate response is: "A lot was learned while and since writing that code. Now that requirements and bottlenecks are more clear, it could surely be improved by doing a second pass. We might not get around to doing it soon, but PRs are welcome." That kind of response is pretty much never an outright lie and will always make you look good. Or... you could get defensive and turn it into a months-long saga of bile, half-assed apologies, and bad PR.
- krageon 5y ago> If it was your code they were talking about, you may feel differently. If you do anything out in public, you either develop a bit thicker skin or have a bad time. Frankly, if this bothers you at all that is indicative of a very fragile ego and not anyone's problem but yours. The rest of the world doesn't exist to coddle you and this cultural shift folks sometimes try to propose into that exact behaviour is unhealthy. We're adults, not children.
- lelandfe 5y agoI think we can simultaneously bemoan the overall state of the public's ability to be kind, and still hold ourselves to a higher standard.
- GrumpySloth 5y agoThis criticism is addressed at code, not people. > If it was your code they were talking about, you may feel differently. I'm not the commenter you replied to, but no, I'm not my code, so I'm not going to get offended by someone criticising it. If someone does, it's on them. There were a number of times in my career when someone called something I wrote overcomplicated, and I've never been even close to feeling any emotion about that fact at all. That remark always prompted me to hear carefully what they have to say about improving it. That's not a brag, just a certain level of emotional maturity. People shouldn't be held responsible for every emotional reaction people have to their actions/words, because part of the responsibility for that rests on the person experiencing those emotions. In that case I don't think Casey said anything offensive, so if that made someone angry, they have themselves to blame for that.
- slingnow 5y agoPerhaps you shouldn't wrap so much of your self-identity in code that you wrote for a paycheck. The correct response when given such a clear fix is to learn from this person, thank them, and move on.
- dmitriid 5y agoContext: they are making a terminal emulator. Something we've been doing for close to 60 years already. At the time of this writing their repo has over 1400 open issues. At the time of the "kerfuffle" their code couldn't output more than 10 (or was it 40?) characters per second to the screen on what is essentially a supercomputer. And they claimed it required "a doctoral research into performance" to make it better. What other trivial improvements to their code also "require a doctoral research"? Yes. Their code is definitely massively overcomplicated and I doubt they have any control over it any more.
- dmitriid 5y agoThere's more evidence their code is over complicated: https://twitter.com/stewartlynch8/status/1522512601443454976 https://twitter.com/stewartlynch8/status/1522512601443454976
- drumhead 5y agoThey represent a trillion dollar enterprise, they have to consider how they they interact with their customers, behaving professionally when faced with criticism especially in a public forum shouldnt be something they need to be taught to do. Instead they acted like they were still in Middle school. If something like this happened at a company I worked for their manager would be having a word with them right now.
- beart 5y agoIt isn't their code, it's the company's code.
- gimme_treefiddy 5y agoIt does seem vague though. It’s almost akin to saying “I could’ve done this in half the code”. Well add your PR then.
- HideousKojima 5y agoThey did, they implemented a crazy fast terminal renderer (that still supports advanced features like right-to-left languages in Unicode, etc.) from scratch in about 3,000 lines of code just to prove their point: https://github.com/cmuratori/refterm https://github.com/cmuratori/refterm
- zamalek 5y agoWhy not just create a PR, instead of a from-scratch grandstanding repo? This is a situation where tu quoque really doesn't smell like a logical fallacy. There is a lot of fuss about "being right" over "being helpful."
- HideousKojima 5y agoI'm assuming he thought his PR would be rejected, given their reaction to his initial questions about the issue: https://github.com/microsoft/terminal/issues/10362 https://github.com/microsoft/terminal/issues/10362
- zamalek 5y agoA closed PR would have been even more damning for Microsoft. Especially given that Casey could have provided apples-apples benchmark results - not, what amounts to, a micro-benchmark. From my perspective, there are two reasons why someone would build an entire project instead of opening a PR: * Merely to be able to point and it and say, "see? see? I was right!" How obnoxiously childish. * Implementing his ideas into a mature/non-greenfields codebase wasn't in-fact "extremely simple."
- db48x 5y ago
- beart 5y agoTo me this feels like a case of of the team feeling like it's "their code" and not "the company's code". I say this coming from someone who still struggles with that concept myself. It's really easy to get defensive when you can't divorce yourself from ownership.
- zamalek 5y agoHighlighted portions of Microsoft's response was blunt, but constructive. > can be read as impugning the reader.
- rob74 5y agoOk, so a "community member" may be blunt, but woe to the M$ employee who dares to point that out (in very polite terms)...
- andai 5y ago>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 means exactly what he says. Notably, refterm had almost no optimization applied to it.[0] The massive performance increase was entirely due to non-pessimization.[1] >refterm actually isn't very fast. Despite being several orders of magnitude faster than Windows Terminal, refterm is largely unoptimized and is much slower than it could be. It is nothing more than a straightforward implementation of a tile renderer, with a very simple cache to ensure that glyph generation only gets called when new glyphs are seen. It is all very, very simple. A more complex codebase that parsed Unicode and rendered glyphs itself would likely be much faster than refterm for many important metrics.[0] [0] - https://github.com/cmuratori/refterm https://github.com/cmuratori/refterm [1] - Refterm Lecture Part 1 - Philosophies of Optimization - https://www.youtube.com/watch?v=pgoetgxecw8 https://www.youtube.com/watch?v=pgoetgxecw8
- LigmaYC 5y ago"Irrespective of if they were correct". I disagree, if they were correct about something simple being massively overcomplicated that definitely warrants a response.