Productivity: Time spent writing code vs test/debug/fix?

I think a lot of this depends on the type of Rust code you write. For instance, working with tokio/futures, as they’re today, is not very pleasant until you get very familiar with those libs and more advanced Rust concepts.

Designing APIs is also tougher because you have one more axis to consider - ownership/borrows. In addition, if you go heavy with generics and abstraction, you can fall afoul of various limitations/idiosyncrasies of type inference, coherence, type recursion, generic bounds, type aliases, associated type projections and so on. This is an area where if you don’t know all of these things upfront, you can design yourself into a corner, so to speak. This isn’t so much of an issue for internal APIs since you can code your way out of it but if you’re making public ones, and you mess this up, I can see it being unpleasant.

But, if you get all this right, it should reduce debugging significantly.

5 Likes