I agree with you. 100%. This link should not go to a 404 error.
Replacing the link with a 404 is stupid. It is godawful stupid. It's, "I'm going to fire the person who did this," stupid. Intuitive behavior would be to respond with 301 redirect. But it doesn't do that. It responds with a 404.
All 400 level errors imply that the user made an error. But in this case, the user did not make an error. The user navigated to a URL that has been valid for years, and it is completely reasonable to expect that the link should continue to work.
Be careful to make the distinction: I said NOT say that the behavior of the link should remain unchanged. I said that the link should still WORK, and a 301 redirect to the blog will cause the desired effect while still allowing the link to work.
Stop telling users to go f*** themselves. Change it to a 301 redirect.
Apparently what is obvious to most people (+18/-5 at the time of my writing this) is not good enough, so here it goes with the long winded explanation:
Principle #1 - The User Comes First
I find it amazing that I have to say this, but I guess if everyone knew this, the software world would be a different place.
The attitude that I (and those I work with) have about programming revolves around the user. We're not writing code for ourselves. We're writing code for the user. The North Star of programming is that our code should be for the betterment of the world (or in this case, the internet).
It is here that we agree--we're trying to make the internet a better place. The point that you have consistently ignored is for who are we trying to make the internet a better place for. We're not doing it for ourselves. We're doing it for those who use the site.
You spent a lot of time typing that response, but what is amazing is how little you mentioned the user and how often you mentioned yourself. In fact, it takes little effort to find regions where you talk almost exclusively about yourself, only taking a break to talk negatively about the user:
Although I do not have any expectations for appreciation for my
efforts to give back to the community, I am not a moron and will not
freely volunteer my time to promote the community through an activity
that has absolutely nothing to do with my diamond status when this is
what I get for it.
At some point you got to say enough is enough. I've removed the url
from the blog post, so users who would deliberatily click on a link
that says "hey, this is deleted" won't have a bad experience.
In other words, "Me Me Me Me Me. If the user clicks on a dead link, its their fault."
That doesn't cut it. The user comes first. Always.
Your actions were not made with the user in mind. Quite the opposite in fact. Your actions were (and are) irresponsible.
Principle #2 - Error Messages Are Inherently Rude
Software developers are terrible at this. We just throw up an error and expect the user to deal with it. The problem with error messages is that they rarely do enough to remedy the problem.
Imagine if I walked into your office and said, "Your code has a bug in it." You'd likely ask, "Where did you find the bug? What did it do? Can you recreate it on my machine?" These are normal questions to ask. Now imagine that I simply repeated myself and said, "Your code has a bug in it." Imagine that no matter what, I constantly repeated that. You'd become incredibly annoyed with me and would consider me to be arrogant, because I am not telling you all of the information I know.
That is the problem with error messages. They rarely (if ever) do anything to remedy the problem they report. It is very common that error code will know an extensive amount about the problem, and many times, will have the ability to fix it (or at least get around it). But programmers can be lazy, and that is the result. They take the easy way at the expense of the user.
Its not always obvious what is meant when someone says, "The code could have fixed (or gotten around) the problem," so here's an example:
Lets say I'm writing Microsoft Word, I'm opening a word document, and I encounter an error. Here's an example of a error message:
ERROR: Could not open document.
This is a terrible error message. It tells the user absolutely nothing (except, perhaps, that the programmer needs to be fired). Here's a slightly better example:
ERROR: Could not open document. The file is locked for editing.
This is better, but is still terrible. Rather than saying, "I'm a sucky piece of software," this error message says, "I'm a sucky piece of software, and here's why." Continuing to improve:
ERROR: Could not open document. The file is locked for editing by user 'riwalk'.
We're slowly getting better. Now the error says, "I'm a sucky piece of software, but if you go bug the user 'riwalk', things might get better." Lets keep improving:
ERROR: Could not open document. The file is locked for editing by user 'riwalk'.
Would you like to open a readonly copy? (Y/N)
Now, for the first time, we've offered a solution. Someone else already has the file open, so obviously its a popular file. Maybe I just want to read it? Maybe opening a readonly solution and doing a "Save As" is an acceptable solution.
But now the question is, why should I even have to ask the user? Will the user ever say, "No"? Why don't I just open the file in readonly mode and tell the user what I did to fix things? Now, instead of an error message, we simply display an inline message between the document and the toolbar that says:
NOTICE: This document is currently locked for editing by user 'riwalk' and has been
opened in readonly mode.
This is a user friendly message. It acknowledges that while there are technical limitations that stop the user from completing the request, we can still get around it.
Now what does this have to do with P.SE? You're actions caused an error message that lies somewhere between the first and second one.
The 404 error page basically says, "Well I know what you were trying to do, but I'm a sucky piece of software, so I'm just going to show you an error message instead."
Are you making the web a better place?
Who knows? Everyone is trying. Not everyone succeeds. Let the masses judge our efforts.
The bigger question is:
Are you making the web a WORSE place?
This one has an answer:
YES!!!
If the goal of software developers is to help the user with meaningful error messages, then I can confidently say that you are making the web a worse place. You're creating 404 messages despite the fact that the intent of the user was obvious.
Don't say that no one notices. This thread exists because people noticed. You're making the web a worse place.
So, what should be done?
Nothing.
Well, almost nothing. Change it back to what it was.
You need to stop worrying so much about the past. So there are old questions out there that we wouldn't consider appropriate today. Fine. Just put a message on them and stop worrying about it.
Paradoxically, you're spending so much time worrying about making the web a better place, that you are confidently making it a worse place. When you're in a hole, stop digging.
So what can you do? Focus on what is being created now. Quickly recognize and close questions that don't meet our current standards. Rather than investing large amounts of time doing crap like this, why don't you invest your time in the Stack Overflow competition that is trying to prevent questions like the ones we're discussing now.
If you want to keep obsessing over these questions, fine. Do whatever the hell you want. Just do me a favor--stop making things worse.
trash.stackexchange.com
, but only for exceptionally wonderful trash. Also that specific question got most of its views and upvotes when it was on Stack Overflow, and that version of it is historically locked.