Hacker News new | past | comments | ask | show | jobs | submit login

So Rust has no way to mark side effects and global dependencies of functions? Allowing singletons in a language that is supposed to be safe sounds like a huge design flaw.



Mutable statics are unsafe to access or update. You can use interior mutability with something like a Mutex to get a mutable-but-not-to-rustc value, which is safe.

Systems programming languages need this kind of functionality.


Putting a mutex around a global variable doesn't change the fact that it is still a global variable.

Memory access might be safe but you get spaghetti code and combinatorial state explosion due to all the potential side effects.

Allowing singletons for edge cases is fine but with no proper way to enforce it except code review you really have now idea what the underlying code might potentially do.


I agree with you that using globals as sparingly as possible is good, but your original claim was about safety, so that's what I focused on.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: