----- Original Message ----- From: <dblack / superlink.net> To: "ruby-talk ML" <ruby-talk / ruby-lang.org> Sent: Thursday, August 07, 2003 5:41 PM Subject: Re: Ducktype, right? > I would describe "duck typing" not as a particular programming > technique, but as a way of understanding how Ruby objects present > themselves with regard to the notion of type. Any Ruby object has > the potential to be customized, so to speak, as to its behavior and > interface. So there's a kind of circularity, when it comes to > describing the type of an object: an object is of type > "the type which is the type of objects that behaves the way this object > behaves". Hence (as I understand it) the idea of "duck typing": if it > behaves (walks, quacks, etc.) like a duck, then it's a duck. Thanks for saying this so well, David. I was trying to collect my thoughts, but I think you just collected them. :) > > This is sort of like having a discovered mixin. Neat. > ^^^^^^^^^^^^^^^^^^ > > Intriguing phrase. What do you mean exactly? :-) Yeah, I wondered that, too. Original poster: Please elaborate... <offtopic> When I was working on _The Ruby Way_ and gathering quotations to intersperse in the material -- and I admit some of these are kind of hokey -- I was thumbing through the writings of Confucius. No, seriously. And I found a quote that I almost used, that reminded me of duck typing: "If an urn does not have the properties of an urn, can it truly be said to be an urn?" :) That may be wrong, it's from memory. Intriguing, though, isn't it? Predates Bishop Berkely, John Locke, Immanuel Kant by 2000 years. Perhaps even predates Plato. My history isn't that good. </offtopic> Hal -- Hal Fulton hal9000 / hypermetrics.com