Robert Klemme wrote: > Funny that you should mention Eiffel. Not if you know my history. I had the very great pleasure of working with Bertrand about ten years ago on modifications to the Eiffel language. > Betrand Meyer is one of the guys > who actively advocate implementation inheritance - and that's why you > can create subclasses of superclasses which do not follow the general > "is a" contract (i.e. are no supertypes of the super class's type). You > can make methods private (by changing their export status) for example > and thusly change the public interface (and the type). Only within the rules of the language, which are implemented by the compiler. It was effectively 'system conformance' that brought the language to its knees. It was too complex a problem to solve. That and excessive rigidity. The idea though was correct. You need flexible shorthand, but within a set of rules. Eiffel tried to implement that in the compiler. Other static languages tried to duck the issue, pushing the flexibility out into XML files. The solution however is straightforward. You don't have a static compiler implementing the rules within the language. You use test and behaviour driven development and implement a ''domain specific compiler' that implements the rules for your system with a dynamic language. Some of those tests should be good computer science (don't break encapsulation, inherited classes should have contracts that conform to one another), and others should be the business rules (moving money between accounts should be atomic). One you have the idea of a 'domain specific compiler', then interface inheritance is no longer needed for correct behaviour. That becomes the job of the tests. Inheritance then becomes a nifty shorthand that helps implement the Don't Repeat Yourself principle amongst closely related classes. > Another side note: for everyone interested in concepts of object > orientation OOSC is a very valuable read. Bertrand Meyer covered all > the concepts involved and he is very good at analyzing and separating > out concepts. I always enjoy reading and rereading his book. Bertrand is an excellent writer, and an even better speaker. OOSC is well worth reading, and Eiffel is worth studying for its elegance and its wonderous flaws. NeilW