The following message is a courtesy copy of an article
that has been posted to comp.lang.misc as well.

Yukihiro Matsumoto <matz / netlab.co.jp> writes:

> `initialize' trick requires two things:
> 
>   * `new' accepts arbtrary number of arguments
>   * `new' does not use arguments to allocate object,
>     just pass to `initialize'

Now I know I'm being stupid here. If Array.new did the object
allocation, and then passed all its arguments to initialize to do
further initialization on that object, it seems we get the best of
both worlds. I don't see that it's necessary for .initialize to do the 
allocation (any more than Dave.initialize allocates the underlying
memory for a Dave object--it may create instance variables, but
there's still the object structure allocated by New). 

I just know I'm missing something here. Sorry.


Dave