I experienced similar challenges writing a music engraver app. I ended up rewriting it in Go in fifth the time. I think Rust is trying to solve a really difficult problem (certifying total memory safety at compile time) by exposing faulty assumptions about our code. But the problem is that in real programs, the interplay between correctness, safety, ease of maintenance and performance considerations is not a mathematical equation that can be solved at once by fixing the values of certain parameters. Often, what is needed is the ability to quickly experiment and rule out all the dead-end designs and algorithms which is really hard to do when you are changing multiple parts of your program while wrestling with the borrow checker all the way.
smallerize•3h ago