Since HN is explicitly designed to deter casual visitors [1], it might not be the best example to cite for poor comment design. Threaded's not great, but completely flat comments scale really poorly -- I can't imagine scanning a page with ~100 unthreaded comments, but I do that all the time at HN. A lot of the points seem like they could be improved a lot with a little javascript (ie, nuking unproductive threads), but, as the quotation below indicates, those changes probably aren't going to be made here.
[1]: http://www.paulgraham.com/hackernews.html (4 paragraphs from the end, "But a site aiming at a particular subset of users has to attract just those—and just as importantly, repel everyone else. I've made a conscious effort to do this on HN. The graphic design is as plain as possible, and the site rules discourage dramatic link titles. The goal is that the only thing to interest someone arriving at HN for the first time should be the ideas expressed there."
> Poems about trees are indeed lovely, as Joyce Kilmer promised us, but data of any kind represented as a tree … isn't.
If you don't see tree data structures as "lovely", then I have to wonder if you even understand them. Putting data into trees can make difficult problems easier to solve in an elegant way: searches, file systems, space partitioning, and so on.
> Rigid hierarchy is generally not how the human mind works...
That's why we keep creating ontologies to explain the world? Ask any 10-year-old, and they'll tell you that tigers are cats, which are mammals, which are animals, etc.
> Rigid hierarchy is generally not how the human mind works...
Jeff's sneaking a lot into the qualifier "rigid" here. The human mind loves hierarchies of many sorts, but most when the hierarchy is based on the context. For example: house cats could be mammals (near tigers) or pets (near fish).
A concept or object that is relevant to different contexts needs to show up in differently-organized hierarchies, or failing that, probably ought to be organized non-hierarchically (e.g. flat or "tagged"), so as to reduce cognitive dissonance.
Over-simplifying considerably, comments on Reddit/HN tend to be interesting mainly in just one context, so a hierarchy is probably helpful.
Well, a b-tree might make a good backend for indexes or storage engines in a (large) number of databases, but mostly that data isn't looked at in the same way as it's stored. So Jeff has half a point.
However I agree with you that for hierarchal data such as, for example, family trees, biological classifications, and, dare I say it, threads of conversation, a hierarchal representation does seem to make sense.
By the way, if you have trouble finding which comments are new, I highly recommend the HNCommentTracker[0] extension for Chrome. It will tell you which discussions have new comments on the front page, and will highlight new comments on the discussion pages. I couldn't imagine using Hacker News without it! (By the way, I did not create it. I can't give you support for it!)
Jeff seems to have had a rather different experience with threaded commenting systems than I have.
there's always this looming existential crisis of where the heck am I?
Threaded comments aren't some expansive, complex network I have to navigate like a city. I don't find my way to some place, then find my way back. Most of my time in comment systems is spend reading linearly, where the only thing that matters is what I'm reading now. "Where am I?" only matters if you care to answer it relative to the wider context, which I find unnecessary.
You're talking to everyone
Of course! You're commenting on a public web site! Threaded comments aren't for any semblance of privacy, they're an organizational mechanism. That organization is a key enabler for in-depth discussions- discussing a complex subject in any depth becomes tricky in a flat environment- it's hard to keep up with what topics are even being discussed, and who's quoting whom, for any serious discussion in a flat comment system- much harder than keeping track of stuff in a threaded comment system.
However, threaded comment systems do have their faults, as Jeff points out: keeping abreast of all discussion as it evolves is difficult, and lack of a nesting level cap can make things look awkward (however, I don't see a whole lot of discussions progress to the point that the "far right" problem actually becomes a problem).
Jeff's idea of capping comments at a single reply level is a sensible compromise; it allows a rudimentary sense of organization without introducing most of the problems Jeff criticizes.
Am I the only one who thinks twitter is terrible for conversations? "@somebody @somebody shortened url ..." That does not stand alone. And every flat comment system now includes people using @previous-poster to compensate for a lack of threading, but without the proper context.
I don't know where this hate of threaded forums comes from, but these arguments are obviously based on something emotional rather than rational. If you don't know where the heck you are in a threaded forum, where sub-threads often have changed subjects and you can quickly navigate up and down in that subthread(!), how would you know where you are in a flat discussion where people just quote some bits and just pretend they are in a subthread (they are discussing a sub-topic, the context for the post you're reading is spread over 2-3 other posts somewhere on the past ~10 pages on typical boards)?
New replies can easily be found through a special display of new (unread or recent) posts, in our forum we just display the subject in bold or green (if it is a reply to your post), it works fine.
One of the best implementation of threaded discussions is slashdot, where you can find the interesting stuff quickly even when there are more than 1000 posts. Please show me a comparable flat forum.
It's terrible that the crappy flat forums (you know, that widespread PHP-written stuff that is regularly exploited) broke threaded discussions for so many people, because they decided to go "guestbook style" (that's what it is - a guestbook, not a discussion, despite the lame attempts of some people to quote each other so they could pretend to stick to a topic) and never look back. I can only conclude that flat forums are preferred by people who don't really like discussions, they like Q&A (like SO) or guestbooks, or perhaps a maximum of ~10 replies on any subject. That works fine as a flat list. For the rest of us, threaded forums have worked fine since the BBS and Usenet times.
I'd just like to note that vBulletin, used on on many of the largest web forums on the internet, historically, and presently, has for some time supported a dual flat and threaded view. Most sites will default to the flat, but there is a setting to set it per user to threaded. That's why every post has their own reply link/button - to maintain the threading.
Whew, I bet that causes some problems for threaded readers: I know when I used to be more active on forums I rarely used the proper reply buttons to compose my posts.
Quite a bit, in fact, from time to time but overall really not so much as you would think if they had a sane quick-reply feature since ultimately people are lazy, if the easiest place to reply is the right one things work a lot better. Pedantically, I'm referring to where clicking reply opens a reply box under that post and maybe with quote so you KNOW you are replying to that, or you use the box at the bottom which joins the main "flat" thread of responses of everyone yelling at each other in a single-threaded dance to the "right".
If conversations aren't nested, how are you supposed to know what the replies are referencing? There's no effective way to talk to each other and have a real discussion.
All of the 'problems' of nested comments are trivial in comparison to that. There are certainly good use cases for flat comments, and I think Stack Overflow is a good example, but there is a reason why all of the biggest discussion sites use nested comments. There might be more sites with flat comments overall, but that's only because they're much easier to implement.
Massive quote trees (or, if you're considerate, a truncated quote tree) are pretty much the norm for old school forums. Sites like 4chan use links. Say what you want, but humans haven't really had a problem projecting threaded discussion onto flat forums since forever.
How do you have a real discussion in real life when the discussion is effectively flat? You let a 'branch' peter out, then re-raise a previous point for response.
But it also gets frustrating. Conversations can go in many very interesting directions, but you can't, and you often end up railroaded down one path with the others mostly forgotten as you come across more branching points in the discussion. It feels like a Choose Your Own Adventure book where you only get to read it once.
With HN, Reddit, Usenet, or whatever, you can keep that line of discussion going at whatever speed you want.
There are problems with the threaded model, but they're not the same problems that Jeff is saying that there are. The real problems are:
1. When ranking threaded comments, often times a low-ranked comment attached to a high-ranked comment will be read before a more highly ranked top-posted comment.
2. Two diverging branches of the tree can result in the same discussion occurring at two different points in the thread.
3. It's very easy for niche discussions to become the focal point of the conversation, which, while good for discussion, detracts from the subject matter.
I don't think any threaded discussion system has solved all of these - Slashdot has its threshold filters, reddit compresses large threads with a similar threshold, HN is more simple but I find the text dimming effect to be valuable. Facebook doesn't really need to be concerned with these things as much, because the discussions are usually more personal and shorter. Stack Exchange is obviously an outlier here, but I feel that if its mods weren't so jackbooted it would have devolved into a similar discussion system long ago.
I think the biggest problem with our current discussion systems is that they are inefficient. Sometimes experts will avoid a conversation because they can't quickly and easily reply on all points. Multiple conversations can happen on the same topic (or in the case of the news sites mentioned, across different posts entirely). People get karma for being snarky but that's different than the karma given for being wise, being analytical, or doing the legwork (finding references, etc) so that others don't have to.
If you then consider the extreme - a contextual tag-based karma system with threads combined based on their subject matter, you quickly realize that no one will do anything with that because it's too complex.
What we need is curated discussion - not the Steve Jobs kind, but rather the kind you get when you go to a dinner party and the host introduces you to someone that you really wish you had met years ago. Unfortunately, that kind of discussion can only happen currently in more intimate settings, or, in the case of a site like reddit, if we have limited AIs that can actually determine the context and sentiment of a discussion, and alter the structure of the thread tree based on that.
Unfortunately, you're never going to get something like that in an ad-driven Internet.
One piece of evidence that flat discussions don't work well at all: on
general news sites which have numbered flat comments, I often see comments that
start with 'reply to number 4...'. Users are actively trying to make up for the
lack of threads. Of course, such discussions quickly become unreadable.
The article points out some valid criticisms of threaded discussions (like excessive indentation), while ignoring the giant mess that flat discussions tend to become. The funny thing is that it's a false dichotomy. Even the article mentions the
possibility of having just one level of reply, and yet in the last sentence it
just reverts to 'Always favor simple, flat discussions instead.'
I remember what it used to be like on random forums across the internet, and it wasn't pretty. The fact that discussions on reddit can still be easy enough to follow in spite of the tens of millions of visitors, and thousands of comments speaks more for how good the system actually is. Living before threaded comments like HN and reddit was like living in the stone age. Every system has it's flaws of course, as mentioned in the article.
You know the model I wish web discussion would follow? Interleaved email replies. Text only, interleaved email replies is the ideal format for multi-person discussion and it's been around forever. Too bad everyone is trying to figure out a way to fix email, instead of learning how to use it properly and taking those lessons into almost every other ,odel for discussion.
I very often will find a post on HN where the conversation forked in numerous unrelated directions: one thread taking about the politics, one talking about the economics, one talking about the font used on the website, and another angry that the post got enough upvotes to be on the front page in the first place.
I consider it of immense value that I can skip most of the content I am not interested, and concentrate on the parts in which I am. Further, I will contend that it would be impossible to even have that many interesting discussions were every participant forced to struggle through all the other parts in a massive flat discussion.
Of course, you can then argue "let's have multiple flat discussions", at which point you start to see something more like a typical web forum: with categories, forums/topics (I will maintain "topic" going forward; to be clear, by "categories" I mean the section headings on the list of topics you often see), specific threads, and then linear posts within the thread.
But, if you think about how that maps to a site like HN, you find that the part with the flat posts isn't analogous to the comments on an article: the are more akin to individual thread trees, each one diverting off to talk about the politics, economics, etc. of the overall topic (the link). Now, the article does seem to realize this, as it explicitly is mentioned that capping the thread depth has value, but doesn't seem to understand that that's the world that most of the systems that he's operating in already have.
Take StackOverflow as an example: he says there is one level, but there are actually a bunch, from the site as a whole, to the individual interest areas, to the level of individual subjects (which are modelled as a DAG due to being structured with tags, but are of course used in the field as the next level in the tree, as that's how humans can conceptualize it) to questions to answers to individual comments on answers (where it stops).
That's a lot of levels of depth, and it lets the site help you weed out all of the stuff you care about from the stuff you don't. That depth was important: if you came to the site and you saw all of the questions at the same time, you'd be frustrated; if you came to the site and saw all of the comments, it would be worthless.
Now, go back to HN and attempt to remap that kind of depth: we have links, but there really are lots of sub areas that people like to talk about with regards to those links; as I mentioned: politics, morality, design, alternatives... and each of these is really a fairly high-level goal that tends to get rapidly paired down to "what you actually wanted to discuss".
It doesn't feel like these levels are occurring if you concentrate on the schema, but if you examine how the site is used they are clearly there; the exact boundaries, though, tend to get blurred depending on how many people are participating, what kind of article it is, etc.: there isn't a hard/fast set of rules like on StackOverflow, but the site serves a wider set of purposes.
Of course, when you get down in the trenches, things can get confusing. That's the only place this article has any meat: however, to turn this into a David v. Goliath "Discussions: Flat or Threaded?" kind of topic, claiming "Web Discussions: Flat by Design" misses the essential complexity of this field, throwing out all of the fascinating parts of discussion communities and bordering on linkbait :(.
Further, it then ignores the ways in which Hacker News attempts to do this (the reply delay limit that kicks in the deeper you get down in a discussion tree), and doesn't offer any enlightening solutions. That said, this is the same author (Jeff Atwood) who wrote a massive tirade about discussion systems in 2009 called "The Value of Downvoting, or, How Hacker News Gets It Wrong" without realizing that HN actually supported downvotes, so I'm not certain what I should expect here.
(Oh, and the idea that Twitter somehow makes it easy to follow conversations because it attempts to group replies back/forth is kind of ludicrous if you've attempted to dig back through a conversation on the site that involved more than four people after the fact: the mechanism often doesn't work, and it fails to deal with how Twitter is actually insanely NON-linear to the point where there is often a cacophony of discussion going in every direction at once by people who may or may not even be following other people who are involved in the same discussion... how that model--the least linear model in existence today--somehow proves that any linearity at all is valuable is confusing to me ;P.)
Speaking of categories: I was browsing many pages deep in HN a few hours ago and I noticed a ton of "Ask HN:" topics buried on pages 6-10. That kind of implies those should be different category area on the site, rather than being mixed in with the regular "here's a link, discuss the content on that link", perhaps? To me, there seems to be a very broad divide between "here is a link to an article, discuss", and "here is something I am thinking, discuss". One is of the community, the other is fundamentally outside it.
> without realizing that HN actually supported downvotes
I have almost 500 HN "rep" and I still can't find any way to downvote. Is this documented anywhere? At Stack Exchange downvotes require 125 rep to cast, and cost you 1 point of rep for each answer downvote. (Question downvotes are free, but still require 125 rep to cast..) This is all listed in the FAQ.
> one thread taking about the politics, one talking about the economics, one talking about the font used on the website, and another angry that the post got enough upvotes to be on the front page in the first place
I should have mentioned this in the article (and I might revise it to add this, actually) but each one of those blocks the other. In other words, if the politics branch of the tree is first, that's 50+ replies I have to wade through to get to the next branch (say, economics). There's not even any way to collapse branches here as there is on Reddit...
Have we also talked about first topic reply advantage? How many people will bother to read past that first massive 50 reply tirade about politics to get to anything else?
Have we also talked about first topic reply advantage? How many people will bother to read past that first massive 50 reply tirade about politics to get to anything else?
How do you handle that anyway? If you make it a flat discussion, if someone brings up a new topic (in other words, a branch) then how do you respond to it if there were lots of responses between the time you wanted to reply and the time the original post was made?
If you have a long distance between the original post and the post you are responding to, then that means that the audience loses context and don't know what you are talking about - thus instead of asking "how many people will bother to read past that first massive 50 reply tirade?" you now have to ask "how many people will bother to read past the first insightful comment?"
Basically, how do you keep the thread of discussion without using indenting, or expanding/contracting the discussions? I can well understand that StackExchange needs to keep discussions punchy by design, because it's about keeping information succinct in order to properly answer questions, but on a site like HN that is designed for discussion I think that flat discussions would be an absolute disaster!
Slashdot actually allows for flat discussions, try using it sometime and I think you'll see that it's a nightmare.
> the audience loses context and don't know what you are talking about
In most forums, you just jump quote the post you want to talk about. Doesn't matter if you're on page 144 and the original post was on page 36. Click "Quote" and phpBB/vBulletin automatically adds a link to the other post.
And it's an unholy mess to wade through a 144-page forum topic. A lot of people just quote the whole post to add a one-liner. It's a nightmare. Any long thread is probably 90% quotes and 10% new content. Just the other day I was trying to find some information in an XDA Developers forum. I gave up after a dozen pages or so. Too much garbage thrown in between useful content.
On HN and Reddit, on the other hand, people quote one another much less frequently. For example, I only quote other comments if I want to say something specific about a particular passage. Here, we get along just fine without excessive quoting, because the context is already there. HNers understand the cost of context switching.
I wouldn't want to read a HN thread where 90% of the content was made up of quotes a.k.a. context-switching crutches.
Reddit does it by limiting both the tree depth with a "continue this discussion" link (often seen in pun-offs) and the vertical tree length / number of replies with a "load more comments" link.
This ensures that the top thread is never really more than 1.5 screenlengths. Works very well IMO.
(For completeness sake, there's one other comment hiding feature, "Comment score below threshold", but that serves a different purpose--a bit like HN's [dead] comments except you can collapse/expand them and reply to them).
> [...] I noticed a ton of "Ask HN:" topics buried on pages 6-10. That kind of implies those should be different category area on the site, rather than being mixed in with the regular "here's a link, discuss the content on that link", perhaps?
There is -- in the top bar, there's a link called "ask" [1] that shows only the "here is something I am thinking, discuss" sort of submissions.
> Speaking of categories: I was browsing many pages deep in HN a few hours ago and I noticed a ton of "Ask HN:" topics buried on pages 6-10.
I actually almost mentioned this myself as a form of "level", but decided that it wasn't explicit enough in the navigation; I guess it would then have been valuable to just point out "maybe it should be a level". ;P
The analogy to this specific gap in a traditional forum is the category change between "on-topic" and "chat"/"meta"/"general discussion" (with then having the topics come below those section headings, followed by the threads, etc.).
> I have almost 500 HN "rep" and I still can't find any way to downvote.
(Someone else already responded to this comment, but for completion-sake and because I'm the person who called it out in the first place: you need 500 points before you can downvote, so you aren't quite there yet ;P. Downvotes on this site are pretty powerful, actually, so they thereby seem to be reserved for people who have deeply invested in the website, of which there are enough people versus the total amount of content posted that this isn't a problem.)
> There's not even any way to collapse branches here as there is on Reddit...
I agree that this is useful; it is a highly requested feature and I believe it offers a lot of value: it is, of course, an important feature of the explicit tree... within a single collapsed linear level, all content blocks all other content, and you are just screwed if you want to skip anything, as there isn't even a visual differentiator.
(That said, some of us use user scripts to get past this problem; I wrote my own, but there are a few on the GreaseMonkey archive site whose name I'm forgetting, as well as in the Chrome extension store. If the content didn't have the trees at all, you wouldn't be able to do this no matter how hard you tried. That said, again: most online community discussion systems, even the ones that claim to be flat, have trees at least 4-5 deep.)
Well the downvoting was a question I had at one point (but now is answered). I have actually just noticed the FAQ and Guidelines links so that might answer many of the questions I've wondered about.
I am glad that they don't have collapsible branches here.
It might be that here the discussion is generally on track and in general is educational and/or polite.
On a site like Reddit though I do like the threaded as they (from the little I go there) seem to devolve into long threads with not much substance.
When I didn't find any extensions for Chrome that made comments' depth more visible (but did see many for collapsible) I learned how to write my own extension (not polished but functional) and am in the process of making another.
> I have almost 500 HN "rep" and I still can't find any way to downvote. Is this documented anywhere? At Stack Exchange downvotes require 125 rep to cast, and cost you 1 point of rep for each answer downvote. (Question downvotes are free, but still require 125 rep to cast..) This is all listed in the FAQ.
The min. requirement to downvote, I'm told, moves upward ever so slightly. I think I managed it just past 500, but that was several months ago (I lurk and/or comment on obscure communications articles). You're sitting at 496 as I write this so you're still a little while off.
I like the way reddit makes discussions more manageable, I often get frustrated with multiple page discussions in Hacker News that aren't relevant to the original topic, and it would be great if replies at a certain depth were collapsed automatically, just to reduce the number of pages I have to go past to find the next thread in the discussion.
I also wish there was some way to encourage concision in comments. The 824 words (according to my word processor) in the most popular comment is ridiculous to me, I'm not reading that unless it's about something very interesting to me. The article itself is only 1541 words (and I didn't read the whole of that either).
> ...it would be great if replies at a certain depth were collapsed automatically...
I agree: I love that feature. However, Reddit then has the problem that you often find a really stupid comment rebutted by the most exciting and interesting comment on the entire thread; in such a situation, the stupid comment gets downvoted and manages to auto-collapse away the juicy gold hiding below. Slashdot handled this better: they auto-collapse threads, but if an auto-collapsed thread contains a highly-ranked comment, it "bubbles out"... as in, you can still see it, even though its parent has been collapsed... I'm not certain how to best describe it, but it is amazingly useful.
> I also wish there was some way to encourage concision in comments. ... The article itself is only 1541 words (and I didn't read the whole of that either).
This community seems to encourage well-thought-out replies; I could technically have posted a "blog response", but I find it more interesting to end up in conversations in the comments of the articles where I think of things to write. (I may actually soon start a more real blog, but I've always seen that as an awkward way to do back/forths.) Personally, I find the longer comments to be the ones that are more valuable, and would rather short comments be discouraged ;P.
(Another solution to this, btw, is to just have comments get collapsed to something that then has a "Read More" that inline-expands to the full comment; this is how Facebook solves this, as otherwise it would become a problem that your Timeline or Newsfeed was dominated by a couple very long posts instead of being an overview of the material available. As someone who actually does read and value long comments, however, I have mixed feelings about this. I mean, if you didn't read the whole of the article, it becomes difficult to really comment on it effectively: it doesn't take that long.)
It definitely should be here, otherwise you have the "50 reply tangent on politics that I can't avoid reading to get to anything else" problem.
It still leaves the "I have to do a bunch of work beyond simply scrolling down to read this discussion" problem. I don't like solutions that put excessive burden on the largest audience of anonymous readers. Write once, read many, and all that.
> It still leaves the "I have to do a bunch of work beyond simply scrolling down to read this discussion" problem. I don't like solutions that put excessive burden on the largest audience of anonymous readers. Write once, read many, and all that.
I don't see how collapsing them all to a linear discussion would help this: you simply get one massive topic overtaking the entire conversation, making it impossible to even have the second discussion at all... if the content doesn't get posted because it is off-topic in the linear model, no amount of scrolling will find it.
Again, though, this is why almost no sites are actually a linear model; the closest you seem to get to a linear community currently is in the medium of real-time chat, where you still have servers divided into channels, but the channels are relatively fixed and difficult to browse.
The result is that you have communities existing within a single server/channel; as an example, there is a community which I started on an IRC server (not iPhone hacking, btw: a bunch of random friends and acquaintances that has grown and shrunk at various points over time, mostly concentrated with people form the small college that I attended) that has existed for years with a single linear thread.
Real-time chat, though, is a drastically different kind of medium: handling multiple real-time conversations is simply hard in a way that having multiple asynchronous conversations is not. I maintain, then, that this is why almost no discussion community has ever had a truly linear model: content tends to fall into 4-5 levels of hierarchy, with at least two of them being under direct user control.
Once you expand the scope of where you look for the tree in this way, you then note that StackOverflow is actually more threaded than classic discussion forums: of the five levels it has (sites, tags--which I will again explicitly point out is just another hierarchy level where the entries in lower levels might be seen in multiple places--, questions, answers, comments), four of them are under immediate user control, and the fifth is decided by a largely democratic process.
In practice, Hacker News threads sometimes get really deep (and I again agree that they can get confusing down there), but the very top-level is sufficiently shallow that you need some of that depth below to have any interesting conversations: if there were only one linear conversation per posted link, things would rapidly get really boring when only one of the politics/economics/etc. angles was able to be covered at a time (by which point the others would have missed their window).
Hacker News, does, though, actually have a form of thread limiting; I didn't go into it in detail in my earlier post, but I'll go ahead and do so now: as you get deeper into a thread, the "reply" button takes longer and longer to appear. This mechanism is actually defeat-able (which is funny, and some might argue a bug: you click "link", and on the comment's own page you can always reply immediately), but it still does help slow the rate at which a thread can get very deep.
> this is why almost no sites are actually a linear model
Pretty much every forum on the web is a flat discussion. There are a lot of forums out there. It is quite rare to find a forum that has any kind of threading at all. If you can point me to any web discussion communities that are 10+ years old which use threading, I'd love to see them.
Now, you could argue that lots of topics on a forum is a "kind" of threading, and I guess if I squint really hard I could see it, but that's a far cry from here or Reddit, where it's indentation city all the time.
> it still does help slow the rate at which a thread can get very deep.
I think that's too clever by half, but more than that, nowhere near as effective as an explicit cap on reply depth. Hacker News would be a better discussion system for everyone if the reply depth was capped at, say, 3.
(And of course if it had the ability to collapse branches, which is sorely needed. Nothing is more frustrating to me than being forced to read through 50+ replies about some dumb tangent I don't care about, to possibly get to something I do care about.)
And now that I've written the above, I realize that there might still be some awesomely insightful reply in that 50+ branch on politics -- but I'd never, ever see it because it is forever married to its place in the tree and the iron-clad parent child reply hierarchy... and cannot be sorted independently on its own merits and votes. That's sad.
> If you can point me to any web discussion communities that are 10+ years old which use threading, I'd love to see them.
There are virtually no such communities because 10+ years ago people were still having serious conversations on mailing lists and USENET. Those were threaded and had specialized clients allowing to easily find new posts, replies to own posts, filter content, etc.
The great improvement web brought wasn't flatness but post-moderation, editing and later karma/voting/sorting. You simply couldn't moderate articles after they were posted on USENET. And editing ("superseding"?) mostly caused confusion over what your readers are seeing depending on the server and software they're using.
(I largely agree with you, but will still point out that Slashdot is 10+, 15 in fact, and was/is an explicitly arbitrarily-deep threaded discussion system.)
> Now, you could argue that lots of topics on a forum is a "kind" of threading...
Yes, not only could I, but I have in all of my posts here so far, very explicitly. ;P A "classic web forum" has four levels: categories, forums, threads, and posts. It is critical to look at a web forum as having all of these levels if you want to compare it to a site like HN, as otherwise it is impossible to discuss how end users are able to navigate the site.
As an example, let's say that we were going to talk about your article on a normal web forum. First of all, that forum may already be divided into "on-topic" and "meta" forum categories, and there may then be multiple forums that are interested in your talk: the conversations don't conflict.
However, even within the same forum on the site (which will often then have the same general participant pool), your article will spawn multiple unrelated threads, each of which will consist of linear posts. Each of these threads will be discussing different areas of the topic, and you can ignore the threads you aren't interested in.
Hacker News can't do that: your article can only create a single top-level link, and all conversation has to exist underneath that. You get the same levels near the top (although managed in a distributed collaborative fashion by the users, as opposed to directed by the site operators), but additionally as you drill down it might get very deep.
... and, once again, I will agree with you that HN has a problem managing the discussion near the leaves of the tree. (FWIW, I actually was not allowed to reply to your post, but decided "screw that" and did it anyway: it could be nice to see something linear once you get this deep instead of just turning off "reply" altogether.)
> If you can point me to any web discussion communities that are 10+ years old which use threading, I'd love to see them.
In addition to classic web forums, which I maintain are the typical 4-5 level hierarchical tree, you will find websites like Slashdot, which is definitely a 10+ year old web discussion community, and is insanely threaded with tons of awesome mechanisms to handle that complexity (such as the feature of "bubbling up" good comments I mentioned elsewhere in this thread).
> but I'd never, ever see it because it is forever married to its place in the tree and the iron-clad parent child reply hierarchy
The solution reddit has for this--both in the commonly-used Reddit Enhancement Suite and as a feature you can buy as part of reddit Gold--is to mark new sections of the tree in an obvious way (such as with a blue box). I believe DISQUS does this as well now, and I have a similar feature in the HN script I sometimes run. In a system like USENET, you would have the option of resorting the messages in your client by date.
However, I maintain that a purely linear discussion model doesn't solve these problems: it just makes the content not exist in the first place. If you were to build even just a two-level system--links and posts; to contrast with a class web forum's four levels--which on HN would look like each article discussion being a linear chat, you could only have one of these conversations, as the interleaving would be crazy.
If you are going to be really specific, no: I can't even come up with another website that uses a discussion system like reddit's or HN's, as they both have subtle differences in all the things that apparently count, from how they hide/collapse subposts to how they handle moderation.
I mean, if all you are looking for is "infinitely-deep hierarchical discussion based around people posting links", then there are tons of clear-cut examples; the #1 difference between more "modern" sites (reddit, HN) and Slashdot is that the latter was slightly less "Web 2.0" in that you didn't vote on the articles: the articles were hand selected from the submission queue.
It is only cookie-cutter systems that are simple to install, like phpBB, Futaba, or OSQA (which as you are well aware, is not really much like StackOverflow except at first glance ;P), that you see replicated exactly all over the Internet. Otherwise, everything has their little quirks (if they didn't, they probably wouldn't exist in the first place ;P).
Slashdot is threaded, Reddit is threaded, HN is threaded. You're right that J. Random PHPBB forum isn't (and that taken together there are more of J. Random PHPBB forums around).
I wonder if it's simply the lack of any super-simple forum software in a popular language that supports threading - slashcode was famously unreadable perl, HN is a dead lisp dialect, I don't know what reddit uses.
Also LessWrong uses modified Reddit code to have threaded discussions under articles, and again, as saurik keeps saying, I can bet that 90% of discussion content wouldn't be there if comments were linear. Web discussion is non-linear by nature.
I really like Reddit (with Reddit Enhancement Suite for UI Improvements + Reddit Gold for extra reddit features) for discussions.
It is really easy to follow conversations, and like you mentioned, chatter can vary a lot. I don't miss the old days of forums and other linear bulletin board software/mailing lists where it is impossible to follow relevant conversation...
The Twitter example was terrible, mainly because it does have a tree structure to the discussions, 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:
I think the better solution is to just hide the "discussion" part from the content by default. If you are in a comment section, you are looking for one of two things - information on the topic (usually restricted to the top 2 levels of a comment thread) or discussion (the deep trees Jeff complains about).
Making that discussion flat doesn't make people want to read it, get involved in it, or understand the exchange. Comments / forum threads are trying to serve two distinct purposes.
My solution would be to have the comment tree hidden by default.(tangentially, I wonder if a system where comments move to the right relative to their time posted, not just in order, since that is why we are moving comments rightward anyway - that way a comment thread would map the post times out rightward. Since replies could only come to already posted content, the flow still moves right, but the active discussions still show themselves off) If people want to see the discussion on top level comments, it should be a very obvious and very apparent mechanism to reveal a discussion tree, but otherwise, let people browse the top level first (with a ranking system, not just by time) and find discussions they are interested in. That is my biggest problem with all the reddit-esque sites where discussions take up tons of my vertical space by default even if I don't actively seek to engage in them.
There's Polish site wykop.pl, it's a digg (now reddit) analogue. They use capped level system (article -> comment -> reply) with special formatting for > quotes and @nicks so people can refer to each other in the comments, and the discussion doesn't differ much in structure from the one on reddit, from what I noticed. It's rather large site, often there's around 300 comments on one article, but it is easy to read (easier than reddit, at least for me).
I've mentioned this on here before, but the live-updating approach taken by SBNation sites (I'd guess The Verge, too, but I don't have an account there to know for sure) solves a lot of the issues, including the big ones of "where's the new content?" and "I just want to scroll down" (cause now you're using keyboard shortcuts to navigate to the new stuff).
Since I haven't seen the live-updating-with-keyboard-control threaded model on other sites, and haven't seen anyone else on HN comment on their model, I'm curious if there just isn't much overlap between HN and SBNation—though since the launch of The Verge, I would've expected more HNers to have seen it.
The complaints about stuff getting pinned to the far right are specious; a flat discussion thread is equally prone to getting hijacked over by two people having a fight. And when it happens on a flat discussion thread, it's not sequestered off to the side by itself, it's constantly being reinserted into the main flow where other people are talking too.
Overall I think its amazing that an unstructured discussion involving dozens or even hundreds of people can be possible at all. It's not possible in person.
Whatever the format (threaded, non threaded, threaded with limitations) it's going to run into some limitations. They're all imperfect and I think that which one is right depends on the number of participants and velocity of comments. This threaded format seems to work well for 10-50 participants.
Stackoverflow is different in that every "topic" has a predefined structure an hierarchy of importance: a question, answers & comments. In a way, it's not tackling the same problem as HN, reddit, forums, disquss, etc.. These are trying to allow discussion regardless of the topic & structure. They are also different in that they place high importance on being accessible to casual future readers.
Unstructured "discussions" hundreds or thousands of participants is largely a problem that twitter tackled. That's why celebrities and high profile people like it.
"How do you know if there are new replies? Where do you find them?"
This is solvable in a very obvious way. Just visually highlight the new comments since your last visit. E.g. like this: http://i.imgur.com/MXjNZ.png (new comments are yellow).
"precious few threaded discussion models survive on the web."
Citation needed. Seriously, you can't just casually throw out a phrase like that and not expect to back it up. HN seems to be going fine. Reddit seems to be going fine. Facebook has threads now I've noticed and it hasn't exploded in a ball of threading-related fire. I can't think of a website that has died because it uses threads, nor can I think of a website that is overly popular because it doesn't use threads.
Anyway. let's talk about his arguments a little:
1) It's a tree. His argument seems to be it's unnatural and confusing to read. This is sometimes true. What's even more confusing though, is when people wish to reply to one particular post, but since it's flat it all gets smushed together into some kind of massive confusing shouting match.
2) Where did that reply go?
- "How do you know if there are new replies?" Yep, that sucks, no question there.
- "reply at the wrong level" I'd argue that occasionally getting your reply wrong is better than constantly replying into a shouting match and never being heard.
- "responses buried somewhere in the middle" that kind of thing is lame totally, but it can be "fixed" (to a point obviously, imo, ymmv etc) with a upvote system
3) It pushes discussion off your screen. Aka "indentation is ugly". That is certainly true, but it can be mitigated (at least in terms of wasted vertical screen space) with expand / collapse buttons. In terms of horizontal space, I think that's an UI issue waiting for someone to solve it (I don't think it's a fundamental failure).
4) You're talking to everyone. Not sure what he's really talking about here, I don't think anyone thinks a reply to a comment is private-- you reply to an existing comment when you want to comment on the comment, not talk to the person who wrote the comment. Otherwise "polluting the tree with these massive narrow branches" seems to be #3 again.
5) I just want to scroll down. Basically, he finds it too hard to navigate in tree-space. The problem with this is that everyone else wants to reply in tree space, so even if your site has flat comments people still going to use @originalCommenter at the top of their comment, or if you're lucky quote the originalCommentor's post. And then originalCommentor will quote back, and so on and so on until, surprise!, you have threaded comments again, except this time it's adhock, ugly and with no collapse button.
I'm also confused as to why Jeff includes a couple of paragraphs implying that Stack Exchange is a good commenting system and then says "but remember: Stack Exchange is not a discussion system.". So then why bring it up? It not being a discussion system implies that perhaps the techniques used there may not actually translate into something that is a discussion system.
In the end, I understand that there are elements of threaded discussions that are frustrating, of course there are, nothing is perfect. But I would argue that flat discussions are, for certain types of conversations (specifically those had on HN and Reddit), far more detrimental. I'd go so far as to say that Reddit would not be even remotely as popular if it had a flat discussion system.
My take on the entire flat versus threaded discussion is that it boils down to a few facts.
1) Outside of computers people don't experience recorded threaded discussions
Instead what they experience is much like a flat forum. Everybody talks in chronological order about the current topic at hand. Some small number of side conversations are free to start, but too many and the rooms becomes noisy and all the conversations are hard to follow. If you come to the end of a discussion thread there is no record of the discussion you can refer to and pick the thread up elsewhere. Instead the best that can be done in one participant recalls some kernel of a previous thread and throws that back into the conversation in the hope that other participants will both be interested in discussing it and remember enough of that previous thread to continue.
For normal human discussions this is fine; there are a small maximum number of participants, conversations are limited in both time span and time between comment and separating the jumble of chronologically ordered threads is labour intensive.
The environment which makes this flat threading model of conversation work in the real world don't hold. An Internet discussion can have hundreds of participants and span weeks with any particular person responding only once a day. With suitable UI the computer can carry the entire burden of organizing and displaying the record of conversation in any subthread of discussion.
2) Web forum writers don't pay attention to the lessons of Usenet.
Atwood himself mentions Usenet and quickly discards it. This is the single biggest mistake of thread proponents and forum developers. News readers have already tackled the most serious issues with a threaded display with a few powerful techniques:
The first is that newsreaders explicitly show their user which posts are new since they've last read the thread. This solves the issues of "Are there new replies?" and "Buried responses". It does this by allowing users to skip to the next new post quickly as well as to see which subthreads have new replies.
The second is that news readers allow the user to trivially close an entire subthread or mark it read. I would argue that this is the second most important feature of any threaded system anywhere and yet is missing in nearly every threaded commenting system. When somebody comes back to a discussion they don't tend to be interested in rereading posts they've already seen. Instead they want to view the new posts yet have the thread context readily available.
The lessons of Usenet are not complicated, but they do depend on the understanding that computers should do work for humans. It's more work to track which posts a particular user has read, but it helps the user. It's more work to jump to the next unread post or collapse a subthread in the UI, but it helps the user.
3) Nobody seems to realize the UI middle ground between flat and threaded.
The vast majority of the cause of threads indenting themselves into infinity is a linear chain of responses, usually two people going back and forth. While this is technically threaded out to infinity, it is effectively a flat discussion in chronological order.
Nitpick doesn't display the technical threading, but instead the effective threading. Instead of indenting a linear series of replies once for each reply, it displays one indentation for the entire linear subthread. When the technical threading doesn't add any information it isn't displayed. You don't have to scroll right and down to read it, just down.
It seems that a threaded forum which took these considerations to heart would solve all his issues or at least reduce them to minor annoyances. Yes it's still a tree and as Usenet has shown that's not always enough, but most of the time it is. If the computer provides the necessary tools to navigate to new posts in a thread then it doesn't matter where in a thread the response goes, you'll be able to find it when new trivially. If you don't indent when it doesn't add value you aren't required to scroll left.
All this leaves is the fact that you have to scroll down. As you state his complain seems primarily focused on having to close subthreads he isn't interested in. This seems like a feature and not a bug. You can just read downwards, it just takes longer than collapsing the thread. In a flat forum you have no other option but to scroll down.
Indeed, the value of threading on usenet was that it provided data for the user-agent to decide in what order to present unread posts to the user - if the original topic A had drifted to subjects B C and D which were being discussed in parallel, when reading it three hours later I would get all the posts about B before the posts about C and then the posts about D. And if I grew tired of B I could hit 'k' and move immediately onto C. As long as I wanted to carry on reading, though, all I needed to do was hit SPACE (or in today's language, scroll down)
This is all a completely separate issue from the one of whether replies should be indented under their parent. For my money, this only makes sense if the reply is approximately as long as 'ME TOO!!!11!!!1!' and in the more interesting case that the reply is actually a reply and not just a comment, indenting is the wrong decision. But there is no need to conflate the two: ordering and indenting are independent decisions
Usenet is not dead because it had threaded discussion (Edit: not that you were saying that); it's dead because people find it easier to find discussions on website forums than install and set up a newsreader to access Usenet.
Edit:
I use a few chrome extensions that track what I've read on hacker news and mark new posts, and allow me to collapse a post and it's replies, or the the entire thread it is in. It's not perfect but I'd rather have this than no threading.
This is but one example of an unfortunate bias I see in tech generally and the web specifically. A short name might be Not Invented Now syndrome.
Not Invented Now syndrome is the tendency to dismiss technologies simply because they are not the newest hip thing. Sometimes this argument is phrased as "X is dead" or some equivalent. This ignores any lessons which may be learned from those older technologies and there are always lessons.
The old systems have always tackled intrinsic domain problems, such as how to keep threads of discussion straight within a large public forum with hundreds of participants, which just keep on coming up. The old systems have also tried most, not all but most, of the possible solutions to this problem. Ignoring the wealth of research done into the intrinsic problems, especially the ones which aren't immediately obvious, just results in new systems wasting time dealing with well known and understood problems. These are the positive lessons.
There are also negative lessons to be learned from old technologies. It can take decades to determine what just isn't working well. Often you can see this in the reasoning behind why a technology was left behind. These are the only problems within a domain that a new development effort should be working to fix. Sometimes these failures of the old system are due to technical limitations at the time and sometimes due to unforeseen use cases or issues which strained the original architecture. Failure to note these failings just causes new systems to leave consideration and solution of these issues until the architecture has been set and only inferior bolt-on fixes can be applied. SPAM is one good example of this. There are methods of drastically reducing SPAM which require core changes to the design of communication systems. A new system which fails to consider SPAM in its design from the outset is stuck with inferior solutions.
If you don't know history you are doomed to repeat it may be a cliche, but cliches only exist because there is some truth to them.
Flat discussions can be implemented without much extra thought, just the comments below eachother and you're done, and it'll work as well as the next flat comment system.
Threaded discussions require a bit more thought. If you just make a basic "reply-to" tree style discussion, you get something unwieldy quick. It can work, if you happen to catch the right community, but it'll be fragile.
So you need clever things like voting, sorting and collapsing/pruning.
Now for some reason, the article's first example was HN, which gets almost all of these things quite wrong. The voting/sorting algorithm makes threads stagnant and rigid (top voted comment will stay on top, even if it's off-topic) and there is no collapsing/pruning going on whatsoever.
His other example is his own site that he says is not a discussion platform.
And then there's Reddit, which he passingly mentions. I know HN doesn't like Reddit much, and whatever you may dislike the community but there is one thing: Not only is it one of the largest discussion sites on the web, it is one of the very few sites that get threaded discussion really right. Comments are collapsible and do so automatically at smart places, but the interface to expand/collapse them yourself is responsive enough to be pleasant to navigate. The sorting algo almost always gets it right, and (especially for top-level comments) I hardly see an interesting comment buried to obscurity by a most top-voted one (something that happens on HN threads all the time).
Well. I didn't really intend for this post to come off as so much critique on HN's discussion system. But if you're talking about flat vs threaded discussions, then HN just isn't a very important example. Also not for "why threaded doesn't work" (not with all the other low-hanging fruit).
So yeah, if you just want quick comments/discussion, go flat. But threaded can be done right. Especially if you want to stimulate "discussion" vs "comments". But it's not set-and-forget, you need to tweak it for the community, and the style of discussion. Flat is easier. Or maybe I should say it's easier to do threaded wrong :)
I have never liked the threaded model, largely for the reasons pointed out in the link. Threaded discussion is nice when you first read something, but becomes a total pain in the ass instantly afterwards if you want to participate in the discussion and/or actively follow it (oh hey, there were 85 comments in the last refresh. Now there's 89. Time to go comment hunting, since they could be literally anywhere!). One of the most annoying cases I've seen is Techdirt - it offers both flat and threaded view, but everyone seems to assume that everyone is using the threaded view and doesn't properly quote the posts they are replying to, which essentially makes the flat view completely useless for trying to follow the discussion. And in threaded view, you can end up with ridiculously thin posts where they're practically unreadable. Oh dear.
This is why a strong quote system is absolutely essential for a great flat discussion model. I personally consider 4chan (powered with an userscript like 4chan X or with the inline extension introduced a while back) to be a fantastic example of this. With simple quote links, backlinks to replies, hover previews and inline quote expansion, you can follow discussion within a thread incredibly easily and even do basically on-demand threading! Allow me to demonstrate it with this image: http://i.imgbox.com/adss6lfu.png (functionality and style in this case provided by 4chan X[1] and OneeChan[2] with a slightly customized Photon theme)
Also, in regards to HN, a while back I thought about writing a userscript to turn the comment view to flat (with some sort of auto-quote links), but turns out it's not really possible because there's no way to get the accurate post times for comments due to the "X minutes/hours/days ago" - though this could be easily solved if the relative timestamp was wrapped in a <time> element (or heck, even a <span> with the accurate timestamp in a title attribute or something, anything).
The only time I've ever seen flat comments work is when there is essentially no discussion (stack overflow) or where there is an obvious mechanism to indicate (and link too, ideally) the comment you're replying to.
Threaded comments allow for more in-depth discussion, while making it obvious where the current thread finishes, so that skimming through is possible.
Adding thread collapsing, or have threads auto-collapse at a certain point with a separate page for that thread solves the "super long tree" issue, since the really long comment threads are hidden away if you don't want them, but still there if you want to read them.
Single threaded conversation has worked superbly on MetaFilter for over 10 years: http://www.metafilter.com/ (ditto Edward Tufte's board - though he uses a very heavy level of moderation to maintain quality)
It really depends on the style of conversation. It's not unusual on some forums to use the quote block (linking to the the comment being replied to) but leave it completely empty to respond to the whole comment. people can click the link to see the context, but don't have to re-read the whole thing again if they're following the conversation already.
On the other hand, quoting individual lines to comment on a specific section happens plenty too.
If the quote doesn't automatically give you a back-link, it can still be a pain to get more context. If it does, then that's probably passable but it still might be a few hops to get back to the start of a discussion and you don't get it all on one page (in a traditional flat system) if there is much activity at all. Twitter may be able to do better with a loose grouping in of related tweets (which should include all tweets being replied to) while still preserving some semblance of a flat system, but I don't know if they do - I don't use twitter extensively. I do know that I've found it sometimes difficult to figure out what is in response to what in the little I have used it, though, so I am skeptical.
Having participated in in-depth discussion on both threaded and flat systems, I can't stress enough how much more comfortable I find threaded fora. It allows multiple digressions without them getting in the way of each other, which can be problematic in some narrow contexts where you need to keep everyone on the same page, but is such a tremendous win when you're exploring ideas where you need to collectively pin down all sorts of pieces of the problem.
As the article itself points out (though in a specific rather than general mode), what you are trying to accomplish and facilitate matters a great deal. When I approach a place on the Internet in which a discussion can take place, my primary concern is that I be able to participate in many different threads of discussion at once. How could a flat structure accomodate this?
I can get by in IRC just fine, talking to 20 people about as many different topics all at once, and keep it straight (I am a very engaged conversationalist, I consider discussion one of the sublime joys in life), which is fine so long as I restrict it to private message boxes. Any time I carry on a conversation with 3 or more people simultaenously on different topics in a main channel, most people have a breakdown and can't cope.
If you make your discussion format flat, I will not alter my habit. I will break your discussion format. I will write 10 replies in a row, directed to different recipients at different points in a discussion on different subjects. And you'll see them all as one big block (or maybe 10 blocks nested to the same level).
I spend a lot of time in Reddit comment threads. The only hierarchy I have EVER expanded was comments downvoted into collapse. Not once have I ever collapsed a part of the tree. Why would I? I can, exactly as the author said they wanted to, just scroll down. There's even a straight line for your eye to follow as you scroll down so you don't get lost in the indent!
I agree that I don't like trees, but in HN just go to your user in the upper-right, and click on comments. Problem solved! Still a tree, but no more clutter.
Looking at flat comments for an involved discussion is sometimes confusing because you have to scroll around even more to see who is replying to what.
Maybe PG would provide an option in user config to view comments in a list rather than a tree if we asked.
I've always found unthreaded/single threaded conversations to be better when you want the discussion to remain civil and focused. For example, on MetaFilter or Edward Tufte's board.
I wish/hope someone puts some effort into studying the difference one day though because it might just be confirmation bias on my part.
This doesn't seem to be working out too well for YouTube or any political site (HuffPost, etc) - have you read through some of those discussions lately? I don't think that single vs multi threaded conversations has any direct correlation with civility.
I've found that its more about scale than anything. Flat discussion can quickly devolve into... well, youtube if the number of posters completely outstrips what the moderators can feasibly moderate. Threaded and democratized discussion mitigates the moderation problem by allowing the users to kind of self regulate.
Democratized discussion has so many problems of its own though that it's a real trade off...
Incidentally, here's an alternative UI for HN that lets each comment stand on its own: http://hackerstream.com. It's a hobby project I built with a friend.
Hey, that's pretty neat! Unfortunately, I accidentally logged in with an empty email address field and it seems like I'm logged in as everyone, with no way to log out. Or something... The "your stream" page takes like 30 seconds to load after that.
I was wondering today if someone could create a great way of reading threaded discussions, a little like how Flipboard provide a different way of viewing paged content?
Amazingly ironic that he uses StackOverflow's (very basic, lame and restrictive and, yes, I have several Ks rep there) commenting system in a blog post title "Web discussions" when, years after years, they kept repeating:
"StackOverflow is not a place to get interesting discussions because StackOverfow is not a place to get discussions at all"
It's not very honest to use SO as an example of a good way to do "discussions" correctly.
[1]: http://www.paulgraham.com/hackernews.html (4 paragraphs from the end, "But a site aiming at a particular subset of users has to attract just those—and just as importantly, repel everyone else. I've made a conscious effort to do this on HN. The graphic design is as plain as possible, and the site rules discourage dramatic link titles. The goal is that the only thing to interest someone arriving at HN for the first time should be the ideas expressed there."