On Sunday, July 18, 2010 08:46:13 am Rick DeNatale wrote:
> On Sun, Jul 18, 2010 at 6:46 AM, James O'Brien <jeob32 / gmail.com> wrote:
> > David,
> > 
> > many thanks! i found your explanation very useful.. and an article on
> > duck typing is well worth reading e.g
> > http://en.wikipedia.org/wiki/Duck_typing for any other ruby newbies out
> > there!
> 
> FWIW, I wrote a paper about role-based 'types' nearly 20 years ago,
> when I was at IBM.  I've shared it with a few experienced Rubyists who
> seemed to find a certain resonance with the ideas.  Recently Alexander
> Cockburn (of Crystal fame) with whom I have a shared hertitage at IBM
> back then, tells me he still uses the paper when talking to clients
> about dynamic typing.
> 
> http://talklikeaduck.denhaven2.com/files/TypesFromTheClientsViewpoint.PDF

Definitely a resonance.

If I understand what you're saying, something like Java interfaces were known 
and implemented in C++ and Smalltalk, though more by convention. I wonder if 
client-side interfaces were ever implemented as anything quite so explicit...

I wish I'd known about this earlier. In a Java-based freshman data structures 
course, a TA asked an interesting question: "What is the purpose of 
inheritance?" I answered, "Code re-use." He disagreed, and I'm not entirely 
sure, but I think he said, "Types." In Java! Ah, well...