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.