I would have to say that the biggest surprise is how little they're needed 
in Clojure. The combination of immutable data, functions to update complex 
data structures, and fast pure function updates with atoms actually 
satisfies a large percentage of real use cases.

For cases where you do need coordinated change, refs/STM are usually used 
with coarse granularity (way coarser than "object" level, more at component 
or subsystem level) so there are comparatively small numbers of them. 
Despite that, again immutable data + deep manipulation + fast pure function 
updates means that I can't think of ever hearing a report about issues with 
retries or anything like that in dosync transactions. If you need to, it's 
not particularly hard to "tune" the granularity of refs to achieve better 
performance, just by choosing where in a complex data structure you chop 
things up - generally things work well when they're pretty coarse though.

On Tuesday, May 5, 2015 at 6:42:43 PM UTC-5, raould wrote:
>
> hi, 
>
> What do people think of STM after all these years? What pros vs. cons 
> are there - has the community evolved the list of them? 
>
> thanks for any thoughts. 
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to