Hi --

On Mon, 9 May 2005, Hal Fulton wrote:

> Just expressing my opinion here.
>
> I don't like the term "idioclass" because "idio" doesn't
> remind me of "idiom" at all, and even if it did, it would
> be meaningless to me.

It wasn't supposed to remind one of "idiom".  It's a separate use of
the idio- prefix (as in idiolect, idiosyncrasy, etc.).

> I don't mind the term "singleton class." I'm used to it.
>
> If it must be changed, though, I question whether even the
> word "class" is appropriate.
>
> Consider the traditional meaning of "class" in OOP -- consider
> the *reason* that word was chosen. A "class" is a category.
> It is like a template that characterizes the members of that
> category -- in real life, we expect the "class" of Ford automobiles
> to have certain things in common, or there would be no reason to
> "class" them (or categorize them) together.
>
> But in that sense, a "singleton class" is not a class at all.
> It is just a "place" where we store information on unique methods
> and attributes and such. A class also has a "place" associated
> with it -- whether you think of it as a place in memory, or in
> the interpreter's code, or in the programmer's brain.
>
> But the class and the "place where the class's stuff is stored"
> are not really the same thing, are they? I submit they are not.
>
> I further submit that what we call a "singleton class" is a
> (or has a) "place" but isn't a class at all really; whereas a
> real class IS a class and also has a "place" to store its stuff.
>
> So we've been concentrating on changing the first word of the
> phrase "singleton class." Could we perhaps change the second
> word instead, making it a "singleton [whatsis]"?

There was a brief flurry of discussion of having it be a singleton
module, which I actually think is potentially good.  I can't remember
which of these threads it was on... but searching for "singleton
module" will probably unearth it.

Matz has also talked about the fact that the singleton class is really
just one way to implement per-object modification.  He'd mentioned a
"class-like object" that might not actually be a class.  Some
questions arose in that context, like:  would there be a class
interface to it?  what would class << obj; self; end  give you? etc.


David

-- 
David A. Black
dblack / wobblini.net