> But when did it begin being the ace of spades? Unless all fields keep
> their initial value any object changes; the ace of spades began its
> life as the null of null.


immutable, not immortal.

At some point in the past it came into being through the union of "Ace" and
"Spades".
Before Spades we had tarot decks, with swords on.  They still exist.

I'm fully aware of the distinction between "Ace of Spades" as a purely human
concept and "Ace of Spades" as constructed on the heap.  And yes, at some
point in time during that construction there started out a bunch of memory
that was initially set to zero.  But that's an underlying detail of the JVM
implementation, not some aspect of the domain model.  Sure it's a
interesting topic, but not quite relevant in a discussion on the *concept*
of immutability.



> No a big deal because nobody can observe
> this state, however, once one gets into initializing immutable object
> graphs things get very hairy very quickly: Immutability is not that
> simple after all.


But, crucially, the swords on all existing tarot decks didn't suddenly
become spades once that suit had been devised.  They remained swords,
stubbornly and immutably.
I can only imagine that this convenient fact rather simplified the lives of
fortune tellers!

The question is:  What's inherently more complicated about the
initialisation of an object when it has final fields?  Is there some
particular problem you have with JodaTime that's perhaps causing you to tear
your hair out?


This issue also neatly demonstrates why Option/Maybe won't magically get rid
> of null.
>

Okay, so what if the underlying architecture must necessarily have
uninitialised values at some point?  Why does that mean a higher-level
language such as Java must expose these?  After all, the underlying
architecture quite clearly has function pointers...



-- 
Kevin Wright

mail / gtalk / msn : [email protected]
pulse / skype: kev.lee.wright
twitter: @thecoda

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to