> If you have ever watched the hoops somebody jumped through to plug a memory leak in a Java program, you will be forced to agree.
In my observation, a lot of “improvements” in software development are of this kind: they make it quicker and easier to get started, but make troubleshooting a lot more complex specifically because they’ve hidden what’s actually going on in an attempt to simplify things. Not that managed memory is a bad thing! But ideally it would be wielded by people who’d spent a fair amount of time manually managing memory so that they know what to look for.
Managed memory is more of a superfluous thing. When you have resource management, memory is among the easier to manage, and GC looks like a solution without a problem.
In my observation, a lot of “improvements” in software development are of this kind: they make it quicker and easier to get started, but make troubleshooting a lot more complex specifically because they’ve hidden what’s actually going on in an attempt to simplify things. Not that managed memory is a bad thing! But ideally it would be wielded by people who’d spent a fair amount of time manually managing memory so that they know what to look for.