09:36 am, 4 Feb 07
comments as conversations
We use an internal install of Blogger at work. Blogger (like most blog software) doesn't do threaded comments. I have read arguments about why this is a good thing: I think Spolsky had a self-congratulatory post about this once, and also that threading is a total nerd-feature that nobody understands anyway (see also: Gmail "one thread per subject" threading which anyone who loves email hates), but I am a nerd and the lack of this feature drives me nuts. Whenever I get a comment on my work blog, I hit "reply" on the comment email notification, look up the user's profile to discover their email address, and then redirect the response to the person who left me the comment. But then this means anyone else who later comes along will read the comment and think "man, that Evan guy is a jerk and never responds to readers".
LJ, being a total geek-tool (I think danah said that and it's always stuck with me), has threaded comments. Often the comments (or discussions) on this "blog" are better than the actual posts. But every so often someone will come through and anonymously comment on a bunch of my posts, and I'm again thrust back into Blogger-land where I know that even if I reply to the comments the original sender will never see them. Sad, especially when the commenter is pointing out errors in the post!
LJ, being a total geek-tool (I think danah said that and it's always stuck with me), has threaded comments. Often the comments (or discussions) on this "blog" are better than the actual posts. But every so often someone will come through and anonymously comment on a bunch of my posts, and I'm again thrust back into Blogger-land where I know that even if I reply to the comments the original sender will never see them. Sad, especially when the commenter is pointing out errors in the post!
The great benefit of linear is that it feels like a single conversation. As a result, it's more likely to stay on topic and creates a better sense of community. I remember how linear discussions in tabetalk.salon.com, when Salon was fresh and it was a very high-quality discussion forum, felt so much better than the typical threated webforum with its ugly trees of single-line subjects, the messages hidden and requiring more clicks. I felt at the time that the linear structure was a deliberate and clever simplification of the too-geeky, low-hanging-fruit threading typical of webforums.
Then LJ happened, and of course its threaded model soon turned out to be invaluable for handling large conversations. The message-reply relationship and with it the ability to notify people of replies is the great benefit of the threaded model. Plus it turned out that really largew conversations, with 100+ comments, may thrive more easily if they split to active subthreads.
At least in a large active forum engine like the one Salon had, you could have the user notified of new messages in discussions they commented (even if so many of those notifications turned out to be uninteresting because the messages weren't replies to them directly). But when blogs started happening bigtime, and having all those little technically retarded linear comments sections on their own, each with its own identity space, that possibility came out the window. Yes, I'm so happy I have to remember, every time I comment on a blog X, that I might want to come back in a day or two to this particular entry and check if anyone replied to me. Thanks so much. And of course, if anyone replies in a few months I'll never see it.
One idea I had (I'll implement it on my WordPress blog if I find some time and energy - but if anyone knows of an implementation already, please let me know), is to allow a non-essential parent-reply relationship on a linear structure. If you look at blogs with very active and thriving comment culture, like Making Light or Unfogged, you'll see that they almost always converge on the idea of numbering comments, and conventionally marking replies to particular comments, for example starting with "#35" or "To #23:", etc. The software should allow to
do that easily and gracefully. There should be a "reply to this" link under each comment, like in LJ; the new comment would still appear underneath everything else linearly, but it would be displayed with the words "reply to #123" supplied by the software, properly linked to parent etc. Then, once we have the possibility of a parent-reply relationship, notification is possible (assuming the user registered with their email address and alliowed that option).
It sounds to me as though you're conflating multithreading with notification. In your examples, the defect is that the person you're replying to won't be notified that you replied. But that's because the kludged-together blog/feed infrastructure doesn't have a standard way to track comments on posts or notify the user of changes. LJ does, and it's traditionally been tied to threading, which was good in some ways (if you reply to someone's comment, they'll see it) and not good in others (you couldn't track all comments to a post). But you could imagine an LJ without the old notification mechanism but with the new "push-pin" one, and for most posts it would work as well.
The problem with single-threading is when the conversation diverges. What I would like to do (but have never prototyped) is have an easy mechanism in the UI to fork a new thread. Someone says "OK, this is a new topic" and presses a button, and the comment gets moved to a new thread/post/whatever, with a placeholder left behind linking to it.
(Another possibility is what Digg does — threading but only two levels deep. You can reply to a comment as a new thread, but that thread can't branch. The CS brain hates this: "it's arbitrary! Why not generalize to n levels?" but I kind of like the idea from a UI perspective.
Then again, some of the best comments on Slashdot end up five or ten levels deep, and I'm not sure the same kind of excellence would arise if Slashdot wasn't properly thread-treed.
Though I think it's lame that LJ doesn't have a "semi-anonymous" posting mode where you can just fill in an email address and a capcha like on other systems.
Semi-anonymous commenting
Isn't that effectively what they were trying to do with OpenID support? I know of a few people who are running their own (ie, as in personal, on their own systems) OpenID servers for pretty much exactly that purpose, and I've occassionally been tempted to do so myself.Ewen
With MT, I like that people have made really lightweight threading systems; I'd considering implementing one on my site if I could limit it to a depth of 1 or 2. I know threaded comments are central to LJ's culture, but back in the day (pre-6A LJ) I could never get into the really deeply-threaded conversations like on News posts. It's still something of a mental block.
What bothers me in either case is the issue of what I'd call "multiple inheritance." There are times when two separate comments are related, and I'd like to quote/link them, but still have some sort of threading. It really gets into the non-linearity of the web approach.
Part of the issue with this, I think, is the medium itself (web pages) is inherently one dimensional. Threading is one way to make a second dimension. But a third dimension/axis is required to extrapolate multiple datapoints in a discussion. How do you link that, while still retaining order/linearity? Would it ever be possible? Does this even make sense?
Second Axis...
Umm, at the risk of wasting bandwidth to make myself look not quite as stupid as I am (and certainly to portray myself as full of excess verbiage), I should point out that I realize I should have said "...third dimension/second axis..."blogland:
- records pieces of text
- comment applies to this piece of text
- piece of text notifies its owner
peopleland:
- comment to someone's *face*, through explicit or implicit means
- everything the person has said up till now is fair game
So, what if we had a comment system that was unthreaded, but where you just clicked on someone's icon to initiate the comment? Then it would be directed to that person, and we know who to notify by email. By default, it could be publicly visible in a simple chronological list, attached to the original post. Or perhaps it could be a private comment too, if you click some checkbox.
The difference: rather than pursuing points separately in threads that indent out to infinity, it's always brought back to a single "linear" presentation, even if the people are discussing different topics.
With blogs, people zip in and out of the discussion asynchronously. Maybe they want to respond to a claim that was made previously. Maybe they just want to "LOL" some previous utterance.
So you have the problem (benefit?) of latecomers not being able to leap back to some other point, without at least trying to merge it with what others are saying right now.
Any commenters in a forum naturally form a conversation similar to one that would exist were all the participants communicating vocally in the same room. In that case, the most natural progression would be see all communications linearly and without any threading mechanism. But in any conversations with any sufficiently large parties, the conversation always furcates.
Threadless forums are great because they conveniently display the conversation in a linear order, but preclude additional conversations from forming, making the "room" small and unscalable to any sizable number of people.
Threaded forums as most apps implement them are even worse because they don't accurately represent a conversation; their utility decreases as dialog length increases! After about 10 messages or so the indentation is so great it is no longer pleasant to read and the "shape" of the text is unintuitive ("Time grows down and to the right?!").
Really, it's just that no one has spent the time to make threads useful/good. Conversations grown down (or up, just pick one), period. If a dialog forks, then both must follow the convention and continue to grow down (or up). Indentation, if used at all, should not indicate reply (which is too strong of term since any statement may refer to any number of past statements) but rather a branching point. But now the software is in the possibly insurmountable position of determining when a message should be inlined in an existing dialog, or trigger a fork.
- comment 1
- comment 2
- comment 7
- comment 3
- comment 4
- comment 5
- comment 6
- comment 8
- comment 9
were to display more like:- comment 1
- comment 2
- comment 7
- comment 3
- comment 4
- comment 5
- comment 6
- comment 8
- comment 9
In words, or in the event that doesn't show up properly, only indent when there are multiple replies. (CSS3's :only-child selector would be handy here.)I've seen usenet groups populated by people who Really Ought To Know Better where it was impossible to tell one thread from another, because people never change the freaking subject line. I've been guilty of it myself, usually I post then go ohhh no... forgot to change the subject line.
Ideally you can do it even after posting, and the system will re-thread.
Threaded Comments in Blogger Using javascript
I have implemented a simple threaded comments feature in blogger using java script.It threads comment parsing the comment body for occurrences of '@authorName' of '@commentId'. Read more at: http://shamsmi.blogspot.com/2008/07/thre