2 ms·
Well, for one, Rust doesn't. And I think you mean data races and not race conditions, or at least race conditions with regards to data/memory access. I don't kn
by bmitc 4y ago
Well, for one, Rust doesn't. And I think you mean data races and not race conditions, or at least race conditions with regards to data/memory access. I don't know of a language that prevents race conditions.
In Elixir and Erlang, mutating data is impossible, so those. A language like F# makes it easy to avoid race conditions as well, but it is possible if you use classes or the mutable keyword. Even then, you will not corrupt memory and are only having race conditions in terms of the order in which data is accessed. But is rarely a problem with a functional first approach. I never even need to use a debugger with F#.
Any language with asynchronous computations will have race condition surface area, but there are several high-level languages that makes this difficult.