I am somewhat in awe of how Rust seems to distill the essence of pointers & memory management while offering great abstraction tools, and while still allowing a way out to more pampered programming, up to Gc.
However, for my applications, I initially approach my problems without wanting to think about lifetime & ownership, and only add that in when and if it becomes necessary. Consequently I also do not want to see any annotations that are related to lifetime & ownership until I actually want to think about them. At which point I will be extremely glad to have the Rust type-centered way to help structure those thoughts.
In this sense, those annotations constitute noise unless I want to think about them. I’d like to follow this path whether working in some typical business domain, or deep in the bowels of some embedded real-time code.
So in my dreams my typing would start off looking about as light-weight as in Haskell (other than the mandated top-level signatures, but without any Gc<T>), and other annotations like & 'a 'b Rc would only show up when I invite them in – in fact, if possible Gc would never even be explicitly needed at all.
Just wondering if this:
- makes sense as a language-design goal?
- was considered but turned out impossible for Rust?
- was not a goal?
- never will be a goal?
Thanks!