Well, I&#x27;m not arguing that they are optimal <i>now</i>, or that code reuse is an issue <i>now</i>.  My point is that it really couldn&#x27;t have been any other way, for economic and evolutionary reasons.  In your posts, I see the implicit assumption that &quot;someone made a mistake a long time ago&quot;, and that a lack of knowledge by those people led to the current situation.<p>I should have been more precise about extensibility.  (I have had this argument a bunch of times...)  Another way to say it is that text formats are more amenable to partial implementation.  That&#x27;s the &quot;dual&quot;.<p>Suppose you have N people using a protocol, and there are O(N^2) communication paths.  And then three of those people have a need for some extension -- say they want to add some new caching mechanism to save bandwidth.  They can negotiate an extension to the protocol out of band.  If it introduces some value, then it might be adopted by everybody.  Or it might just die.<p>But at all points in time, somebody is extending.  And they don&#x27;t necessarily consult a spec to do so; they just read the raw messages and negotiate something based on their needs, which doesn&#x27;t break other people.  &quot;The Art of Unix Programming&quot; has more concrete examples of this process actually happening [1].<p>Depending on how you look at it, other users now have a partial implementation.  It can also start the other way -- there are plenty of partial implementations of HTTP that are useful -- implementing only GET, not implementing caching, etc.  Yes these are sloppy, but they are useful, and help the protocol gain adoption.<p>Don&#x27;t underestimate the number of people debugging HTTP with telnet or netcat in a shell script either.  You can either try to each everyone the &quot;right way&quot; to do things or accept that there is a lot more diversity in the computing world that most people think.<p>The precise things that make text formats a pain to deal with are the things that make them survive.  There is no instant at which a global truth for the protocol is born; it arises over time.  This wisdom is baked into the name: &quot;RFC&quot;.  It&#x27;s open-ended and ambiguous.<p>[1] <a href="http:&#x2F;&#x2F;www.catb.org&#x2F;esr&#x2F;writings&#x2F;taoup&#x2F;html&#x2F;ch05s01.html" rel="nofollow">http:&#x2F;&#x2F;www.catb.org&#x2F;esr&#x2F;writings&#x2F;taoup&#x2F;html&#x2F;ch05s01.html</a>