Inheritance considered harmful. Definition of "inheritance" which I am using. Defining one class of objects as an extension of another class of objects. Why it is harmful Inheritance is harmful because it focuses on subtype polymorphism in preference to parametric polymorphism. List of open issues from that workshop: point/colour point link list/doubly linked list .. Why it isn't necessary Inheritance is not necessary as it an implementation convenience. subtype polymorphism can be expressed without it Conclusion? TAKE TWO 1/ Inheritance is an implementation technique, not an abstraction technique 1a/ Inheritance is used to effect several different abstractions. These should be available in their own right. i) subtype polymorphism ii) code reuse iii) providing default behaviour Benefits of defaults; code brevity code resiliance to extending type, if defaults are provided 2/ Inheritance focuses on subtype polymorphism to the detrement on parametric polymorphism. i) Binary operators ii) linked lists iii) "selftype" Recomendations: provide pure subtype and parametric polymorphism provide explicit method of assigning default values/behaviours