← Back to context

Comment by rao-v

11 hours ago

Why don’t we just do this by default for threading in most languages? It’s pretty rare for me to actually want to do memory sharing while threading (mostly because of the complexity)

Because it's super slow and shared memory is super fast. And people generally prefer fast code rather than safe code.

  • It's not "super slow" and most languages do something very similar within concurrent data structures.

    Also, copy by value in itself is just a semantic requirement, it doesn't say how it's implemented.

    And shared mutable memory is pretty damn slow (given you are not fine with data race garbage), because atomic operations destroy caches. So it's the usual space-time tradeoff at the end of the day.