https://wiki.haskell.org/Software_transactional_memory
As I always say, Haskell is the Mercedes of programming languages.
https://wiki.haskell.org/Software_transactional_memory
As I always say, Haskell is the Mercedes of programming languages.
Comfortable, packed with features, pretty fast given its weight, kind of elitist yet approachable if you invest time in it? :p
Also something about inventing/spurring mass adoption of airbags and ABS. Safe and fast.
"The Clojure STM uses multiversion concurrency control with adaptive history queues for snapshot isolation, and provides a distinct commute operation."
https://clojure.org/reference/refs, for the curious and brave
Maybe others have had a different experience, of course. This is just an observation about my own code and the libraries I use.
It turns out that updating a single storage point in an atom with a CAS serves 99.9% of use cases, and is much, much simpler than ref-based code.
Haskellers (including myself) tend to default to STM to take advantage of atomicity.
Of course it's easy to make the safe choice when the shared interface between concurrency primitives make switching very low cost.
More: https://www.oreilly.com/library/view/parallel-and-concurrent...