This is where I start to get confused. If "immutable" is a global attribute of each object, wouldn't there need to tend to need to be only one universal user of the bit at a time? Otherwise, the database might be setting the bit on an object for it's purposes, but for which the [your other favorite framework] in having its own purposes for the bit, might not want it set at that time...?
I am of course, wondering about my own context. In thinking about the purposes of an ODBMS, one of the chief beneciary's of this type of change, it could help Magma immensely. But then Magma would have to impose on the user/application that, "the immutable bit belongs to Magma, don't use it or mess with it, ok? I need it..." But the feature is not there today, so at least legacy applications would enjoy the performance boost..
On Wed, Mar 17, 2010 at 1:26 PM, Casey Ransberger ron.spengler@gmail.com wrote:
I've been thinking about immutability in Squeak too! And hell yeah it's bigger than databases.
- makes concurrency painless - improves testability - allows certain compiler optimizations that aren't possible when there's mutable state - makes certain things formally provable that aren't when there's mutable state
I think these are all great reasons to experiment with. I'd like to assert though: immutability should be introduced in a way that's optional, and doesn't introduce any new syntax.
I'd like to ask an object #isMutable and be able to do certain things differently if it answers false. Mutable objects are ones that have state that can change.
Randal: FWIW, I think the Newspeak guys are playing with this stuff.
On Wednesday, March 17, 2010, Stephen Pair stephen@pairhome.net wrote:
On Wed, Mar 17, 2010 at 12:27 PM, Bert Freudenberg bert@freudenbergs.de wrote:
On 17.03.2010, at 17:12, Chris Cunnington wrote:
Databases are for peasants. We are unique and occupy a unique position. Let's embrace that. Stop trying to turn us into shadows of Gemstone, Cimcom, or other merchants of tedium. If Kent Beck isn't happy with Squeak, I don't see it as our job to cater.
There is nothing else on earth like us and what we do. Squeak is a never ending game of capture the flag.
Chris
And even if it *was* only for databases it wouldn't hurt to support it in Squeak. It takes nothing away from the fun.
And it's not only about databases. I would be interested in immutability implementations that go beyond what VW does. I would like to see some thought given to deep immutability and irrevocable immutability (irrevocable at least at some language layer). These facilities would be immensely useful for safely and efficiently sharing and replicating state between processes.
- Stephen
-- Casey Ransberger