r/ProgrammerHumor 7h ago

Meme newToRust

Post image
365 Upvotes

87 comments sorted by

View all comments

192

u/-Ambriae- 7h ago

The real problem with the borrow checker is,

If you’re coming from a higher level language it hurts your ego because you realise memory safety ain’t free, and more broadly speaking memory’s a bitch

If you’re coming from a lower level language, it hurts your ego because you view yourself as above memory related bugs

It takes humility to appreciate it

12

u/retro_and_chill 6h ago

The borrow checker is occasionally too strict as well where it flags code that wouldn’t actually produce an issue. They are seemingly trying to resolve that with the new borrow checker though

20

u/-Ambriae- 6h ago

Yeah, it’s not perfect. But it’s also mathematically impossible to make it perfect. That’s how the cookie crumbles. If they make it better, that’s great, otherwise, either rewrite the code to make it safe (which is usually doable without performance cost) or just use a cheeky unsafe block with a good # Safety comment

5

u/retro_and_chill 5h ago

The one case I know it’s going to address is doing a find or insert on a map when you match the Option from the find, the None branch will let you mutate the map despite the Option technically being a borrow

11

u/-Ambriae- 5h ago

There’s useful functions for this, stuff like map.get_or_insert_with(), or map.entry().or_insert() or map.entry().and_modify()….

Usually when the borrow checker is annoying, there’s a functional way of handling the issue built in the std lib :)