This isn't likely to happen. The reason is that comments are rather limited in the database. Why? Well, there are nearly 40M of them active in the database for Stack Overflow. Compare this with 25M active posts (questions, answers and a few other things).
A decision was made early on that comments need to render fast. This is especially important when a you've got dozens of comments with the questions and answers on a single page. One trip to the database to get all of the comments and we're done.
We could store the text user name (as it is currently done) and we get @MichaelT there is an issue with this
. As noted, user names are not unique. The problem is that whenever someone named MichaelT changes his or her name you don't know which comments to update. It gets particularly hairy if two or more of the same name are in the same set of comments making trying to reverse the business logic impractical.
Notifications can work on partial names too. If I am the only Mich... to comment, then @Mich this works
works too. This makes reversing the business logic even more impractical.
We could try reprocessing the submitted text to change the pinged user to an ID.
This means that storing @{4228}
or something similar in the text requires multiple passes through the database. Once to fetch the text, (process the text), another to fetch the corresponding user names in the text.
If we were to go back and try to store the information about the pinged user (to try to reduce the business logic backtracking issue), we now have another table that would look something like:
id (pk)
commentid (fk)
userid (fk)
noting that this is a one to many relationship.... for 40M comments. And this still doesn't get around the problem of multiple identities in a comment thread. Someone change their name, but who was this referring to?
It really gets ugly and a lot of work for little gain. The book keeping on comments for names needs to not be expensive.
I'm going to bring you to one of my favorite texts about online communities: A Group Is Its Own Worst Enemy. I'm going to also point out that the author of this is a mentor/hero of Jeff's and last I checked had some relationship to the board of directors for Stack Exchange. The point I'm making here is that his works are influential on the thoughts of Stack Exchange.
Four Things to Design For
1.) If you were going to build a piece of social software to support large and long-lived groups, what would you design for? The first thing you would design for is handles the user can invest in.
Now, I say "handles," because I don't want to say "identity," because identity has suddenly become one of those ideas where, when you pull on the little thread you want, this big bag of stuff comes along with it. Identity is such a hot-button issue now, but for the lightweight stuff required for social software, its really just a handle that matters.
...
Users have to be able to identify themselves and there has to be a penalty for switching handles. The penalty for switching doesn't have to be total. But if I change my handle on the system, I have to lose some kind of reputation or some kind of context. This keeps the system functioning.
Part of the penalty for switching names is that loss of context in past comments.
Switching names is something that is recognized as being mildly disruptive. Trying to make it a smooth transition to change your name works against having a more cohesive community.