Open stuarthalloway opened 7 years ago
Would also be good to reference:
I am out of the loop, obviously, but in what possible way is 'succession' different than an 'in place update', with all of the connotations of 'in place' included?
Succession implies that one thing follows from the prior value, rather than modify or replace the prior. In particular, Clojure's succession model separates the values from the identity holding the current value whereas (for example) a Java field is both the identity and the "place" that is modified.
So I'm willing to take a stab at this, but I may need help defining what problem of understanding we're trying to solve for the reader of the guide here (I'm afraid I'm now so familiar with the USM that it seems obvious to me now).
We also need to clarify what the guide should add compared to the existing page on State and Identity.
Presumably, this is more about the Succession Model than about it being Unified: we can't be content with just saying that all ref types in Clojure (and some outside Clojure, I'm looking at you Datomic connections and Git branches) have equivalent APIs, that's not worth a while guide (right?).
So what is it about the Succession Model that the reader may be struggling with? I see a number of possibilities:
Those are very broad strokes, but I'd like some validation before pushing further.
There are three kinds of things on the site:
I should probably mention that I no longer have the availability for this sort of contribution :)
No worries, thanks!
We talk about Clojure's Unified Succession Model when explaining the various reference types, but it is not mentioned on the site. This SO answer might be a good starting point.
At this point I strongly prefer "succession" over "update". "Succession" is more precise, and not polluted by the "in place" connotations of "update".