a companion discussion area for blog.codinghorror.com

Discussions: Flat or Threaded?


So what’s wrong with a nested comment structure? It seems like you get the best of both worlds, threaded discussion and all comments on one page with no pogoing up and down?


You still wouldn’t see the latest posts in a single block at the bottom (or top) of the screen. You’d have to scroll around to make sure you saw all the new posts, as they could be nested anywhere in a long thread.


Borderline (or outright) anarchic is how web sites best function. For an extreme example of this, visit some of the large anonymous imageboards such as Yotsuba or Futaba. Literally hundreds of posts a minute, no names or other identifiers, and yet they work well.


There’s still pogoing, but it’s all on one page now. Livejournal (until you exceed some threshold) is an example of this. If one comment generates two replies, and the first has a couple dozen children, grandchildren, etc, by the time you get back to that second reply you’ll be wishing it was all on separate pages - at least that way you could quicky flip back to reread the original context. It also makes following things over time extremely difficult, if you don’t have [new] tags or similar.

In general, conversations between several people, whether they’re a 3-way flamewar or a 40-way discussion, are going to be chaotic no matter what format you try to read it in. At least linear gives you a chronological sense of what’s current, an easy to follow flow of conversation. Threaded makes it easier to prune/split, admittedly.


Flat comments work well for small discussions. Once you go above 20 or so comments, it becomes completely unusable. Nobody cares enough to read through pages and pages of text just add to the discussion. You mostly get a bunch of disjoint statements from people that ignore everyone else. (Like this post.) If you want to keep participation low and discussion superficial, use flat comments. If you want to create a community of many individuals having long discussions with each other, then you have to use nested comments.


Flat is the way to go if people are reading and responding to the prior responses. In my experience, that is not the case. For example, I did not read most of the prior responses before posting this response. I am responding to the original article, not to the article with a bunch of comments added. Of course, I am on sample of many, so if most people do read every response before responding, then by all means, flat is the way to go. But given the quantity of responses to an article I see on Slashdot, I don’t think people read everything.


One quibble: deleted comments should be somehow available or otherwise note that something was deleted. Or else you can have sites like monstersandcritics or Indymedia, where some dishonest editors silently delete all comments they don’t like, no matter how benign or reasonable. If you don’t want to hide them behind some sort of threshold or trap, at least leave the position in place with a [deleted] mark so that people know that stuff is disappearing.

I don’t consider this a moderation policy, but way of giving commenters some trust in your system. I quit going to monstersandcritics after witnessing a mass deletion in just a few minutes of literally all comments representing one side of an issue in their news page, and looking at what s/he chose to leave. It left a bad taste in my mouth and I prefer not to contribute ad traffic to such a site. To anyone who didn’t actually see it happen, it might as well not have. This is an advantage Slashdot has over other sites.


When are we going to see comment counts in the feed or [WOW!] comment feeds?


Sorry, I don’t buy it. I usually read all the comments anyway, but it would be nice to know which parent comment any particular comment is refering to. It shows context; quite important when following a conversation.

Ctrl-F and Google would help initially in finding the content, they pretty much lose all usefulness after that. Searching != Organization.

Arbitrary deletion of off-topic posts is something that has a high potential for abuse. What if Joel had a bad day and decided that my post was off-topic and deleted it? Unlikely, but not impossible. His blog would be no better than an IRC channel at that point.


Oops, it should have read “finding the content, but they pretty much”. I actually learned to spell and write proper english in school. Really, I did.


Joel says: theading “doesn’t correspond to the way conversations take place in the real world” - so he’s never wanted to respond to somebody saying something interesting, or irrelevant, in the course of a normal conversation? He keeps on topic the whole time? How does he change the subject then?

In the real world you don’t mark new topics - you drift into them. This is what threading is mimicing, and that’s why people like it. Flat discussions frustrate becaue they are designed to pander to the ego of the topic. For example, I CANNOT have an effective conversation with anyone else on this thread without confusing everyone.


Yahoo screwed it up with their new threaded financial message boards. I know one stock message board for the stock Novastar (NFI) where the entire message box jumped wholesale to another site (InvestorVilliage.com) because of the change. Postings dropped by 5X and Yahoo scrambled to put flat format back on the board. It’s there again, but since 80% of the people are gone they must have lost a huge chunk of revenue.


I developed a threaded comment system that I’m pretty proud of. Here’s an example of it (the actual content isn’t important):

<a href=“http://blog.dlcharles.com/2006/04/02/open-forum.aspx#Comment"http://blog.dlcharles.com/2006/04/02/open-forum.aspx#Comment"http://blog.dlcharles.com/2006/04/02/open-forum.aspx#Comment"http://blog.dlcharles.com/2006/04/02/open-forum.aspx#Comment”>http://blog.dlcharles.com/2006/04/02/open-forum.aspx#Comment"http://blog.dlcharles.com/2006/04/02/open-forum.aspx#Comment"http://blog.dlcharles.com/2006/04/02/open-forum.aspx#Comment"http://blog.dlcharles.com/2006/04/02/open-forum.aspx#Comment

I think the reason why I like it over most threaded comment layouts I’ve come across is that the top-level of comments displays the full, elaborated discussion. There’s no breaking of the thread across pages and the child comment indication is very minimal and unobtrusive.

The “Reply to this” link is a little bigger than I would prefer, but I couldn’t think of a better way of doing it. I particularly like how clicking on it takes you down to the comment form and displays the comment you’re replying to above the comment box.


Well… I certainly can’t argue with the popularity of flat boards like phpBB. Other than to note that, even with their billions of burgers sold, McD’s still sells crap for food. phpBB and kin are fairly easy to install and configure, and i suspect this has a lot more to do with their popularity than any specific usability features.

As for calling these things “conversations”… Look, if twenty people were standing in a room discussing message boards, it’d quickly take one of two forms: one person talking, other people replying… or, the larger group splintering into smaller groups. Everybody yelling their thoughts all at once isn’t a conversation, it’s madness.

I mean, look at this blog - we’re not conversing with you, we’re leaving letters to the editor, comments on articles that may or may not ever receive a reply, and for which there’s no mechanism to even know if a reply was left. You stand on your soapbox in the town square, ranting and raving and throwing out pamphlets, and the passers-by pause to sit and nod or shake their heads.

Oh, and USENET - Joel’s comments seem to indicate his problems with the presence of a community, rather than the lack of one. Most communities IRL have their share of never-ending discussions, obscure traditions, and a certain amount of suspicion towards outsiders - i suspect that any really successful online community will exhibit similar traits. SPAM, on the other hand, is death to any discussion forum.

Finally, i’d like to point out a threaded web-based message board that actually works: the one used by the CodeProject site for its internal message boards on articles, forums, and the like. Rather than forcing a slow, jarring page refresh between messages, it uses a simple DHTML mechanism to display threaded messages.


Threaded ftw. It’s impossible to have a civilised back-and-forth conversation in a unthreaded environment unless you’re continuously quoting vast amounts of stuff to maintain context.

But only when done right: visit http://z.iwethey.org and have a nose around.


This Joel apparently hasn’t used IRC since '88.


Oh get outta here. You shouldn’t need to click through posts, just press N on Thunderbird. Threaded messages are good, web interfaces for forums aren’t. I wrote my own NNTP server and forum scraper just so I could follow a dozen forums from a single desktop program, and the biggest problem was dealing with stupid forums with no threading.


Threading works, but only if you have proper client support:
three-pane view
per-user state (read/unread)
kill subthread (ie mark this message and all children read)
move next unread (which should be instantaneous or nearly so).
minimal quoting.

What wrecked Usenet was (1) spam and (2) there isn’t a good web interface - they’re just not responsive enough.

The only solution I can see for (2) is an AJAX interface that downloads a huge lump of state to your client. The solution to (2) is much simpler, it’s what usenet calls retromoderation ie being able to delete messages if they are spam or nonsense.

If you want a good example of a threaded client that works, try ameol (www.ameol.com) but you’ll need to be patient as it’s a decade out of date.


I have seen a somewhat successful threaded comment system this website http://www.storm-artists.net/ (Anything that can be commented on has threaded comments, including the forums)

I am a member of the site above. I did some research on my own about six months ago on flat vs. threaded view of comments. Every single person (out of 20 some active members) said they wanted the threaded view over flat view. Granted, my sample size was tiny but I don’t see many people other than myself preferring the flat view.


I like the format that allows a single level of nested comment, still visible without drilling down to a new page. Good for quick remarks, without the usability issues of allowing infinite nesting.