3 ms·
> "precise in what you send, flexible in what you receive" is basically evil I think it's a matter of where you apply it. For a purely software construct such
by asveikau 4y ago
> "precise in what you send, flexible in what you receive" is basically evil
I think it's a matter of where you apply it.
For a purely software construct such as a network protocol, probably ok.
For something like negotiating current and voltage where making the wrong decision can melt a cable or fry a circuit board, as stated in TFA, obviously it doesn't fly.
- Taywee 4y agoEven a purely software construct, it's evil. If you flexibly receive, then popularly wrong data becomes the new standard.
- asveikau 4y agoI feel like you are making an assumption that your flexible implementation, or a single "wrong" implementation, becomes dominant. If there are many implementations with differing amounts of perceived flexibility or wrongness in different areas, the average is going to be OK. If misunderstanding a spec is so common that many implementers are universally confused and "wrong" in the same way, maybe it's the spec that was wrong, and the misinterpretation should have been the spec. Ps. Phrasing this as "evil" contrasting with good reads to me as paranoid and melodramatic.
- Taywee 4y agoI agree with "evil" being melodromatic of a term. I was just using it for consistency. Bad behavior being eventually codified into a standard because implementations were lax and it's impossible to go back on what everybody is now already doing is the story behind much of the modern web as it exists. HTML requiring closing tags for some elements, requiring a lack of closing tags for others, and leaving the closing tag still optional for yet others is a side effect of common browser behaviors. You're right that many implementations with different wrongness smooths out the average in many cases, except when all those implementations are expected to behave the same way on the same bad data. Then they all converge to the same bad behavior, which then becomes the new standard. Perhaps that's organic and natural, but I still wish we had a world where HTML was strictly compatible with XML, or with any other structured and predictable format.
- speed_spread 4y agoUnfortunately the flexible implementation has a better chance at becoming dominant as it will work in more cases hence user are more likely to adopt it. Users don't care about standards compliance in the short term (if ever), they just want a solution to their use case, which is understandable. Same reason Microsoft worked so hard to keep deviant apps running on newer versions of Windows, there's a quality to "it just keeps working no matter what I do".
- layer8 4y agoThe problem is that those implementations that do end up being dominant then factually constitute an ill-defined unwritten standard. There are just too many examples of this. So it’s good advice to not start being lenient, because you never know what ends up being dominant. As a sibling comment points out, being lenient in fact increases your chances of becoming dominant.
- HPsquared 4y agoEvil, but strong. The two often go together.
- ilyt 4y agoIt created countless bugs in software precisely because it is easy to accept more but hard to make that bulletproof. Everywhere where security is of concern (which is pretty much anything that can be called by user) it is bad And to be precise, it's "accept stuff that subtly wrong" that's the problem. "Accept previous version of standard in addition to current one" can be completely fine. And USB problem is really neither, it's just sheer overload of features and how most of them are optional so you never know what supports what
- sneak 4y agoFor a network protocol, it is generally better to deliver clear errors to the client when they are out of spec, and stop loudly.