4 ms·
Casey Muratori is an extremely proficient programmer. Windows probably employs a couple of new grads to work on the terminal. (Even if they aren't, it'd be hard
by johnfn 4y ago
Casey Muratori is an extremely proficient programmer. Windows probably employs a couple of new grads to work on the terminal. (Even if they aren't, it'd be hard to come close to the breadth of experience that Casey has.) I never understood why this is a surprise at all - "Casey Muratori excoriated the Windows Terminal" basically translates to "L8 smarter than L2".
- Falkon1313 4y agoReally? Many of us discovered around the age or 13 or 14 that POKE #B8000 plus a little arithmetic was significantly faster than using OS calls to write text to the screen. We were wrapping those in functions, inlining ASM, and building text-mode UIs as teenagers - not as long-time professionals, not college grads, and without all the information available on the modern internet. Over the next few years, as graphical stuff became more common, we were trying different algorithms to optimize polygon fills, mouse drivers, custom fonts, etc. That was a part-time hobby for teenagers. Did not require greybeard gurus with lifetime achievement awards and college degrees and the entire internet of information always available. It was just the basics, the fundamentals, a few decades ago.
- jiggawatts 4y agoEveryone has somehow internalised the "fact" that all performance optimisation is a black art that only "hugely experienced" devs can possibly know. I'll give you an example. I've seen developers and DBAs working on databases simply create new indexes on the fly to fix some performance issue. It takes ten seconds, it's fairly safe, and it is relatively easy to gauge the effect. "Before minutes, after milliseconds". Done. I've seen other places where merely suggesting the use of an index -- no matter how beneficial, trivial, or safe -- resulted in everyone foaming at the mouth in abject terror. Wailing and gnashing of teeth. "How dare you suggest that we touch the mystical black box!? Begone with you, foul wizard!" This is what I saw with the Casey Muratori vs Windows Terminal team arguments. Everyone acts like Casey pulled out some dark tome only the most grey haired wizards are allowed to see and spoke secrets that Microsoft isn't even allowed to legally hear. Do you actually know what he suggested? Make a grid, just a 2D array. Put the characters in them. Use the characters to look up small images of individual characters in another grid. If the other grid is missing a characters, find an empty spot an replace it with the missing character image. (If the second grid is bigger than the first one, this is always possible.) That's... it. Just array lookups, 2D images, and a hashtable. This is child's play not wizardry.
- dev_tty01 4y agoWell said. I also like your assertion that performance optimization is believed to be a black art. As you say, it is not. In fact, there are much better tools available for performance monitoring today than there ever have been. How many programmers actually open those tools and look for performance bottlenecks? I would guess not too many, at least based on what we are seeing in shipping products.
- jiggawatts 4y agoStory time! When I was something like 23 years old, my boss told me to go help optimise IIS performance at a large dev shop. Think about how absurd it sounds: A junior tech with essentially no knowledge of IIS performance tuning doing consulting to an entire company of 30-40 year old experienced developers on the finer points of web serving. I turned up, and it turned out that these guys were writing what seemed like a trivial web app, but if two people submitted a form simultaneously then the page would take a minute to submit. A minute you ask? I timed it: 60 seconds exactly, plus or minus a few hundred milliseconds. That's a lock timeout. I asked to talk to the database team. They told me the scope of works was to look at IIS and "tune it". To put things in perspective, they were using the largest server I had ever seen (8 sockets!) and it couldn't handle two users. "Maybe we need a 16-socket server, what do you thinkg?" I told them... no-no-no-no, I need to talk to the DBA team, just trust me. After some negotiation, I finally sat down next to the "senior" DBA and asked him what database engine he was using. "Sybase." Shit. I had heard of Sybase, but had never used it. I had a smidge of experience with SQL Server, and I had heard that Microsoft based it off the Sybase code that they had licensed. In a mild panic I asked him if Sybase had any performance analyzer tool or somesuch? "No." Err... that's not good. Now in a cold sweat, I asked to borrow his mouse for a second so I could click through his Start menu, where I found the Sybase folder, with a "Profiler" tool that was a carbon copy of the "SQL Server Profiler", except for the icon and some color schemes. It took about 10 minutes to repro the scenario and demonstrate that as expected, the codebase was Deadlock City and the mysterious 1 minute "performance issues" were in fact caused by 60.0 second timeouts as I had guessed. When I walked away from that two storey building full of "professional" developers, I had a wide-eyed look on my face wondering why literally nobody in the entire database team was even aware of the existence of the database profiler tool... which was in their Start menu the whole time.