Threaded comments—like here, on HN, and on Reddit—easily spiral out of control. It's especially hard to come back later and see what's new.
Many people seem to have missed this, but Discourse solves the problem in a particularly elegant way. Each topic is about, well, a single topic. The conversation flows as a series of replies, ordered chronologically.
If, however, you'd like to change the topic, there's a "Reply as New Topic" button to the right of every post. This allows you to create a new thread, with a new topic. Metadata about this forked topic is saved, so that future readers can easily bounce between related threads, while still having every message in sequence about the same "topic."
In my experience, this approach maintains the simplicity of flat discussion with the ability to fork topics of nested threads, without the complexity.
The reason multiple views don't work is that a board is a collective document. Everyone will learn to look at the most common view because they want to know what the average user is seeing.
I took me a while to figure this out but since the design and presentation of a board, a board should have none, zero, alternate views. Instead, a board needs good defaults.
notice that one of the flag reasons is "off-topic", to give the poster (if threshold reached) a gentle nudge that hey, maybe they can click "Reply as new Topic" and take it there.
Or mods can click "select posts", click click click the posts they want, then click "move to new topic".
And topics created either way are bidirectionally linked, so you can follow different related tangents back and forth without breaking your flow in the main topic.
So either the community or mods can hopefully assist in keeping things on topic.
Linear forums can't achieve depth of discussion. Discourse only supports one layer of replies with its slight improvement on an archaic quoting mechanism.
Flat forums have to worry more about staying on topic because all the conversations happening in a thread are thrown together. There's no "flow". Posts responding to each other and posts responding to the OP are all jarbled up.
On reddit you don't worry about conversational tangents. You just fold them.
Notice how I didn't have to quote you for others to follow our discussion? That's because our conversation is nested :) If this were a flat forum, my original post would be at the top of the page, your reply would be in the middle, and this comment would be at the bottom. Multiple other conversations would be in between. And we would have to quote each other to have any chance of following the conversation.
Flat forums are strictly worse than nested forums for in-depth discussion.
Flat forums are strictly worse than nested forums for in-depth discussion.
Being someone who has, in the past, been active on several different `traditional' forums, I'd agree with that. You end up with a complete mess of people quoting posts that can sometimes be several pages back, or -- worse -- replying to posts several pages back without quoting, which just causes confusion.
I think that depends on the audience of a forum. I'm a pretty regular poster at the SomethingAwful forums, which still utilizes a flat, quoted forum style.
Say what you want about SA, but the average poster is pretty good. We routinely carry on huge megathread discussions about a single topic with no difficulty. Just pop into any of the subforums and check it out. The Recipes subforum, for example, may have a huge megathread dedicated to Cookies. Another about Stews. Another about Chicken.
Within those, there will be all sorts of discussions, quoting, etc...but it never becomes unmanageable. You just learn to skim posts that don't interest you, read those that catch your eye, quote those that you want to respond to.
The SA forum automatically limits quoting depth, so you only see the last quote or two.
Frankly, I prefer a flat forum over threaded any day. Threaded forums are where discussions die. Once you leave the real-time, "in the moment" posting of a threaded discussion...it's impossible to spark the conversation again. Threads get too deep, there is no sense of what is new vs. old. New readers have an impossible time getting "into" the conversation, often piling into the top of a thread instead of the more active inner-parts.
With a flat forum, you just skip to the end and see what's going on, maybe browse back a few pages to catch up.
But they have the "smaller safe" problem. This is where people don't want to read through the whole thread, so they skip to the end and post and write, "I bet there's a smaller safe inside!" So readers have to skim past dozens of those to get to the content. With threaded comments, it's more ephemeral, but the cream floats to the top, and the smaller safes sink to the bottom.
At least for me I hate nested threads. And even worse is when upvoted stuff gets pushed up to the top. On HN I wait to read the comments until there is about 50 of them. Then I never visit the comments on the article again. Maybe there is a way to just read the new comments without digging through the stuff I have already read and I haven't found it. And this is also why I never respond if I make a comment here. It is simply a pain in the ass to find what I wrote again.
But I have no problems on metafilter that is a single (flat) page with sometimes thousands of comments.
`Reply as New Topic' is a pretty elegant solution, but has a huge failure point: the user. It might work with a technically minded audience, but with Joe Bloggs, it's almost certainly not going to be used. The result will most likely be one massive thread that lurches on and off topic post-by-post, with the responsibility for forking it into new threads -- and replies to the OT `new thread' -- pushed onto the moderators/admins.
For hacker news it's good, because those are more "asocial" conversations - I don't know who I am replying to, I don't personally know any of you folks and I don't really remember to who I replied.
However, a lot of forums (phpbb and the like) are more "social" - you get to know the people, you want to read what they have to write even if it's not a reply to you.
You just want to follow the whole conversation. Usually it's doable, because the forums are rather small in audience, people know each other and so on.
Yes, it wouldn't work for reddit or digg or slashdot because there are tons of people there and you just can't read everything. But for a smaller forum? Yes, I want PhpBB style conversation rather than nested one.
I've built a few different discussiony things. When I was building one for the Long Now a decade ago, I was going to put in threading. Because features are good. Stewart Brand, who started The WELL, talked me out of it. His point that stuck with me is that a major effect of threaded discussions is to improve the ability to bicker endlessly.
My default now is to leave them out. There are some contexts where lots of argument is valuable, but generally it's just a strain on the social fabric without a lot of upside.
>"His point that stuck with me is that a major effect of threaded discussions is to improve the ability to bicker endlessly."
This is called "having a conversation". In flat discussions you can't bicker endlessly because a large portion of the posts are just replying to the OP. There isn't as much back-and-forth or progression of the discussion. Discussions tend to get only a few levels deep.
The only time anybody has changed my mind has been on nested forums, like this one. It is because we had to go back and forth three or four times to arrive at a new understanding. Nesting let us track that discussion.
Maybe it's a personality flaw, but I have had far fewer enlightening experiences on flat forums!
It is sometimes conversation, and that's great. It is much more often argument. And it is frequently pointless argument between two people who don't want to learn anything but instead are playing "king of the hill" with words.
For people who really want a conversation, I think a forum should support some way to privately contact one another. And a good ability to start new discussions. But for general-audience, broad-appeal forums, I think threads usually create more problems then they solve.
The problem is that the way flat forums limit "bickering" is by making it harder to follow sub-threads. However this doesn't mean there aren't sub-threads—there almost always are when more than 2-3 people are involved—it just means that the result is much more confusing; at some point people give up responding because they get lost or lose track.
So you've replaced a perhaps over-verbose but relatively easy-to-follow set of discussions with a smaller, but much more confusing and hard-to-follow set of discussions. You might have succeeded in limiting "bickering," but I think to a much greater degree, you've reduced the quality of the discussion (to a bewildering mush in the worst cases).
So I think it's no accident that, based on my experience, flat forums usually seem to be, well .... pretty shallow (and I mean that in a bad way :)... they're fine for saying "hi!" and talking about the weather, but surely we'd sometimes like more than that?
Turns out people are actually very, very good at following a conversation. They hold the state in their heads. Try going to a bar and sitting at a table with eight or nine people at it. If you could write a transcript you'd see the conversation spiralling, branching, merging and branching again. And nobody gets lost.
All a forum has to do is record who said something and in what order. Threading is a ridiculous "solution" to a problem only programmers believe exists. Nested threading makes it impossible to see what's new since you were last in a thread, encourages anti-social digressions and most fundamentally it works against the deep human ability to understand, manage and participate in complex conversations.
Say a newcomer joins the conversation (at the bar) halfway through. He is missing a lot of context. His kind friends would then fill him in, unlike the internet.
A threading like structure however, allows you to quickly scan the parent, and if need be the parent's parent. It's within the user's perogative to choose how much information he needs to be caught up.
That being said, I'm very open minded about seeing the new approach develop. Heavily nested threads are a far from perfect solution.
But that's hardware accelerated. There's a lot of brain given over to doing just that. When you stop that working by presenting the conversation in an incompatible codec (threaded), you switch over to the equivalent of software decoding.
And that is as bad an idea for conversation as it is for h.264.
Back in the early 2000's I much preferred a flat forum. As I remember VBulletin had flat/ nested or a hybrid of both. When I was designing my own forum software I went with flat.
I think it really depends on the topics and the audience though. For something like Hacker News, flat would be a nightmare as it is such a large loosely connected community and each submission usually generates comments that are only loosely connected.
A smaller online community, maybe a few thousand where all the regular contributors know each other can have flat work fine depending on the topics discussed.
What is the answer? Probably the ability to configure. One thing I can say I do hate is nesting to one level, this confuses people more as the first reply will be nested then subsequent replies to the first nested level will be awkwardly placed at that first level also. (Guess I am mainly thinking of Disqus here)
Nesting (and reordering by votes or activity) works well for divergent discussions: expressing views, exploring the possibility space, brainstorming. Or: exhibition.
Flat (and stably ordered by time) offers some hope for a convergence of viewpoints, or at least shared-narrative and common-knowledge. Or: deliberation.
Which are presumably both useful to have within the same community. Maybe forum software should allow individual threads to be made flat or nested, at the discretion of the person creating the thread?
I could see that working, with the right community and moderators, especially if the choice were presented not in terms of simply flat-vs-nested, but "what is the goal of this discussion?" Those for informing and airing possibilities might have certain titling, features, and moderation (including nesting)... while those for hammering out some common experience/decision would have other titling, features, and moderation (including flatness).
(Remembering, as always, that it's not exclusively a goal for software design to solve, but also and probably primarily up to the participating people and their behavior... who can and do bend any offerings from the designers/coders to their own ends.)
You can't just declare evidence against your claim "exceptional". Reddit has a large userbase, and includes numerous communities. Nested discussion seems to work pretty well for it.
The point is this: reddit has a certain demographic that you don't find on most websites: mostly tech geeks that embrace modern web technology and a very high proportion of programmers. On the other hand look at slashdot, horrible discussions, just a random pile of opinions with many flame wars.
That said, discussions in News forums (news paper, news agencies etc) are often very stupid or unpolite. But I have seen that they are at least slightly more polite in flat forums. There is less repetition and if someone complains about unpoliteness, this is taken more seriously by the followups. Of course flat forums are way more work for the commentator because he needs to read all the posts that were before and make conclusions based on them. This can be next to impossible on an article's comment section with high load.
I think reddit's moderation system has more to do with the relative success of its discussions than its audience. Are you implying Slashdot didn't have a high proportion of programmers?
Not to mention the page is so wide that it's completely unreadable. By the time I get done digesting the views or or activity, I've already completely forgotten the headline.
But conversations are nested anyway. In real life you rarely have discussions with more than ten people at once. Even when you do, it's frustrating as you have to switch between topics instead of following the "threads" of the conversation. (And inevitably someone doesn't shut up and derails the conversation in a particular way.)
So what do current systems do?
* Go for broke, go full threading (eg. HN, Reddit, Usenet).
* Ignore it (eg. phpBB). Just like real life, everything gets muddied, but you have far more people in the conversation that would be practical in reality.
* Track it but try to hide it (eg. Twitter). Discussions have tree structures, but you can only have a flat view of them. You have to manually sift through replies to find the branching points and then trace it from there.
For example, these are two discussion trees branching from the same conversation starter:
Ours is essentially the twitter model, with a few tweaks. I think a hybrid approach -- flat for reading, but limited expansions on demand for context -- is best.
A linear forum compared to a nested forum is like cutting off part of your brain. You have to expend brain power sorting out multiple conversations occurring in the same sequence. The quoting mechanism is an attempt to unbreak the linear forum, but it's a kludge. Linear forums are a cacophony of conversations intermixed.
Deep conversations die early on linear forums because they are too hard to follow. You will find more posts responding to the OP and fewer posts responding to each other. Linear forums are built for announcements or Q&A, not conversations.
The downside is that it's nearly impossible to go back to a thread and continue where you left off. With a linear thread, you can go back to the last post you read and continue from there -- with a fully threaded forum, I basically get one pass at the comments and then can never view that page again without huge effort to reconstruct my position.
nearly impossible to go back to a thread and continue where you left off
We have the technology, we can do both!
The page is drowning in useless javascript gimmickry anyway, it should be possible to add some actually useful javascript to seamlessly switch between linear, conversation and tree view. You know, to aid the user in his interaction with the content rather than fancy stylesheets and sliding widgets.
The more I look at discourse the more it infuriates me.
The complete disregard of time tested interfaces (Usenet and the authors own StackOverflow) just doesn't jive at all with their wild claims to "reinvent online discourse". Unless their idea of reinvention translates to repeating every mistake made in the past 30 years...
What they did is unleash a terrible forum software that will undoubtedly be forced down the throat of a great many users for no reason other than it being "the next hip SV thing".
> The downside is that it's nearly impossible to go back to a thread and continue where you left off
False.
In the early days, browser designers took care to use different link colors for visited/unvisited links (gasp!). Nowdays, in the age of fancy JS gimmicks and contrast-less design, we are overriding this functionality because it apparently looks better (if you don't see the extra information).
Forums with diffent link colors for visited/unvisited posts and threading work pretty well. It's not to hard to implement something like this with JS (unless one wants all posts to be open/visible as default).
You can only show new comments, highlight them, even view them in flat mode. Threaded forum naturally separates subtopics while flat forum is just a big mess. Also old subthreads naturally die so the new stuff is usually in the new nodes. And you can also just view subtrees to follow certain discussion.
In my experience, I've found that a linear forum works great when its strictly moderated. No off-topic posts, sometimes not even something tangentially related. The community also plays a huge role in maintaining the quality.
I find it a very different experience and have no trouble following discussions in linear threads. I find linear gets you more substantial discussions with multiple contributors all aware of one another.
I don't care for nesting much either. While it may be more like real life one-on-one conversations, I find it more difficult to follow an entire thread and very hard to scan through. I can enjoy a segment, but that's one of the problems I see: it segments a conversation greatly. I think things stay more on topic with a flat discussion, and I discover things I would have missed in a threaded one.
I'd love to see some innovation in the forums space, it's been a while. I still don't see it, but I'm hopeful.
How are you supposed to follow a conversation more than two posts deep? This is PHPBB with more javascript.