1. 8

Jon Postel’s famous statement in RFC 1122 of “Be liberal in what you accept, and conservative in what you send” - is a principle that has long guided the design of Internet protocols and implementations of those protocols. The posture this statement advocates might promote interoperability in the short term, but that short-term advantage is outweighed by negative consequences that affect the long-term maintenance of a protocol and its ecosystem.

  1.  

  2. 4

    Postings for previous revisions: 1 2. And a related story. As long as I’m linking, my comment on one became a blog post, and I especially like the post @screwtape linked on standardizing errors.

    1. 2

      (off-topic) in your blog post the quote from “RFC 760, Jan 1980” seems to have some copy/paste noise in the middle of the last sentence.

      1. 1

        Thanks, I fixed it.

      2. 1

        Ah, thanks for the links. Damn changing URLs make it tricky to spot a duplicate with a simple search :(

        1. 1

          A repost is just fine, especially with it being a new version.

      3. 2

        An enormous number of security vulnerabilities have arisen because of Postel’s Law. Not saying it’s a bad law, but it certainly had unintended consequences.

        1. 2

          The main problem I have with this new RFC is that it is written as an absolute. Postel’s Law is a strategy for interoperability, but also a strategy for growth. When a system is new, you want people to use it. Being tolerant of variation fosters a climate where users feel that they are being met halfway. It also gives implementors a chance to learn from use. It is exactly the same as a startup accepting some business that may not be part of its plan, but doing that allows them to learn about their customers in the process. After the startup gains a market it can be more selective about its business. In the meantime, it is learning and growing a base. The same thing can happen with APIs. Accept a bit more variation and then become more restrictive over time.