| ▲ | mrkeen 21 hours ago | ||||||||||||||||
Share xor mutate, that's really all there is | |||||||||||||||||
| ▲ | ragnese 20 hours ago | parent [-] | ||||||||||||||||
Talk about trivializing complexity... The idea that making things immutable somehow fixes concurrency issues always made me chuckle. I remember reading and watching Rich Hickey talking about Clojure's persistent objects and thinking: Okay, that's great- another thread can't change the data that my thread has because I'll just be using the old copy and they'll have a new, different copy. But now my two threads are working with different versions of reality... that's STILL a logic bug in many cases. That's not to say it doesn't help at all, but it's EXTREMELY far from "share xor mutate" solving all concurrency issues/complexity. Sometimes data needs to be synchronized between different actors. There's no avoiding that. Sometimes devs don't notice it because they use a SQL database as the centralized synchronizer, but the complexity is still there once you start seeing the effect of your DB's transaction level (e.g., repeatable_read vs read_committed, etc). | |||||||||||||||||
| |||||||||||||||||