Languages I liked, I liked immediately. I didn’t need to climb a mountain first.
What's changed since 2015 is that we ironed out some of the wrinkles in the language (non-lexical lifetimes, async) but the fundamental mental model shift required to think in terms of ownership is still a hurdle that trips up newcomers.
A good way to get people comfortable with the semantics of the language before the borrow checker is to encourage them to clone() strings and structs for a bit, even if the resulting code is not performant.
Once they dip their toes into threading and async, Arc<Lock<T>> is their friend, and interior mutability gives them some fun distractions while they absorb the more difficult concepts.
Great post! It's got a ton of advice for being productive, and it should be especially useful for beginners.
To each his own, I guess….
'I'm not as good as learning things at you'
some of my cs professors in school were really good at learning things at me, but haskell and rust professors are not generally as good at it as that.