Wandering Thoughts archives


Most computer standards broadly require good faith implementations

One of the quietly unsaid things about computer standards, both formal and relatively informal, is that they were generally not created to defend us against deliberately perverse implementors with malicious intent. Most useful computer standards aren't written so tightly and narrowly that they block out useless but conforming behavior (or perverse but conforming); they assume that people following the standards are actively attempting to deliver a useful result. The implementors may misunderstand things or be sloppy, but they aren't trying to be evil.

This is broadly not a problem in practice in any situation where people can choose their implementation (including choosing not to use any implementation), or where things actively have to work. When quality of implementation matters, deliberately perverse implementations generally score very low. When whether it works or not matters, perverse implementations generally don't work in any practical sense.

However, perverse implementors can still claim that they conform to the standard, and if they were sufficiently clever that claim is actually true by the letter of the standard, although never by its spirit. In certain social contexts, this can cause people great irritation from cognitive dissonance (on the one hand, they value standards conformance, but on the other hand, this 'conforming' implementation is terrible and wrong). Also, sometimes what really matters about a standard is the social claims of conformance around it, so the perverse implementor gets the benefit of the social claims without actually implementing things in a useful way.

The solution to all of this is to understand that from a certain perspective, standards are social agreements (I've said this before). A standard is a way to create a shared understanding of what "C" or "TCP" or "JavaScript" or Semantic Versioning is. Like other social things, social agreements are fuzzy and can be manipulated and exploited by bad actors. When faced with a genuine bad actor, the solution is not more rules, it is to ignore or exclude the bad actor.

(If you're using standards for legal reasons, this may not help you. But if you're dealing with hostile counterparties, you have bigger problems.)

Sidebar: Perverse conformance and requests for bids

Requests for bids by large organizations may sometimes require conformance to various computing standards in order to theoretically level the field between competitors (for example, to POSIX). When actual useful conformance to the standard matters (for example when the organization plans to actually use the purchased systems for Unix things), a perverse implementation (or a crippled but nominally conforming one) doesn't really matter, because it should never get past the organization's general quality checking processes.

tech/StandardsNeedGoodFaith written at 23:53:27; Add Comment

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.