<programming> 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.