On 1/4/07, ara.t.howard / noaa.gov <ara.t.howard / noaa.gov> wrote:
> On Fri, 5 Jan 2007 dblack / wobblini.net wrote:
>
>
> >
> > Ah ha, my OO-er than thou claim comes back to haunt me! :-)  I actually
> > don't usually talk in terms of more/less OO, and I know I'm guilty of
> > introducing that into this discussion... but I will say that I don't think
> > "one object responsible" is a principle of OO.  It may be that the ability
> > to override send is a problem, but obj.send("message") is, I think, a pretty
> > object-oriented way to go about things.
> >
>
> heh.  i think we're all in agreement then.  something should be done so
> encapsulate the notion of 'this must always work' for a certain group of
> methods.  i'm for a module/syntax based solution or, at the very least, a
> consistent naming convention.  if you're reading matz, what do you think?
>
> is anyone feeling up to summarizing and making a RCR?
>
> -a
> --
> in the practice of tolerance, one's enemy is the best teacher.
> - the dalai lama
>
>
I have been following this whole dicussion, and I think it is time to
put my two cents in, and summarize it.

We started not liking how #send would call private methods. and we
need it to not call them, but wait we need soemthing so we can call
those private methds.  The most commonly suggested method: #send!  But
#send still causes namespace issues.  The ultimate solution!...lots of
underscores.  We hate those too, hrm.  Lets add a new super
class/module/object/thing to the mix, called a Pervasive.  When we
need something not unique to a class we call it with Pervasive.method
obj.  Wait, then we do Pervasive.new(Foo, :args) every time, and we do
Pervasive.class obj a lot too.  This is super ugly, probably breaks
encapsulation, etc...  The solution, give the classes those methods,
and make them overriable, and also allow access to the object through
the Pervasive.  Problem here though, when writing a library we won't
know that someone overrode a method somewhere else in the chain, so we
are stuck using the Pervasive a lot anyway.  Why this isn't a problem
now you might ask?  Because we don't have the Pervasive, so people are
less willing to override those methods.  We still won't have a good
looking #send that calls private methds.  Well, we will, but it needs
a name.  I am willing to write up the RCR on this one.

-- 
Chris Carter
concentrationstudios.com
brynmawrcs.com