Dave Thomas writes:
> 
> I just _know_ this is going to get me in trouble, but...
> 
> We currently document this construct:
> 
>   class << obj
>      ..
>   end
> 
> as a 'singleton class'. There's some logic to the name, but I was
> wondering... would 'anonymous class' be more understandable?
> 

Hmm! Anonymous class remind me as a class created via 'Class.new'. For
me, this construct is something to *extend* an object. I know the
implementation, but I see it only as a user, and there it seems that
only the object is extended with new capabilities. No new class
anywhere.

So if changing the term, how about object extension?

> After all, what you're doing is creating a new, unnamed class, based on

Yes! But this happens internally and is not obvious to the user of
that construct, is it?

> obj's class. Yes, there's only one of them (initially), so it _is_ a
> singleton, but I personally find the terminology obscure.

Both, the old terminology and your proposed one, it too much in the
hidden internal direction, IMHO. I would call it for what it does, not
how it work internally.

> 
> As we're just starting to get some momentum going on getting a lot
> more English-language Ruby documentation out (more news later), now is
> a good time to have a look at the notation and see if we can find
> areas where terms could be made clearer.

In the past there was a problem with the terms of iterators. matz has
begun to clarify it, but perhaps there are some places where it is
still inconsistent yet? It should be called either block (in source)
or closure (as object) now.

> 
> What do people think? And are there other phrases and concepts that
> people would like to discuss?

Certainly, but I cannot remember right now :-)

...

\cle

-- 
Clemens Hintze  mailto: c.hintze / gmx.net