korrents

korrents · The Pragmatic Engineer Podcast

Why performant code matters (but gets widely ignored), with Casey Muratori

Casey Muratori · 1h 53m · youtube.com

26 korrents from this recording

1h
Casey Muratori did not write this page.

Every claim below is a statement made in this recording, quoted word for word and linked to the second it was said, so you can hear it rather than take our word for it. The wording comes from the transcript published alongside the recording; the sentence above each quote is our reading of the claim, not their wording.

  1. 0:18:28 · watch on youtube.com

    maybe performance could be part of a package where you try to take on one of those players. like, hey, look at how much more responsive our thing is than theirs. Might be a nice plus, but that's not going to be sufficient.
  2. 1 min later
  3. 0:19:45 · watch on youtube.com

    I also see people attacking major product categories now with performance-based pitches. Things like File Pilot or the Blick video editor, like things like this that have been coming out lately where it's like, oh, really performant software to try to take on uh incumbents in a space and they've been getting traction.
  4. 1 min later
  5. 0:20:51 · watch on youtube.com

    300 milliseconds is like an eternity in computing, right? And so if you're talking about like our pitch is that we're not more than 300 milliseconds, that just shows you how the bar was so far past where it probably should have been for something.
  6. 1 min later
  7. 0:21:36 · watch on youtube.com

    It's just like we are massively underperforming and people don't believe it when you say 10x 100x but it's actually true and we've seen a lot of proof of it as you point out.
  8. 3 min later
  9. 0:24:09 · watch on youtube.com

    What is the underlying hardware capable of doing at its theoretical peak? And then you measure the delta between that theoretical maximum and what you have achieved.
  10. 3 min later
  11. 0:27:37 · watch on youtube.com

    If I look at the assembly language output from that compiler, I know exactly what the CPU is being asked to do. And it's not that hard to be able to learn to read assembly language so that you can see very quickly is the CPU being asked to do the things that I think it should be asked to do them.
  12. 3 min later
  13. 0:30:22 · watch on youtube.com

    it's really much easier if you can understand how to center a div as they say if you can vertically center a div in HTML then you can probably learn assembly language I would say
  14. 5 min later
  15. 0:35:23 · watch on youtube.com

    the performance of your software is generally determined by the longest serial dependency chain because it's something that cannot be parallelized.
  16. 1 min later
  17. 0:35:57 · watch on youtube.com

    If every uh software engineer knew to watch out for false serial dependency chains, things where they were creating series of dependent operations that could not be optimized away or other sorts of architectural problems like that that cannot be easily fixed, then the world would look more like just wait and optimize the hotspot, right?
  18. 1 min later
  19. 0:36:56 · watch on youtube.com

    everybody on your team who is making architectural decisions, those people must know performance and they must make decisions that will allow the other people downstream of them to use an architecture which can be optimized later. If you don't do that, you're just rolling the dice.
  20. 3 min later
  21. 0:40:18 · watch on youtube.com

    They've got blog posts of we had to rewrite this whole thing because the performance was bad. If it was always hotspots that made your performance bad, you'd never have to rewrite the whole thing. So, we know that that doesn't work anymore.
  22. 4 min later
  23. 0:43:49 · watch on youtube.com

    One of the reasons that you don't see hotspot optimization as a thing that really matters that much anymore and one of the reasons I advise that architecture and and not making bad decisions is much more important is because a lot of libraries already have been optimized for you that you might use.
  24. 1 min later
  25. 0:44:43 · watch on youtube.com

    So the good news is in order to write software that's much better than a lot of the software you use today, you don't have to know that much.
  26. 7 min later
  27. 0:51:20 · watch on youtube.com

    when you're working with a lot of data, the the difference can be massive if you structure it in one way versus structuring another way, right? Again, architectural decisions that have nothing to do with hotspots, they're how all the data is laid out and what the access pattern is, right?
  28. 2 min later
  29. 0:53:11 · watch on youtube.com

    You go to school for four years to learn this. There's no reason you can't learn this in a few months. It's not that hard.
  30. 14 min later
  31. 1:07:23 · watch on youtube.com

    I've said like the licensable engine thing kind of was our AI transition already unfortunately and uh I regret to inform you that the news is not probably that positive.
  32. 1 min later
  33. 1:08:42 · watch on youtube.com

    It's it's so massive that there is no way that your game will be organically noticed anymore pretty much period.
  34. 3 min later
  35. 1:11:37 · watch on youtube.com

    But a large portion of the gaming market by revenue doesn't really care what the game looked like all that much uh in a sense that whatever we're doing today is good enough. So 10 years from now if the games look much better for some reason no one will really think of that as a huge differentiation differentiator in terms of sales.
  36. 7 min later
  37. 1:18:34 · watch on youtube.com

    If you look at those things, they're kind of just bad programming practices. I I don't really know how else to say them. They don't mesh well when you put them together.
  38. 2 min later
  39. 1:20:46 · watch on youtube.com

    But it's the cost of the compiler not being able to do any optimizations. That's the actual cost. And that cost can be severe.
  40. 2 min later
  41. 1:22:54 · watch on youtube.com

    I would say the part that I don't like about test-driven development is the testdriven part. I don't think development should ever be driven by tests.
  42. 3 min later
  43. 1:25:50 · watch on youtube.com

    I have never really understood the sort of mentality of there's a difference between code that is like well architected by some principles and code that runs quickly because in my experience usually the code that is architected properly is also the code that runs quickly.
  44. 6 min later
  45. 1:32:14 · watch on youtube.com

    I find there's a lot of like received programming wisdom that's just nonsense. Like clearly no one's ever tested it and if they did they would have found out that it's that there's no actual basis for it.
  46. 3 min later
  47. 1:35:09 · watch on youtube.com

    it's more about what do you want to do? Like what why are you spending this time, right? It's a philosophical question, not a productivity question.
  48. 9 min later
  49. 1:43:40 · watch on youtube.com

    Then there's another possibility which is that it actually already has worked but just the productivity boost isn't as big as would be obvious if people got 10% more productive. That would still be pretty impressive because it's hard to get a 10% across the board uplift.
  50. 7 min later
  51. 1:50:33 · watch on youtube.com

    I want to recommend that people read a paper. I'm trying to get more people to just to just read papers because I realized I read a ton of papers.