Eh rust still has issues in some domains, e.g., when cyclic data is appropriate. You can do it, but it’s annoying. To me, Haskell is really peak programming, but I know that’s opinionated and most won’t agree.
Vscode can do cross-file renames in pretty much any language. An LSP that doesn’t support this is not doing its job.


Yeah it depends what you’re doing. I do a lot of circuit modeling where different subsystems need to talk to each other. The solutions are either Rcs (and a bunch of custom drop logic) or a parent struct holding all the others. Both are awkward. But in other programming domains I’ve found rust pleasant.