4 ms·
How to read an RFC (2018)
- Rediscover 4y agoI hoped to have seen Jon Postel's quote of "Be conservative in what you do, be liberal in what you accept from others" somewhere in the various /interpretation/ sections, but, alas, no - not to be found.
- chrismorgan 4y agohttps://datatracker.ietf.org/doc/html/draft-iab-protocol-maintenance https://datatracker.ietf.org/doc/html/draft-iab-protocol-mai... > The robustness principle, often phrased as "be conservative in what you send, and liberal in what you accept", has long guided the design and implementation of Internet protocols. The posture this statement advocates promotes interoperability in the short term, but can negatively affect the protocol ecosystem over time. For a protocol that is actively maintained, the robustness principle can, and should, be avoided. (As an IAB draft they’ve called it protocol-maintenance, but I liked the original name Thomson gave it: postel-was-wrong.)
- pwdisswordfish9 4y ago> These documents are alternatively treated as holy texts by developers who parse them for hidden meanings, then shunned as irrelevant because they can’t be understood. My biggest problem with reading RFCs is not because they are hard to understand, it’s because they are vague, underspecified or don’t accurately describe reality. The most infamous example of underspecification being, of course, JSON.
- andi999 4y agoI thought json is fully specified. Or just not in the rfc?
- gumby 4y agoWhat is a number?
- pwdisswordfish9 4y ago<https://seriot.ch/projects/parsing_json.html https://seriot.ch/projects/parsing_json.html> Much of the implementation divergence is the fault of underspecification (though not all; some of it is just shoddy coding in its own right). The original RFC described only the grammar of JSON, not equivalence of JSON texts or normalization. Later specifications try to paper over that fact by specifying certain interoperability conditions without outright requiring them for conformance.