One thing to consider here is, that when trying to implement general
purpose STM for an imperative language, basically every assignment is
a candidate for a write conflict, akin to a ref-set in clojure's STM.
OTOH in idiomatic clojure there are no assignments, only lexical
bindings, new versions of persistent data structures and return
values. Neither of which need the STM at all.

Only results that you actually want to use later are written to refs.
Those writes might still congest the STM, but at this point it becomes
a design issue of having too many writes. As we know, yes, this tends
to slow down applications and suddenly you find yourself facing the
CAP theorem.

So in a nutshell: a general purpose STM babysits side-effect ridden
code, clojure's STM keep track of refs.

cheers

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to