Comment by oblio

4 years ago

It's software. Software's contract is the same as a legal contract. And a legal contract mostly says what you can't do.

So anything not directly blocked by the software is allowed.

Ergo, clear specifications, strict yet flexible types and APIs, etc.

Otherwise, it's just bad design.