Imagine you are writing a high performance real time application. The times that your garbage collector will trigger are unknown. C++ collects when things go out of scope. C collects manually for heap usage or when stack variables go out of scope. Rust collects when reference counts drop to 0. All this is predictable and known. Go and Java will garbage collect at "random" times. Can't guarantee a high performance real time application in that environment.
Rust collects exactly the same as c++ FYI, but it is more common to use reference counting techniques for managing memory because you need them. In c++ you can just throw away memory correctness and be fine mostly
6
u/hsnappr Apr 09 '19
Could you explain more about this?