From: topmind on


Jeff Brooks wrote:
> topmind wrote:
>
> > Leif Roar Moldskred wrote:
> >
> >>"topmind" <topmind(a)technologist.com> writes:
> >>
> >>
> >>>And right off the bat in this link:
> >>
> >>So? You were demanding examples of OO on the web that wasn't device
> >>drivers; not examples of OO on the web that was likeable to you. (I
> >>very much doubt the latter exists anywhere.)
> >
> > Huh? I was hoping to see demonstrations of polymorphism making software
> > better (by whatever metric you propose) in something besides the common
> > textbook domains.
>
> There have already been a few examples posted. Read them.

Nobody has provided a definite URL so far.

>
> >>(And from my experience, customers want a sysetm that _works_ and
> >>doesn't give a damned about how you make it work as long as it doesn't
> >>involve grand treason -- unless they can claim plausible deniability
> >>in which case they don't care about the how at all.)
> >
> > Software is generally going to be more change-friendly if it fits the
> > pattern of future changes. If the customers don't give a damned about
> > your internal hierarchies, then using hierarchies is probably not a
> > good change-friendly bet (unless you want to force them to live by your
> > arbitrary classification system and let them vote for your competitor
> > with their feet).
>
> That's an illogical argument.
>
> Do you think if a customer doesn't give a damn about the structure of a
> procedural program that means the structure won't affect the future
> maintainability of the software?

I am not sure what you mean. I am only saying that real world changes,
such as customer preferences, don't usually change in a hierarchical
way over time. If you want change-friendly software, your software
should not hard-wire itself to tree-based changes.

>
> >One would just spend a lot of time reshuffling the
> > tree to handle new requests and/or new combinations of requests. I want
> > a bank account that is BOTH savings AND checking perhaps, and to switch
> > each such feature on and aff as desired. Are you really gonna create a
> > Cartesian Explosion of sub-classes for each feature combination
> > (existing and new)?
>
> That's an illogical argument.
>
> The problem would only exist if you had to model everything as a single
> rooted classification tree. That isn't true so your argument is meaningless.

Are you suggesting multiple inheritance?

>
> > I assumed being change-friendly was one of the bragging points of
> > polymorphism. If not, then please state your measurements of
> > betterment.
>
> How did you measure that polymorphism is worse?

It is objectively more code rework if you want to change it to a HAS-A
model when trees fail. If you start out with a HAS-A model, obviously
it is easier to accept more has-a's without lots of code rework.

>
> Jeff Brooks

-T-

From: topmind on
> Says the person who hasn't presented objective evidence
> supporting his position.

It is my opinion that paradigm preference is largely a *subjective*
thing. Thus, there is not much to objectively prove either way.

See: http://www.geocities.com/tablizer/science.htm

I popped in here when OO fanatics implied that polymorphism is
objectively better for most uses.

I believe the only objective claim I made is that it is harder to
change polymorphism to HAS-A designs (when taxonomies/classificationis
stop being tree-oriented). This is based on the number of lines (or
perhaps token quantity) that has to be changed to convert.

As far as whether the real world changes in a tree-wise fashion or not,
this is a little difficult to prove either way. I find treeness too
artificial, but if you see trees, so be it. We may have to explore
explicit taxonomies/classifications of actual applications to settle
that. I have provided examples of tree taxonomies breaking down on my
website. For example, see:

http://www.geocities.com/tablizer/sets1.htm

-T-

From: topmind on


Robert C. Martin wrote:
> On Fri, 10 Jun 2005 18:57:21 -0400, CTips <ctips(a)bestweb.net> wrote:
>
> >topmind wrote:
> ><snip>
> > > OO is good for .... shapes.
> >>
> >
> >Not really. Anytime someone comes up with the shapes example, ask them
> >how they would add the method:
> >
> >class shape {
> >// true if object has any points in common with <B>
> >boolean intersects(shape B);
> >}
> >
> >See how quickly mind-lock sets in....
>
> That one is not so hard. Simply algebra can solve it without too much
> difficulty (I've done it). The tougher one is:
>
> Shape intersection(Shape s);
>
> That requires a generic shape that can represent any shape at all.
>

Just "store" the representation as the intersection itself. Most
real-world shapes tend to be best representated as combinations or
variations of simpler shapes anyhow.

For example, a CADD system may represent a shape as a polygon (list of
points) with some of the edges smoothed by bazieer (sp?) curves, etc.
If you crank up the smoothness factor on all points in an octogon it
turns into a circle. (Whether the CADD system recognizes it as a circle
is another matter).

If you wanted to make the shape of a U-shaped magnet, you might start
out with an Oval, cut it in half by intersecting it with a rectangle,
and then subtract out a smaller oval in the center for the inside
U-part. We thus have 2 subtractive set operations taking place.

Damn! You got me talking about @#!$& shapes again! I've been had!

-T-

>
>
> -----
> Robert C. Martin (Uncle Bob) | email: unclebob(a)objectmentor.com

From: topmind on


> >> You make claims all the time and have no proof.
> >
> > Like what?
>
> Like (referring to RCM) "But all his examples are device drivers"
>
> Like {referring to me) "you were the one bragging about how great
> polymorphism is,"
>
> > Even if I did, does that give you license to also be an idiot?
> >
>
> Stop shaking your head and argue. Learn how to make a coherent argument.
>
> Best wishes,


I am not sure what your complaint is. Those are claims about debate
issues, not paradign claims. You are mixing apples and oranges.


-T-

From: Patrick May on
"topmind" <topmind(a)technologist.com> writes:
> Patrick May wrote:
> > Outstanding, you finally have the opportunity to demonstrate
> > the advantages of your preferred programming approach over OO in
> > the context of a real application. Robert Martin has already
> > provided a link to his implementation -- let's see yours.
>
> Unfortunately, I don't want to release it public because I want some
> security through obscurity. I might release snippets though. There
> are plenty of existing wiki's implementations anyhow, and my
> approach does not significantly differ than them (although I feel I
> factored better than some of those I looked at).

Security through obscurity is no security at all. As you note,
there are a number of Wiki implementations extant; it seems unlikely
that making the code to yours available would cause you any harm.

At the very least, you could support your claims regarding
polymorphism by publishing enough of your code to allow comparison
with FitNesse.

Sincerely,

Patrick

------------------------------------------------------------------------
S P Engineering, Inc. | The experts in large scale distributed OO
| systems design and implementation.
pjm(a)spe.com | (C++, Java, Common Lisp, Jini, CORBA, UML)
First  |  Prev  |  Next  |  Last
Pages: 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Next: Use Case Point Estimation