The Value of Values with Rich Hickey
InfoQYouTube ↗
Further reading 6
Can today’s record explain yesterday’s decision? →Keep the value a decision actually used so that later changes do not erase its explanation.What did the record say at the time? →Access patterns determine how to organize a store. Retaining historical facts determines which past questions it will ever be able to answer.What does a snapshot promise its reader? →Stable snapshots let observers read a particular version. Treating information as values explains why that version can be passed on without changing its meaning.Can a later update invalidate an earlier fact? →State makes an answer depend on when you ask. Recording time with a fact lets two different answers describe different moments without contradicting each other.What should cross a module boundary? →Values have meanings that callers can inspect independently. A boundary that passes values makes decisions easier to exercise without setting up the surrounding infrastructure.Why don’t two locked objects make a safe transaction? →Compare what each lock protects with what the combined operation requires. This is a cost of coordinating shared mutable state, not a claim that every lock is wrong.
Caption notes
Updating a location in place loses its prior value. Hickey argues for treating facts as immutable, time-bearing information that can be compared and shared.
Original passages · 6
every time you run that function will you get the same answer novalues aggregate to values all the benefits apply to Aggregatesyou can go look at that place and see something totally differentyou can't update a fact is because you can't change the pastvalues are immutable right and values are semantically transparentno they don't because facts incorporate time how is