Design By Contract

Yes, it’s specification and model checking. If the effort required for the potential users is prohibitive depens heavily on the domain and environmental conditions they are acting in. I think one should give every possible user as much optional technical possibilities to work with as possible. If users make use of the concepts offered is their choice.

I agree that static strong typing is very important. However from an integration point of view I wouldn’t consider “Design By Contract” less important. DbC helps to avoid “higher level” interaction issues in addition to typing issues. But as DbC would require many features to be most effective w.r.t. to effort static strong typing could probably be achieved faster.