Comment by hnlmorg
16 hours ago
> You cite inefficiencies.
That’s not what I said. I said you’re trading memory footprint for CPU footprint.
This is the correct way to design a demo but absolutely the wrong way to design a desktop application.
They are marvels, I agree. But, and as I said before, there’s no such things as a free lunch. at risk of stating the obvious; If there wasn’t a trade off to be made then all software would be written that way already.
You’re not entirely right or wrong.
Memory access is frequently a bottleneck on modern CPUs, so reducing memory footprint can often be a time and space optimization.
More importantly, unlike demos, production code is often optimized for interrelated factors of development cost, maintainability, and the use of familiar or popular tools and techniques over runtime efficiency.
> Memory access is frequently a bottleneck on modern CPUs,
Memory access has always been a bottleneck, even in the 90s. That’s why CPUs have cache on the die.
But the difference between RAM and cache is completely irrelevant here because hot paths (ie where youd actually notice the difference as a user) should be small enough to fit inside the CPU cache anyway.
> More importantly, unlike demos, production code is often optimized for interrelated factors of development cost, maintainability, and the use of familiar or popular tools and techniques over runtime efficiency.
Which is still a trade off and a point I’ve also made repeatedly in this discussion.