James O'Brien wrote: > I have found the concept of an interface invaluable in my Java programming > and wondered if there were an equivalent concept in Ruby? > I'm open to the idea that interfaces might not be needed in Ruby Interfaces provide Java with dynamic method dispatch, without the cost(*) of having every individual method in the dispatch table as is the case with Ruby and other dynamic languages. In other words, Ruby has interfaces; every method is its own interface. If you want to group those methods logically, you are free to (as long as you don't use the same method name in two groups!). Unlike Java, Ruby also allows new methods to be added at runtime. That requires every method lookup to traverse the inheritance chain in a linear fashion, instead of one dynamic lookup per dispatch. Caching method lookups helps a bit, but the linear search is still the main reason that Ruby's method dispatch is slower than Java's. (*) It turns out that to search a method table is little to no more costly than to search an interface table, so Java gains nothing there. Clifford Heath.