As promised, the following is a link to the talk I referred to in the
discussion last night.
http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey
This talk provides a very illuminating discussion of Identity vs
State, (im)mutability, (im)mutable collections by the author of
Clojure. These concepts are presented in a language independent way
(while this talk is based on Clojure techniques, there is little to no
actual Clojure code in the slides.)
All of us hear that 'immutability' is good. But obviously everything
can't be immutable else we could just turn off our computers and tape
a screen shot on our monitors. This talk gave me a common-sense
understanding of immutability, how it is practical to implement, and,
of course, once again, why it is such a good thing.