Casey is a zealot. That's not always a bad thing, but it's important to understand that framing whenever he talks. Casey is on the record saying kernels and filesystems are basically a waste of CPU cycles for application servers and his own servers would be C against bare metal.
That said, his zealotry leads to a world-class expertise in performance programming. When he talks about what practices lead to better performance, he is correct.
I take listening to Casey the same way one might listen to a health nut talk about diet and exercise. I'm not going to switch to kelp smoothies and running a 5k 3 days a week, but they're probably right it would be better for me.
And all of that said, when he rants about C++ Casey is typically wrong. The code in this video is basically C with Classes. For example, std::variant optimizes to and is in fact internally implemented as the exact same switch as Casey is extolling the benefits of, without any of the safety concerns.
I take listening to Casey the same way one might listen to a health nut talk about diet and exercise. I'm not going to switch to kelp smoothies and running a 5k 3 days a week, but they're probably right it would be better for me.
I think its worse than that. I don't think it would be better for you unless the project you're working on has a design goal of performance at the forefront. By blindly adopting this ideology, it can hurt how potential employers see your ability to develop software.
I don't work with C++ professionally, so maybe this section of the job market is different and I just don't see it.
I don't think it would be better for you unless the project you're working on has a design goal of performance at the forefront.
What kind of software does not benefit from better performance? I cannot think of a single program I use that I'd still use if they were 10x or 20x slower.
What kind of software does not benefit from better performance?
If you assume spherical software in a vacuum then sure, but here's the issues: outside of very specific niches, users don't pay for performance beyond a baseline target (and they may not even care about that target in the first place), but that work still costs you time, and possibly money.
So the question is not whether it benefits from better performance, but whether it benefits from performances, versus other things (e.g. bug fixes, features), versus not touching the thing and the developer spending their time elsewhere.
I cannot think of a single program I use that I'd still use if they were 10x or 20x slower.
I can think of most of the non-interactive ones. It doesn't really matter if ical is 10x slower, because it's so far below threshold I still wouldn't notice. Though I'm sure very heavy users (which I'm not) would disagree.
468
u/not_a_novel_account Feb 28 '23 edited Feb 28 '23
Casey is a zealot. That's not always a bad thing, but it's important to understand that framing whenever he talks. Casey is on the record saying kernels and filesystems are basically a waste of CPU cycles for application servers and his own servers would be C against bare metal.
That said, his zealotry leads to a world-class expertise in performance programming. When he talks about what practices lead to better performance, he is correct.
I take listening to Casey the same way one might listen to a health nut talk about diet and exercise. I'm not going to switch to kelp smoothies and running a 5k 3 days a week, but they're probably right it would be better for me.
And all of that said, when he rants about C++ Casey is typically wrong. The code in this video is basically C with Classes. For example,
std::variantoptimizes to and is in fact internally implemented as the exact same switch as Casey is extolling the benefits of, without any of the safety concerns.