duck typing

A term coined by Dave Thomas for a kind of dynamic typing typical of some programming languages, such as Smalltalk, Ruby or Visual FoxPro, where a variable's run-time value determines the operations that can be performed on it.

The term comes from the "duck test": if it walks like a duck and quacks like a duck, it must be a duck.

Duck typing considers the methods to which a value responds and the attributes it posesses rather than its relationship to a type hierarchy. This encourages greater polymorphism because types are enforced as late as possible.

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/100511.