A few things under the learnability front that I think should get some more attention:
-
It’s incredibly hard to represent single inheritance. Things like specialization and the fields in traits proposal will help with this some, but Rust essentially makes you change the problem statement to fit the language in this regard. Things like
Any
not allowing you to go to trait objects mean that even if you figure it out, there’s still patterns you can’t represent. -
It’s not straightforward to build hierarchies of services and components where children need to ask their parents for things. It’s doable, but you have to use
RefCell
or more complicated patterns. A parent can know about its children. A child can know about its parent. But both at the same time is very hard.