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
