dblack / wobblini.net wrote:

> No misstatement: Duck typing isn't something one can implement in
> code.  If you say, "So-and-so codes in an elegant way", that doesn't
> mean that the next step is to create an ElegantWay module.  Duck
> typing, as Dave Thomas has put it, is a way of thinking about
> programming in Ruby.  You may write a module that people who think
> that way find useful, but that doesn't mean that it should be called
> DuckTyping.  You cannot implement a way of thinking, per se, in code.

Well, besides the fact that all code is the implementation of a way of
thinking, have you considered that you may be restricting the concept
arbitrarily? You say DuckTyping is like ElegantWay, and yet I was able
to use DuckType in psuedo-code in a meaningful way. I'd like to see you
do the same with ElegantWay. If what you say is true, how is that
possible?

Of course, you may argue that it's not meaningful, and that actually I
just have a delusional concept of duck typing  that allows me to think
it's meaningful. Yet somehow everyone else in this discussion was able
to undestand me. Or are we all just delusional? Well, however you want
to slice up the semantic salad, the bottom line is I'm trying to *talk*
to people, and I'm going to use words that convey my meaning as
concisely as possible. "Duck" works fantasically well here --trying to
explain in another way, or coining another term would only make it more
difficult. Moreover, if I had, I imagine someone would have eventually
say, "isn't this just duck typing". After all, it's already been
erroneously called prototype-based OOP and AOP.

> I seem to have hit some kind of nerve here.  (To parapharse your
> earlier comment: I'll take your characterization of me as "delusional"
> as a misstatement :-)  But reread what I wrote originally.  It's got
> nothing to do with stymying innovation.  I'm just suggesting that
> hitching all of this experimentation to the "duck/quack" wagon, when
> it comes to method and class and module names, does a disservice to
> both the duck typing concept (which isn't about writing modules called
> Duck) and to the code you're writing (the possible usefulness of which
> is obscured by the peculiar names).

Bull hockey (does this do a disservice to bulls or hockey? ;-)

The problem, David, is that you are adding _nothing constructive_ to
the conversation. You are merely being persnickety over terminology. No
one else is having any trouble over the use the word "duck" in the
code, or what it represents. Certainly I don't expect "duck" to become
a keyword of the language, but it serves perfectly well for this
exploration -- it is ultimately an analogy after all, "if it walks like
duck and talks like a duck..." We're using the analogy.

T.