On Jul 20, 2005, at 12:30 PM, Adam P. Jenkins wrote:
> You're trying to make the distinction more profound than it really  
> is. Class objects in Java are immutable, which I think is what you  
> mean by "dead".

OK. So Java Class objects are immutable.  If you prefer that terminology
that is OK with me.

>   So would you say Ruby Fixnums aren't really objects because  
> they're immutable?

No, I wouldn't say that, but you switched the discussion a bit from a
discussion of (im)utable classes to (im)mutable instances.  My post  
was not an attempt
to belittle Java class objects but to simply point out that just because
Ruby and Java both happen to have runtime objects called classes  
doesn't mean that
the two things are all that similar.  Yes, there are aspects of the two
concepts that are similar but that doesn't change the fact that a  
Ruby class
object is a vastly *different* concept than a Java class object.

>   Java, Python, and Smalltalk all have immutable string classes;  
> would you say they're not really objects?

I never claimed that Java class objects weren't objects.  I just  
tried to
illustrate that they aren't the *same* as Ruby class objects.

> Java certainly has class objects, you just can't do as much with  
> them as you can in Smalltalk or Ruby.
> In particular you can't modify class objects at runtime.  I believe  
> that mutable class objects in the
> Ruby/Smalltalk sense are incompatible with statically typed  
> languages, so really whether you realize
> it or not, you're arguing for dynamic typing over static typing.

I wasn't trying to take sides on dynamic/static typing
and in any case I'm not so sure that is the same thing as mutable/ 
immutable
classes but that probably depends on whether you view classes as types
or interfaces and the concepts are probably related or even similar
but not exactly the same :-)

Anyway I was just trying to say the two things were *different* without
trying to insist on some sort of pecking order between the two different
concepts.


Gary Wright