a companion discussion area for blog.codinghorror.com

Web Discussions: Flat by Design


Yeah, but you blockquoted the relevant bits, so you brought the necessary context with you, didn’t you?

But what if a third reader want’s more context?

As an anecdote, the only reason I visit reddit is for the comments and the way they are viewed.


I really like the way Twitter brings the context. I think inherently, many conversations are threaded. The problem tends to be how that threading is represented in the UI.

Like Atwood, I like the flat structure. But I would love to see comments here (for example) have a small “in reply to:” link associated with it. So I could reply to a specific comment, have my reply still show up at the bottom of the list of comments (as it does today), but also carry with it a means to understand the context if you so choose.

I feel like that gives you the best of both worlds.


i’m with you on most of these things (about web discussions and usability), but i’m wondering: where does “Rigid hierarchy is generally not how the human mind works” come from?

because i usually tend to explain “how i think” (and more generally how i organize my mind, my world, myself, everything in me head) as hierarchical. i couldn’t think of doing it any other way (or only on some substantially “more confusing” basis, at least for me). i need this “tree”-form about every kind of information in my life.

i’d really like to dig a bit deeper into sources and stuff about this - i.e. “how we approach the world and everything”, and how we organize our thinking - and this sounded like you had some pointers/links about that, maybe …?


Keep in mind the #1 example of why flat can be a horrible mess: forums. IIRC, liberating us from the horror of forums was one of the motivating reasons for starting StackOverflow in the first place. $DEITY help you if there was an interesting response on page 50 of 100. With Reddit, stories with 2000 comments are still navigable because of the reordering.


To use your site as an example my reply is 20 or so posts below what your post I’m trying to reply to right now. I suppose I could read all 20 of them to see if someone has already said what I’m about to post, but it’s easier/quicker for me to type it. If it it had been threaded in some fashion I’m guessing I would’ve seen a similar post.

Yeah, but you blockquoted the relevant bits, so you brought the necessary context with you, didn’t you?

That brings up another point. User error - You quoted the wrong section of my comment for your response, so the context you provided a third party isn’t very good. (Or I don’t see how your reply and the quote are relevant to each other…so, sorry if this is an error on my part…)

The point I was trying to make in what you quoted was that someone maybe had replied to you already, but it wasn’t easy to see if they had. I couldn’t look at your comment see an indication of dedicated replies. If a third party came in they would have no idea about our discussion unless they read a majority of the comments, even though your comment is near the top of the list. Not all of the people below your comments were responding directly to your comments, but rather to your blog post.

You provide twitter as example, but that’s only one discussion being represented. It’s entirely possible that another discussion could show up in that one (much like in the blog comments) and suddenly you’re wading through two different discussions and trying to keep them straight. Granted it could still be relevant discussion, but it might not be too.

I do agree indented thread discussions can be a mess. If we had all decided to reply to one of your comments it’d look pretty horrible, and eventually it’d have to collapse into a flat structure, or keep getting squeezed. (as you’ve said)

This is what I’m thinking for now: Add a reply action to a post, along with a view replies link. The view replies link could act like twitter and either show a dedicated view of parent (related discussion that happened above the post you clicked) and child replies, and each of the comments there would still have view replies so you could hone in on more context…taking things a level deep/more specific for those times a secondary conversation breaks out. Or it could collapse, or take away focus from somehow, the other non-relevant (by reply) comments.


USENET is still the only format that gets discussions right.

(1) First and foremost, it’s a medium that uses a dedicated newsreader that is customizable by the user in ways that no web-browser or forum application can be. Newsreaders can employ rulesets to whack out spam, garbage, nonsense - even posts that contain off-topic phrases like “gun control” or “abortion.”

(2) As someone already pointed out, the best feature is that it shows the user only the new posts, if desired. Web forums (the few that offer this…) depend on cookies or other nonsense that are periodically expunged by users.

(3) You can killfile posters on USENET. Again, a tiny few web forums offer this, but … cookies.

(4) You can killfile threads on USENET.

(5) Most USENET groups are unmoderated. Nothing irks me more than some jackhead “moderator” deleting a post because I’m “trolling.” One man’s “thoughtful, impassioned, polite criticism” of [thing the moderator likes] is another man’s “trolling.”


Even twitter and soup.io are threaded, if you look at the metadata. A twitter reply references its parent, and you can find replies to the post (even when it mixes direct replies and later ones, but you can reconstruct the tree by looking at the parent-relation). Soup.io allows following threads by clicking “this is a reply to …” or “replys to this post”.

Your example is a bit flawed, because it displays a thread not as a real thread, but flat with nesting. As i said before, look at the heise-forum. You read one post at a time, and the thread-structure is displayed below, so you can decide which post you want to read next, either following the sub-thread or jumping to the next reply of the parent-post.


I like the Stack Overflow format and I’ve seen it in other places such as the Codecademy forum. It seems to work well, and it’s nice and simple.


I’ve seen a really good threaded format on the web: SBNation.

You have to be logged in for it to work, but it does the thing that all threaded formats have to do: read/unread status.

When I’m logged in to podiumcafe (their cycling site), I can just hit Z to advance to the next unread comment. It could do with thread/subthread kill (ie the ability to block off a tangent) but that wouldn’t be hard to add. And it can deal with large volumes of comments posted over very short periods of time.

Thousand+ post threads are not easy things to make manageable. SBNation is the first architecture I’ve seen that comes close.


I’m not in favor of saying in absolute terms that either flat or threaded is better, I think it really depends. Instead, I wish we’d focus on a problem that overarches both approaches: scale.

Discussions on the web don’t scale, not flat and not threaded. Above a few dozen comments it is virtually impossible to absorb what is being said, who is talking to who and who is talking to you.

I appreciate both flat and nested systems, but my all-time favorite implementation is used on this dutch tech site:


They’re using nesting, but with quite a sophisticated moderation system that somehow keeps discussions manageable.


I like the Stack Overflow format.



How have a bunch of programmers not pointed out the obvious yet?

Trees are efficient when you are interested in a subset of the data, inefficient when you want to traverse the entire tree

This applies to online discussion in just the same way as it does to search algorithms, filing systems and anywhere else the two can be used.


"Most discussions on the web these days, it seems to me, are basically “write only”. There’s seldom any sign that many of the participants have any interest whatsoever in reading what other people have said - or indeed the article that they’re commenting on, quite often.

In such an environment, threading is a waste of time. Just put a flat comment board there and let people spew out their stream of consciousness, which nobody will ever read."

It sounds like you don’t like online discussions, why should your opinions on their design be taken seriously?


Leeho L said something interesting. People have been having discussions with other people very successfully for millenia. So how do we avoid having the computer organize the data like a tree? How about letting people organize the data by letting people create flat sub-discussions, which are also regular discussions. There would be two types I can think of - pure subject oriented discussions and invited participant discussions. Both would leave a link in the original discussion. Everyone would be invited to comment in the subject oriented discussions, but only invited participants would be able to comment in the other. Everyone could read both. This method would naturally segment discussions, allowing natural side conversations to be side conversations without cluttering the original discussion. This also operates more like a party, where people wander off in groups.



how about opening and closing tree structure for replies and also keeping replies with different colors and collapsed by default. I have disqus on my blog at http://www.javaexperience.com but it is not that efficient to display replies and uses the first option mentioned by you which has got lot of disadvantages


I’m pretty amazed that on a blog post so heavily criticising scrolling to the right, nobody has mentioned Windows 8!

Thought I would correct that.


The deep threading always bothers me most when trying to read AMAs on Reddit. There are always replies by the person in question that get hidden because they’re a response to a comment that is below the voting threshhold or whatever, and trying to read all the responses with all the questions attached is a maddening exercise in expanding and collapsing hundreds of thread trees.

I get that some level of threading is generally necessary to prevent things from becoming an unintelligible mess of people replying to previous posts without any indication of which is which, but I think 2 level deep should be the absolute max. It seems to work pretty well for sites like The AV Club and others that use Disqus to handle their comments.


@John Mckay - On Windows 8, horizontal scrolling is the established paradigm for navigating large amounts of content, so it’s intuitive for apps to use that method as well since it’s everywhere in the OS. Plus, the mousewheel is mapped to left-right scrolling so it’s not any harder to do than vertical scrolling.

The real issue is when you have something that scrolls both ways, because there’s no good way to navigate that and people don’t expect to scroll partway vertically and then switch to horizontal, or vice versa.


@Phaselden, @Terence, @Assaflavie: If you like visualization and information design, you might enjoy checking out a visualization of threaded discussions that I was experimenting with a while back. Colours correspond to authors; click on any comment to navigate to it.


I spend a lot of time reading discussions on Reddit, and I think it’s absolutely essential.

When there’s a lot going on (like this comment section) it’s really hard to separate out the different discussions that are going on simultaneously. With Reddit you can just minimize that thread.

I think that you do need a lot more screen space, and different websites call for different formats, it just depends on what you’re trying to do with a comment section.