Eh rust still has issues in some domains, e.g., when cyclic data is appropriate
This might be but then again I’ve been writing Rust for several years and have yet to actually run into this problem. The borrow checker definitely places certain restrictions on what kind of stuff you can do (for good reasons!). Once you know how it works, your brain starts writing the code in advance to fit how the borrow checker likes it and it becomes second nature and a total non issue.
Of course this is part of the reason Rust has a bit of a learning curve, which is fair. But any good sophisticated tool meant for professionals requires proper training and knowledge.
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.
What might benefit you here is a proper GC. There are a few libraries to do this in Rust, though I don’t have any good recommendations since I haven’t needed this myself yet.
This might be but then again I’ve been writing Rust for several years and have yet to actually run into this problem. The borrow checker definitely places certain restrictions on what kind of stuff you can do (for good reasons!). Once you know how it works, your brain starts writing the code in advance to fit how the borrow checker likes it and it becomes second nature and a total non issue.
Of course this is part of the reason Rust has a bit of a learning curve, which is fair. But any good sophisticated tool meant for professionals requires proper training and knowledge.
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.
What might benefit you here is a proper GC. There are a few libraries to do this in Rust, though I don’t have any good recommendations since I haven’t needed this myself yet.