IWETHEY v. 0.3.0 | TODO
1,095 registered users | 1 active user | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New See, that's where I always get tripped up
People have such heated debates about differences between things (ISA/HASA in this case) and pros/cons thereof that I assume there must be more to it than it sounds like; that I must be missing something because I never took the classes where they taught the terminology.

These two examples show different ways of doing something. It seems clear (to me) that they would work differently, and each is appropriate in its own way. I don't understand how anyone could say that one is "right" and one is "wrong". It depends on what you're trying to do.

Actually this feels like something someone wrote in here a little while ago: (Can't find the link.) It seems so obvious It didn't occur to me anyone would have bothered to name it.
===

Implicitly condoning stupidity since 2001.
New There is a point to naming the useless stuff
Two points in fact.

The first is that if you don't name it, then you have to explain it every time the difference matters. (That or else get tripped up because you meant one thing and someone heard the other.)

The second is that some people think it impressive to know a lot of made-up words.

Sometimes it is hard to tell where the difference is between words that exist for the first and the second reasons. However I have encountered enough people with serious confusion about when they might want to have is-a vs has-a that I consider having phrases that distinguish that to have real value in technical communication.

Cheers,
Ben
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]
New Clarification
I wasn't suggesting that ISA/HASA are the same thing. Quite the opposite: I think they are so fundamentally different that I don't understand having this distinction. It seems to me like having a special term to define the difference between variables and pancakes. They're just different things.

Okay, I'm exaggerating. But are there people who know both of these methods that need it pointed out that they're different?
===

Implicitly condoning stupidity since 2001.
New Yes
More specifically, I have seen people propose designs where people reach for is-a in lots of places where they really needed to reach for has-a. You can virtually see the lightbulb go off when you explain the difference and explain why they really need the other.

The biggest contributing cause that I see for this are people who think that inheritance is good because it is OO and therefore they should use inheritance. But inheritance traditionally is an is-a relationship - that isn't the right hammer when you have a has-a relationship to model.

Cheers,
Ben
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]
New That's why I shouldn't be a teacher
There are some things that just seem so clear to me I don't even understand the question. It's like, "What part are you missing?"
===

Implicitly condoning stupidity since 2001.
     Why extends is evil? - (johnu) - (44)
         Is this just for Java? - (drewk)
         This argument is needlessly pedantic, IMO - (FuManChu)
         Lesson learned from Smalltalk - (ChrisR) - (1)
             sounds like a will -NT - (deSitter)
         Inheritance is a tool. - (admin) - (7)
             Re: Inheritance is a tool. - (deSitter) - (3)
                 There's more to life than implementation inheritance. - (admin)
                 Definitions - (johnu) - (1)
                     I'd ask Alan Kay - (tuberculosis)
             Thank you, Scott! - (jb4) - (1)
                 Another Me Too - (JimWeirich)
             Good example of bad inheritance, java.util.Stack - (bluke)
         This guy cracks me up - (tuberculosis)
         IS A vs HAS A - (gdaustin) - (30)
             Quite. - (static)
             I missed that course - (drewk) - (18)
                 Shorthand for relationships - (admin) - (17)
                     Re: Shorthand for relationships - (deSitter) - (1)
                         snicker - (FuManChu)
                     ISA/HASA are good for a first approximation - (JimWeirich) - (14)
                         So what does it get you? - (drewk) - (10)
                             Specialization vs. Generalization - (gdaustin)
                             Code - (JimWeirich) - (7)
                                 Thanks, but what would HASA look like? -NT - (drewk) - (6)
                                     HASA - (gdaustin) - (5)
                                         See, that's where I always get tripped up - (drewk) - (4)
                                             There is a point to naming the useless stuff - (ben_tilly) - (3)
                                                 Clarification - (drewk) - (2)
                                                     Yes - (ben_tilly) - (1)
                                                         That's why I shouldn't be a teacher - (drewk)
                             The example of a stack (see post above) is a good one - (bluke)
                         My car is a Saturn - (gdaustin)
                         hierarchies and the real world - (tablizer) - (1)
                             Nonsense - (ChrisR)
             Not quite that simple - (tuberculosis) - (9)
                 Thing I love/hate about smalltalk - (drewk) - (2)
                     Similar to Python in that fashion -NT - (admin)
                     Its real -NT - (tuberculosis)
                 Forgot to mention: key driver is "substitutability" - (tuberculosis) - (4)
                     Techies at Hertz - (tablizer) - (3)
                         And if your Table or Data Structure is... - (ChrisR)
                         Mostly - (tuberculosis) - (1)
                             Or perhaps that .... - (gdaustin)
                 Code sharing vs. polymorphism - (johnu)

And he laughed and he laughed and he laughed.
181 ms