top | item 17163754

(no title)

MichaelGG | 7 years ago

Applies to software too. Standards need to be strongly defined with no leeway. Parsing should be tight and leave no room for creativity. (Text protocols like HTTP I'm looking at you!) Anything that deviates should be rejected by reference implementations instead of trying to be "robust" by accepting junk.

discuss

order

rsync|7 years ago

"Standards need to be strongly defined with no leeway."

Actually, I think there should be leeway - but only in one direction.

Specifically, I am thinking of the suggestion: "be conservative in what you send and liberal in what you receive".

sigotirandolas|7 years ago

I think that this is what the parent was arguing about: Being liberal about what you receive often leads to every different implementation handing the undefined cases in their own particular way, which leads to incompatibilities or one of the implementation becoming the de-facto standard.

Too|7 years ago

Liberal in what you receive should only apply for human user interfaces.

If you apply the rule on machine to machine interfaces it eventually leads to all applications having to be bug-for-bug compatible with the most popular implementation. (Internet explorer 6 usually being the prime example of this)