> 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.
