Most of this is 'classic' FP, which existed long before Rich Hickey ever talked about it. There is nothing "Hickeysian" (to use a word from this very lightweight article) about distinctions between values and identity.<p>"Identity is a putative entity we associate with a series of causally related values (states) over time. It's a label, a construct we use to collect a time series."<p>True enough, but this is extensively covered in SICP Chapter 3 (for example). It is great that Rich Hickey believes this and speaks about it, but he didn't invent the idea, as <i>some</i> Clojure hipsters seem to think.<p>Not to bash the immensely talented, and balanced Rich Hickey (who doesn't make any grandiose claims, and is a brilliant engineer if the quality of the Clojure implementation is any kind of signifier), but this kind of cult behaviour by some of his followers is annoying.
Great read - thanks! I love the river metaphors. The metaphysics discussion also brought back memories of college philosophy classes on Plato's theories around ideas vs. forms. Probably my memory is failing me here and someone more versed in philosophy could help me out here :) But to me it's interesting how classical philosophy could even remotely be related to computer programming.
One of the key things about Rich, is that he simply 'does'. Needed a way to access Java arrays from Clojure, #bam#, it's done.<p>Things have slowed down a bit with the maturing of Clojure, but it was really something how fast Clojure developed back in about 2007/2008 or so.
"a State is a specific value for an identity at a point in time." That just did a little something for my noggin as well. Cool post. Now I have another Hickey video to watch that's probably going to send me off on some crazy tangent for months :)
I find Rich's anti-OO philosophy refreshing. I know Rich's reasons for not liking mainstream/traditional OO is different, but for some reason I've never liked the idea of having methods and data together. I like the concept of Common Lisp's CLOS.