But C++ is hard to use, and requires an inordinate investment in time to avoid memory leaks (that result in poor performance and random crashes) and to tackle exception handling problems.
though it seems use of Garbage collection is becoming more common in C++ and people use new/delete much less than they used to, even without GC. There's still a large amount of discussion goes on in C++ newsgroups about exception safety.
Actually, both problems are very aggressively addressed in U++.
Resource management is resolved by following "everything belongs to some scope" principle. Together with U++ containers, there are no more resource management problems.
Exception handling problem is pragmatically resolved by ignoring out-of-memory exceptions;) If you go out-of-memory, app simply stops and that is all. I believe that most applications that put effort into solving this are unable to deal with out-of-memory anyway, as there is no reasonable way how to debug such condition. Plus, any application with recursion is prone to similar "out of stack" problem that cannot be solved using exceptions.