I write algorithms that operate on predictable amounts of data. It's very easy to work out the maximum amount of things we need to have and then allocate it all in fixed size arrays. If you allocate all your memory at startup you can never OOM at runtime. Some containers need over 100GB but like the parent comment said we've already bought the RAM.
Doesn’t Apple use pretty damn quick NVME? I wonder how much of a performance drop it actually is. Certainly not as bad as running a swap file on a 5400 rpm HDD…
Isn't that NVME also very expensive to replace because it's tied to hardware identifiers? If you keep swapping all the time, surely NVME would be the first part to fail
> How often are ooms caused by lack of ram rather than programming?
You're right, but in a production deployment, that extra ram might mean the difference between a close call that you patch the next day and an all hands emergency to call in devops and engineers together during peak usage.
If you don't have any more disk space for swap, or memory pressure gets too high, you get the "You've ran out of application memory" dialog box with a list of applications you can force quit, and macOS leaves it up to the user on what to kill instead of the system choosing automatically.