Ron Jeffries wrote:
> 
> On Mon, 14 Jan 2002 03:48:44 GMT, Albert Wagner <alwagner / tcac.net> wrote:
> 
> >2)  it is an attempt to reduce the visual complexity, so as to be able to
> >grasp quickly what is going on in a method; i.e. , condense a snippet that is
> >not duplicated anywhere else into a sort of language shorthand.  I call this
> >the "Watership Down" syndrome: one, two, three, many.  This is the most
> >common reason and the most unjustifiable from a programming standpoint.
> 
> I'd like to hear more about this last sentence ...

I was referring to those times when I take a snippet of code from
a long and complicated method, what Holden (#31123) calls
"helper" code, and create a new method.  This method is called
from only one place, so its methodizing can't be justified by the
"don't duplicate code" rule.  The only justification for its
methodizing is to reduce the physical size of its "owner" method,
rendering it more readable. Laurent touches on this (#31128) with
his "flattened" method.

If you were referring to the "Watership Down" remark:-), that is
a reference to a book I read in the '70s, I think, about a group
of rabbits on an adventure.  Rabbit's had trouble with numbers
and their counting consisted of one, two, three, many.  Humans
also have natural limits in the number of abstractions they can
hold in their head at a time.  The really good books on human
interface make frequent reference to such limits.  Mike hit the
nail on the head in #31116:  code is replaced with
self-documenting method names, until the method falls under the
"many" limit.

It is no accident that OOP is so closely associated with
hierarchies: OOP is an attempt to deal with complexity.  I think
that the subject you brought up is so closely related to OOP
hierarchies because it is the end result of another hierarchy
that we haven't yet named, but are all aware of at some level. 
Complicated objects are criss-crossed with such hierarchies.  OOP
is simply an attempt to formalize one of those.  If OOP (class
hierarchies) are perceived as vertical, then there are other
hierarchies that are horizontal. Aspects (AOP) are an attempt to
deal with one of these.

Now I am rambling.

> 
> Ronald E Jeffries
> http://www.XProgramming.com
> http://www.objectmentor.com
> I'm giving the best advice I have. You get to decide whether it's true for you.

-- 
"It requires wisdom to understand wisdom:
 the music is nothing if the audience is deaf."
 - Walter Lippman