Depends on how fast you memorize and understand its 5 rules for ownership (3) and borrowing (2), and how much effort you put into memorizing its types.
The biggest hurdle I had with it is not reflexively understanding how the intermediate types it has work and how to bounce between them. For example: String -> &str -> String. Collection -> filtered/split slice of it -> back to Collection… It’s often not just 1 type either, it’s multiple types which you get by functions declared in traits… Just typing this is giving me a headache.
Combine unintuitive types/not knowing them all by heart with not fully understanding borrow/ownership rules, and you’re going to have a bad time.
Long story short: it’s a fantastic language, and I hope I never touch it ever again. I don’t really need types or memory safety for what I do, but I appreciate it for what it is.
Depends on how fast you memorize and understand its 5 rules for ownership (3) and borrowing (2), and how much effort you put into memorizing its types.
The biggest hurdle I had with it is not reflexively understanding how the intermediate types it has work and how to bounce between them. For example: String -> &str -> String. Collection -> filtered/split slice of it -> back to Collection… It’s often not just 1 type either, it’s multiple types which you get by functions declared in traits… Just typing this is giving me a headache.
Combine unintuitive types/not knowing them all by heart with not fully understanding borrow/ownership rules, and you’re going to have a bad time.
Long story short: it’s a fantastic language, and I hope I never touch it ever again. I don’t really need types or memory safety for what I do, but I appreciate it for what it is.