I remember Cliff Click said that some parallel&#x2F;concurrent algorithms are infeasable without a GC, because the additional complexity of memory management. However, I do not remember any specific examples.<p>To speculate: A big graph data structure in your big server (not distributed) and some parallel algorithm working on it. There is so much data that you need to purge the obsolete stuff once in a while. Smart pointers are not enough unless you introduce weak references, which is unsafe and error prone. A C++ programmer would probably implement some kind of application-specific garbage collector, but I doubt it would be better than the JVMs GC.