Blog Post: Lifetime Parameters in Rust

In a mutable language such as C#, how would it know that these temporary objects haven't been referenced by some mutable objects in the older area of the generational GC? If it can't know, then it can't free these objects efficiently at the end of the generation, because it would require tracing all the possible paths to these temporary objects in the older area as well.

When I post about inversion-of-control and temporary objects, I think we will see that immutability is crucial. Otherwise the only choice we appear to have is to unwrap all the elegance of higher-level composition and force the programmer to do boilerplate.

This is why I am coming to the intuition that we are approaching the problems from the wrong direction with Rust's lifetimes. But again, this is complex subject matter and so I am probably wrong or it may be different priorities for different use cases. That's why I want to discuss it.