that seems a very reasonable principle for *prototype* and
*experimental* implementations, and a lousy one for production
code, where the response to malformed messages should be much
more nuanced;
+1
Put another way -
the goal of a _specification_ is to coordinate the actions of
multiple, independent implementors, across different circumstances,
environments, depths of knowledge, etc. etc. etc.
The goal of an _implementation_ is to serve its users as best as it
can when that coordination is not quite perfect.
These are decidedly not the same thing.
the problem with do-gooder software is that
when it tries and fails, you may or may not know it, but it is a real
mess. and usually the do-gooder receiver is blamed.
when it succeeds, no one says thanks, and the incorrect sender goes on
to find some other implementation to break.
at a minimum, the do-gooder receiver needs to notify the operator that
things are broken.
randy, with a respectful nod to erik naggum