I want to avoid implementation inheritance in CP programs.
What are the language features I have to rule out ?
Is it just the super call which I have to avoid or something else ?
Give priority to composition over inheritance.
Inherit, if you must, only from ABSTRACT classes. No EXTENSIBLE types or methods.
Methods should be ABSTRACT, EMPTY or FINAL.
No supercalls, use ordinary exported procedures instead (this is always possible).
Avoid exported fields, use functions instead (better evolvability).
Stick to sequential data structures and algorithms whenever possible (scalability),
exploit carrier-rider to the full — hide data access behind abstract riders.
Your specific data processing algorithms should interface to abstract riders rather than carriers.
Give priority to text-as-interface over forms.
Avoid anything fancy or smart or optimized — that’s Devil tempting you.
Once again: f*** optimizations!
from the blackbox component pascal mailing list
und so weiter