Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This whole discussion reminds me of discussions about language evolution. Some people are prescriptivists and believe that learned language experts should determine what is and isn't correct usage. Others are descriptivists, arguing that languages are a living reflection of how they're used and that incorrect usage can become correct if and when it becomes widespread.

Similarly, we have standards boards, who are often very divorced from the realities of actually building real-world software and we also have the engineers building real-world software. Which version of HTTP is correct, the one codified by the W3C or the version codified by the engineers building Chrome, Firefox, IE, Apache and Nginx?

As a learning exercise, I implemented an HTTP server a few years ago and remember finding it fascinating that none of the popular user agents implemented the Keep-Alive header per the specification. And yet they all implemented it in a common, non-compliant manner. It made me realize that as much as I was using the spec as my guide, my implementation wouldn't be correct if I followed what it said for that header.



>Which version of HTTP is correct, the one codified by the W3C or the version codified by the engineers building Chrome, Firefox, IE, Apache and Nginx?

There is a reason why protocols are not languages. A protocol is a well-defined standard that engineers are supposed to follow. There really is no space for "descriptivists" in technology and especially in standardized protocols. What is that, the protocol is useless? Well, maybe we should come up with a new standardized one instead of bastardizing the already-existing one and creating a lot of confusion and ambiguity (which machines have a hard time to deal with).


Specs have ambiguities and bugs that may be resolved by standardizing implementations' behavior.


There is a major difference between the two: computers are dumb.

As a human, I can usually communicate with someone who uses a dialect or makes language errors. Computers are much worse at doing that, they basically need to know about every standard and non-standard behavior to correctly handle it. As such there is a very good reason for standards and thus standard bodies to exist.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: