[sclug] sclug Digest, Vol 72, Issue 5
Jon Mann
jon at spinis-associates.co.uk
Wed Sep 23 12:47:40 UTC 2009
Hello,
> Anyone who's seriously interested in communicating their ideas should make
> every effort to make them as easily understood as possible.
Yes, when communicating a message we should make a reasonable effort
to be as clear and meaningful as possible. Equally, when receiving a
message we should make a reasonable effort to interpret and understand
the message. If everyone applied these principles more often (regardless
of communication medium, context, historical prejudices, etc.) then the
world might be a (slightly) better place.
Bringing this back on-topic, similar principles can be applied when
building robust software. Here is a snippet of RFC760 for the
Transmission Control Protocol (TCP) written in 1980:
The implementation of a protocol must be robust. Each implementation
must expect to interoperate with others created by different
individuals. While the goal of this specification is to be explicit
about the protocol there is the possibility of differing
interpretations. In general, an implementation should be conservative
in its sending behavior, and liberal in its receiving behavior. That
is, it should be careful to send well-formed datagrams, but should
accept any datagram that it can interpret (e.g., not object to
technical errors where the meaning is still clear).
This has generalized into the Robustness Principle[1]:
Be conservative in what you do; be liberal in what you accept from
others.
In my experience this principle applies well to the smallest units of
software (e.g. methods or functions within a single program) up to the
largest units (e.g. systems communicating over a network).
Regards,
Jon.
[1] http://en.wikipedia.org/wiki/Robustness_Principle
More information about the Sclug
mailing list