1. plenty of garbage collectors do not pause all threads or wait for memory to be full.
2. you CAN ask for gc anytime you want in java and in C# (you need not wait for it to happen)
3. new and delete are still integral to C++ (check out any large codebase, like llvm)