I hope someone can take his demo and implement the idea for Windows Terminal. This would prove that such performance boost is indeed doable for a real world production level terminal.
The Terminal team is very aware of this code, and are not able to use it due to how Casey licensed it. They aren't even allowed to look at it. Casey deliberately licensed it as GPL so that Microsoft could not use it, actually. That's his choice, of course.
The Terminal team have a path forward to implement strong performance improvements based on techniques like those Casey described, and are working on those improvements now, I'm told.
Microsoft haters will continue to say all kinds of stuff no matter what Microsoft does, so Microsoft isn't doing this to appease anyone; it's just performance work that they didn't understand was as easily reached as it is, and they built the Terminal in wrong ways the first time around. Anyway, it's being fixed.
I've never worked at Microsoft but I've worked with a lot of MS employees throughout my career and I wish I could convey just how much the goals of the individual employees line up with people like us. The developers at Microsoft are people like us. Extremely and intentionally caustic feedback on Microsoft stuff does nothing but give those employees good reason to stop working on the projects they love, but which also get the most attention, like Terminal. This necessarily produces a worse outcome for the project.
I wish I could make the extremely vocal and vitriolic people understand that their vitriol is counterproductive in the extreme, and makes everything worse.
I think Casey's somewhat caustic exasperation can be a major distraction at times, especially if you are exposed to it the first time you listen to him. But I have to say, his frustration is justified. He has valid complaints about almost the entire industry and educational system, so it's not just directed at Microsoft, and certainly not just at the individual grunts working there (almost all of use are grunts). I do know some of the backstory behind Casey starting this reference project/experiment (I won't post the GitHub issue "lore" here, as it'll just create even more of a "he started it, no he did" back-and-forth), so I think there is some mutual animus with these particular grunts, but I think that's not at all interesting, and I don't think knowing the backstory changes anything.
Instead of just personalizing his critique (ignoring that Casey makes it easy to do that), think of it this way: why hasn't Microsoft leadership, running a multi-billion dollar company for decades, already devoted appropriate resources to create an essentially perfect terminal/console, something so discrete and simple and fixed in feature-set?
Also, I don't put much stock in the complaint about Casey's license choice. He made plenty of educational content delving into the design and implementation details, and one of his major points is that non-pessimisation implementations such as his have so little code in the first place.
> why hasn't Microsoft leadership, running a multi-billion dollar company for decades, already devoted appropriate resources to create an essentially perfect terminal/console, something so discrete and simple and fixed in feature-set?
competing priorities, lack of customer interest, lack of need, desire to keep backwards compatibility, additional support workload, probable belief that they had a good enough terminal, they couldn't find the right people (the project lead for the new terminal was hired into Microsoft specifically for that position, leading me to believe they didn't have anyone internally who was qualified or interested enough to take the job), and because a fully compatible terminal is not trivial to make.
they can't go back in time and make it, they can only change what they're doing now, and Terminal is getting better all the time.
complaint about behavior that is no longer happening is just masturbation, plain and simple.
yes, Casey has shown that, and I am thankful for it, and for him, because I didn't know it was as easy as it is. It turns out that a lot of people didn't know it could be so easy.
The approach Casey took is very obvious to game developers, and very foreign to other people, I would think. We're all still so poisoned by OOP and the normalization of unnecessary complexity that straight-forward solutions often don't occur to us.
Casey's misstep here is the same misstep that many of us make, and have made; the assumption that everyone should know something or understand it just as well. It is often hard for an individual to believe that something which they find obvious could be so out of reach of another person.
One might respond to that with "A Microsoft employee should know this kind of thing," and to that I would ask where they're supposed to get this "Microsoft people should know" knowledge. Where's this "Microsoft should know" academy? What is the list of things that an employee of a company like Microsoft should always know in order to be forgiven by the argumentative HN patron? There isn't a place for them to go, of course, they can only rely on their experience and their colleagues to help them do their work, the same as everyone else, and every person, team, and company has blind spots. Every last one.
I think the best part of Casey’s critique is pointing out that trends indicate that those blind spots are only getting bigger. Individual/personal corrections are absolutely possible, but they’re not going to stop this accelerating blind spot growth problem (especially if just as many individuals are turned off by the tenor of the critique as are convinced by its substance — this aspect is where most of my many qualifications about his critique come from).
Personally, even taking his caustic critique as given, he’s more criticizing MS than the MS developers. If you know Casey’s opinions on FAANG companies, you’d know that when he says what a MS employee “should” know, it does not come from a position of holding MS in high esteem. He means, “how is this multi-billion dollar company getting it so wrong” not “how are these pitiable developers letting down the honorable MS corporation”.
Lawyers concerned in-house code may become virally GPL licensed (I think, it has been a while since I had insight into MS inner workings).
Same sort of thing as many/most companies won't allow their employees to look at patents.
Without reusing any of that code, simply by osmosis? I don't know what the legal theory could be, but is that something that has ever happened in the entire history of the GPL?
no, by writing similar \ equal code somewhere that later other people looking at it could argue is a re-use of the GPL code they looked at and thus causing the whole project to became GPL.
it is just them thinking it is better being safe then sorry. if they don't even look at the code there is no way to argue that they are copying it.
Just a small correction/clarification - using GPL code inside a non-GPL project doesn't magically cause it to become GPL, it just means you would be committing copyright infringement if you distributed your project afterwards.
It's still something you want to avoid, but the outcome would potentially be a lawsuit from the copyright holder, rather than forcing you to relicense your project.
M$ is long time GPL hater. They use lot of GPL code, but stil hate it, because they cannot make profit from it. Commercial companies like BSD-style licenses, because they are free as in "free work".
they don't use any GPL code in stuff that they license in any other way. it isn't a matter of liking the license or not, it's a matter of license compatibility.
Just to clarify, I do not hate MSFT. I just don't have the ability to implement such things and just curious whether it is feasible (in reasonable time) or not. If the actual code is not available maybe someone can fork the Terminal code? Or if that does not get around the legal stuffs, maybe take the idea and go from there?
You cannot use Casey's code (GPL) in Terminal (MIT). But he has explained his model. Issue is iirc what he proposed and how Terminal works significantly differ.
Yes, I’m skeptical that WT will incorporate his design, as it is a big design change. There’s no way to just “plug it in” somewhere, without replacing the beating heart of WT. It would be great if they did that though, and I’d applaud them for it.
I think Casey did a lot of other great work on more correct and speedy non-ASCII support, and very efficient scrollback (in both memory and time cost), etc. It's been a while, but I think the atlas approach is also different. But kudos for what seems to be a good step. I'm curious to see some data on the resulting performance and memory usage (presuming the latter is mostly unchanged).
Microsoft the business creates those caustic relationships.
I’ve managed 9-figure relationships with different software companies. Microsoft plays dirty, both with their own people, who have unachievable goals that encourage douche behavior, and with the customer.
I feel for the folks on the ground. The engineers crank out amazing work. But part of working for a company that essentially taxes every global
business and government is having a thick skin.
> part of working for a company that essentially taxes every global business and government is having a thick skin.
no. people are people, and if the human race is going to survive its own actions, the actions must change. no part of any job should require that harassment be tolerated, and it's not feasible to ask for that.