But i asked myself if interfaces would be necesseary for a native pure OO-Language which binds the method-call totally dynamicly
You are right in that statically checked OOPL (i.e., compiled languages like Java, C++, Ada etc.) use abstract classes to ensure that a derived claases support a specific signature. Interfaces are essentially an extnesion of this concept, helpful in those cases where were want to support multiple interface inheritance without having to deal with the issues multiple implementation inheritance brings to the table.
Obviously, if you don't check statically method calls you don't need to exlicitly declare interfaces, and at worst raise an exception or invoke a 'don't understand' method.
Personally, I think interfaces are much more fundamental than classes, inheritance, binding times etc. so I wouldn't vote for the proposition you are trying to make. Sure, dynamic OO languages don't really need an interface construct, but I would prefer a language with a clear construct for interfaces than a language without one.
Part of the appeal of OOP is subclass polymorphism which alows you to write "interface oriented code" (coding upto a required interface). This is, of course, possible even if interfaces are not explicitly declared, but since this is such a fundamental programming style, I prefer clear language support and er.. encouragement
|