I’m willing to say this is the experience a lot of people get when first learning Rust. It forced me to reevaluate my way of logic when writing my first few programs with it. I had to fight the borrow checker and the type system quite a bit before I could grok the compiler messages.
Yup! It seems very common. A month or two in, though, it kind of just clicks and you don’t fight with it very often.
It can be hard at first because it emphasizes structure, even more with IO. Once you are working with your data structures, it gets easier.
I am still slow when starting a new project, but once the plumbing is done, modifying anything is easy, since the compiler has my back.
I find a ressemblance to Haskell development, where any IO is soon abstracted away, to work only with deterministic functions.
I have high hopes for ponylang (http://ponylang.org/). It will doubtless have its own issues, but it seems likely to avoid some of the more excruciating rust design decisions that spur posts like this.