clojure / clojure-site

clojure.org site
https://clojure.org
Eclipse Public License 1.0
249 stars 270 forks source link

Guide for Unified Succession Model #188

Open stuarthalloway opened 7 years ago

stuarthalloway commented 7 years ago

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".

puredanger commented 7 years ago

Would also be good to reference:

jafingerhut commented 7 years ago

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?

puredanger commented 7 years ago

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.

vvvvalvalval commented 5 years ago

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.


TL;DR How to help


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.

puredanger commented 3 years ago

There are three kinds of things on the site:

vvvvalvalval commented 3 years ago

I should probably mention that I no longer have the availability for this sort of contribution :)

puredanger commented 3 years ago

No worries, thanks!