My recommendation is either "Persistent Datastructures" or "Database as a Value"
Its shocking and amazing that an entire database (eg, the most concurrent stateful thing you can imagine) requires just a handful of atoms. Check out http://www.infoq.com/presentations/Datomic-Database-Value Persistent datastructures are really the core of clojure's concurrency. If you can't incorporate novelty without cloning the entire datastructure, thats not that useful. On Wed, Dec 12, 2012 at 12:42 PM, Paul Butcher <p...@paulbutcher.com> wrote: > Hey Stuart, > > Thanks for the response. > > What I'm trying to do is keep each chapter focussed on an approach, rather > than a language. For example, in the chapter on Actors, I'll be showing > examples in Scala, but the discussion won't be (I hope!) particularly > Scala-specific. I hope to leave the reader with general lessons which could > be applied to Scala, Erlang, or any other language with Actor support. > Similarly, when talking about Threads and Locks, I'll be showing examples in > Java, but the lessons should be equally applicable to C/C++, etc. > > I completely take your point about Clojure's approach being a great deal > more than STM. I guess that I chose STM as the title because it's got > visibility - people are talking about it, and there will be an expectation > on the part of the reader that any book that covers concurrency will spend > some time talking about it. > > I'd be very interested to hear any suggestions for an alternative chapter > title. I guess what best sums up Clojure's approach is that it separates > state from identity - but "Separating State from Identity" isn't exactly > pithy, and I fear won't mean much at first glance to most readers. > > -- > paul.butcher->msgCount++ > > Snetterton, Castle Combe, Cadwell Park... > Who says I have a one track mind? > > http://www.paulbutcher.com/ > LinkedIn: http://www.linkedin.com/in/paulbutcher > MSN: p...@paulbutcher.com > AIM: paulrabutcher > Skype: paulrabutcher > > On 11 Dec 2012, at 19:41, Stuart Halloway <stuart.hallo...@gmail.com> wrote: > > Hi Paul, > > If it isn't too late to change your chapter title, I would encourage > emphasizing Clojure's model of references and values in general, and the > option of implementing a variety of different reference semantics that all > conform to the same basic API shape. > > That general approach has been game-changing for me, and the STM occupies a > rather small niche in the overall space. > > Datomic stores the entire database in an atom (not an STM ref), and updates > it with a call to swap! It is literally no more complex than a trivial > hackneyed book example. :-) > > Cheers, > Stu > > > > On Sun, Dec 2, 2012 at 11:03 AM, Paul Butcher <p...@paulbutcher.com> wrote: >> >> All, >> >> I have a request which I hope the members of this group are uniquely >> positioned to help with. I have recently started working on a new book for >> The Pragmatic Programmers with the working title "Seven Concurrency Models >> in Seven Weeks" (it follows on from their existing "Seven Languages" and >> "Seven Databases" titles). >> >> One of the approaches that I'll be covering is STM, and I'll be presenting >> it in Clojure. >> >> What I'd like to solicit are "war stories" about problems you've solved >> using STM, which demonstrate the strengths of the technique over and above >> (say) threads and locks. >> >> I'm looking for real-world examples instead of presenting yet another >> hackneyed atomically-make-a-bank-account-withdrawal :-) >> >> Very many thanks in advance for your help! >> >> -- >> paul.butcher->msgCount++ >> >> Snetterton, Castle Combe, Cadwell Park... >> Who says I have a one track mind? >> >> http://www.paulbutcher.com/ >> LinkedIn: http://www.linkedin.com/in/paulbutcher >> MSN: p...@paulbutcher.com >> AIM: paulrabutcher >> Skype: paulrabutcher >> >> >> -- >> 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 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 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 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