HTTP Error Code 418 I'm a Teapot is about to be removed from Node
save418.com
save418.com
Sure we can remove every joke, every code comment that contains "FUCK", we can forbid commits that contain swear words, we can ask engineers to wear suits, we can remove animated GIFs from Slack and we can remove "418 I'm a teapot".
This kind of joke is what makes the job fun. You look at an implementation of an HTTP request and see "418 I'm a teapot", you smile for a second and keep working. That kind of fun contributes to happynness, increases psychological well-being and ends up contributing to long-term productivity.
In addition, removing the 418 code would break backwards compatibility. It will create way more problems than its availability does right now. This is the kind of thing you have to think about before-hand: add it and keep it, or don't add it. Now that we have a fun status code, we shouldn't add new ones. But removing the existing one is useless and damaging.
> While we have a number of spare 4xx HTTP status codes that are unregistered now, the semantics of HTTP are something that (hopefully) are going to last for a long time, so one day we may need this code point. [1]
First, you can remove it when there this problem actually happens. The backwards compatibility issue won't be any more/less of an issue then than now.
Second, "we may need this code point" is disingenuous unless the user is part of the W3C there is no "we" here. The node community can't decide unilaterally to change code points. (he might be part of W3C I didn't check. My sincere apologies if he is)
With that said, another part of the argument is valid. rfc2324 which defines the code is indeed not HTTP, it is HTCPCP (Hypertext Coffee Pot Control Protocol) and one could strongly argue that it doesn't belong in an HTTP library.
The HTCPCP argument isn't all that valid as there are several recognized (IANA) HTTP codes [1] from HTTP extensions like HTCPCP. Note for instance all the ones from rfc4918 which is the WebDAV extension to HTTP, such as 424 and 507. Not all codes are from HTTP RFCs and I also think the "bug" here is that IANA has ignored rfc2324 for too long and should recognize the RFC as a valid HTTP extension with useful [2] HTTP status codes.
[1] https://www.iana.org/assignments/http-status-codes/http-stat...
[2] Usefulness is a subjective measure, of course, but usefulness in jokes/play is still usefulness.
Why is it so hard for some technologists to have a basic level of respect for their colleagues? What motivates them to take actions that demonstrably harm their colleagues, whether it be asserting their biological inferiority or removing their trivial-but-meaningful whimsy?
When I was a closeted teenager, tech was a respite from the pointless cruelty of the rest of the world - or at least it felt that way. What happened?
All, thank you for the amusing and fun feedback. It pleases us all to no end that the most beloved feature of Node.js is a Teapot. I think it's safe for us to leave this as is for now.
I'm closing the issue and just to avoid keeping this issue from growing indefinitely for all of time, I'm going to lock it. Sleep in comfort tonight knowing that, at least for the foreseeable future, your Node.js web applications can proudly proclaim that they, too, are Teapots.But, a good reason to remove a joke is when people start taking it too seriously:
> In particular, Node's support for the HTCPCP 418 I'm a Teapot status code has been used as an argument in the HTTP Working Group to preclude use of 418 in HTTP for real-world purposes.
"Why not? I'm bored and it's a fun little thing" is a good reason to add it. Vocal support from the masses is a good reason to remove it.
I mean there are people behind it, with email addresses. Tell them 418 it is not actually USED, it just gets a different default message.
On the one hand you have a reasonable request, well-argued and politely-put by a respected engineer, who is long-standing contributor to the IETF and W3C. On the other hand you have a student who thinks 418 is fun.
Many voiced their refusals, they were also well-argued and politely put.
On another note, isn't it important to have students think HTTP is fun?
Engineering is not a democracy. The technical merits of an argument are more important than how popular it is with arbitrary commenters on GitHub.
> Many voiced their refusals, they were also well-argued and politely put.
I read the comments on the node and requests issues and didn't see anything well-argued. Nothing said there refutes the substance of the request. Saying "but it doesn't do any harm" and then speculating about how the IETF should do things instead is not a coherent argument.
> On another note, isn't it important to have students think HTTP is fun?
Genuinely, it isn't.
Consistency comes to mind as a pretty good reason.
The (frankly shallow) technical merit is that it gives us one less status code, in a problem space where if you really need that specific last status code so much that it's worth undoing a small piece of nearly 20 year old Internet culture to get it, the solution isn't to take that status code it's to switch the way you represent status codes entirely.
I would make some comparison to scrounging for IPv4 blocks instead of switching to IPv6, but the growth rate of computers on the Internet and HTTP status codes aren't really comparable.
Every time github issue goes viral it ends with hundreds of useless comments full of animated gifs. That is not an argument for anything.
Would you take away the interior, glass, electronics, some of the metalwork on your car, etc etc, just to have the most efficient vehicle possible?
Optimization is good, but you shouldn't push for it uber alles for generalized and multifaceted uses.
And I think this is a non-healty way of thinking and should be cured.
No, he didn't.
Life is short and then we die. Stop taking little bits of fun away because reasons.