

Ask HN: chat going up or down? - EGreg

I'm building a system for people to post comments and messages, in a hybrid realtime/asynchronous stream. And I wanted to ask all the hackers here: should the newest comments arrive on top or on the bottom?<p>It seems to me that, despite the fact that we read books from top to bottom, and most chatrooms have newer messages on the bottom, that the other way is better. Here are the pros and cons:<p>New messages on top:
The textbox can be on top of the webpage, encouraging people to submit a message more than if it's somewhere on the bottom, because of its more prominent (and fixed!) position.<p>Using pagination with this style would bring the most recent comments naturally on page 1.<p>Blogs often sort comments this way.<p>Email threads are usually shown this way, for example in gmail or on the iPhone mail<p>It seems this style is more suited to slower, asynchronous conversations<p>Comments on the bottom:<p>Mobile phones typically have the textbox right next to the keyboard, such as on the iPhone<p>People tend to read from top to bottom and they can just keep reading the messages chronologically<p>Pagination would be a little weird though, with this style<p>When uou produce a list of items that is autoplayed, such as a music mix, you want to put later items on the bottom, as there is a very strong precedent for autoplaying or numbered lists to have the numbers increase in the downward direction.<p>Personally for user engagement reasons I would want to favor the newer messages (and textbox) on top approach, which is what email threads, facebook posts and twitter streams do. Since I need the same interface for chat, how alen do you think it would be for people?<p>Do any of you know of any links to articles or usabiloty studies that have been done with this? Any insight would be definitely appreciated.
======
samdk
Chat should go on the bottom. Why? People (at least people reading English)
read top-to-bottom, and chat messages very rarely make sense out of context:
when someone is reading a chat message, they're almost certainly reading a
conversation, not a single chat message.

The other examples you mentioned, like Facebook/Twitter posts, are different
because they're usually standalone and don't have to be read together with
other posts. (You'll notice that new comments on Facebook posts appear at the
bottom, because those _are_ meant to be read together and in order.) The one
example you mentioned that doesn't really fit here is email threads, which
_are_ displayed with new messages at the bottom in interfaces like Gmail.

------
Groxx
The general results I tend to see, with a bit of my theories as to why:

New at top + box at top => more, usually less relevant (often worse) comments.
Because people are more likely to leave a comment _and_ less likely to read
others' first.

New at top + box at bottom => fewer, varying quality. Because people are less
likely to comment at all. Where there are few comments, they tend to be pretty
good; where there are a _lot_ , nobody reads them all, and you get the same as
above. And a bit of annoyance at having to scroll past things to get to the
box (is this necessarily bad, though?)

New at bottom + box at bottom => fewer, threadier comments, varying quality.
People think more like forums. You're also setting yourself up for "fp!", as
those stay at the top forever. Similarly, good comments only rarely get a
chance to be read by _anyone_.

New at bottom + box at top => worst of all worlds. Lots of comments, nobody
reads, and people get frustrated because theirs never gets seen, leaving the
world to the loud and annoyed and nobody else.

\---

All that said: new at bottom + box at bottom anywhere you intend to have
_communication_. Twitter is both-top because it's not a bi-directional
communication platform; it's a shoutbox. The newest stuff matters, and yours
is the newest. Focus decreases as you scroll down, and as things get older.

Most chat systems are both-bottom, because you can read conversations like a
book, and add yours logically close to where it will appear, and where the
likely-most-relevant things are (newest in a thread = likely most relevant to
your comment). Focus likely increases as you go down, as things get more
relevant; a downside to long-running threads if you have to reload the page,
but no real problem if it updates in place.

Choice here can have a pretty profound impact on how people approach and use
your system. What do you _want_ it to be used as?

~~~
gojomo
_New at top + box at top = > more, usually less relevant (often worse)
comments._

Indeed, YouTube comments work this way, even though they've tried to dilute
the sewage a bit by highlighting a few highly-rated comments at top.

I'm still a fan of newest-on-top, but this is a cautionary observation.
Perhaps there's some way to have the 'box in middle' – or displaying alongside
as soon as you've read enough of the log to avoid the most boneheaded,
repetitive comments.

~~~
Groxx
I personally like in-line comments, where the box appears wherever you want
it. It _heavily_ encourages threads, but most people communicate that way
anyway. You can then sort the threads however you like, and filter out bad
ones (a la Slashdot), and hide when they get too deep, as it's probably just a
chat between a couple people then.

Hm. Anyone be interested in an extension for an in-line reply box for HN? I
could probably add it to Flattehn, though it'll take a while.

~~~
Raphael
I would really appreciate inline commenting, though not bundled with hiding
stuff.

~~~
Groxx
In a version or so, _everything_ will be optional. I like options. That'll
likely come before the inline reply, as that's a bit complicated.

------
sahillavingia
Do what users are used to: bottom.

Facebook, iChat, Adium, Skype, Colloquy, Campfire, all do bottom.

~~~
ericflo
It's not just what users are used to, it's what users are used to _for that
context_. So if it's publish/consume content (even if some is user-generated),
then newest should go on top because users are used to that. If it's
synchronous two-way communication, then newest should go on the bottom,
because users are used to that.

------
ars
Are you posting updates or discrete entities? Then new on top.

Are you having a conversation? Then new on bottom.

On a recent blog-like system I did, new entries went on top, but new comments
(on the entries) went on bottom. Email works the same way - new threads will
sort on top, but within a thread new messages are on the bottom.

------
yitz
Perhaps you could do something a little bit novel allow all comments to behave
like a chat room:

fixed size comment area, with a scrollbar that starts at the bottom, when you
scroll up you load earlier comments dynamically?

That way you can always see the most recent comments in the discussion, and
easily scroll backwards through the history to follow a conversation..
scrolling and loading dynamically is a lot 'lighter' of an interface than the
frustration of paging. (that's my own opinion, not backed up by any usability
studies)

just like people expect from a chat room.

------
stoney
I think it depends what's being posted. Facebook does it both ways - in a
message thread it shows new stuff at the bottom, on the news feed it shows new
stuff at the top. I think the key difference is where you have stuff that
should be read in a logical order, it is easier to have it listed top to
bottom (since the individual messages will be read top to bottom). Where you
have stuff where you can pick up the thread anywhere (like a news feed) it
makes sense to have the new stuff at the top where it is more visible.

------
thristian
I would guess that people are interested in the newest _context_ available.

In something like Twitter or Identica, messages are largely unrelated to each
other, therefore the unit of individual context is a message, and the newest
messages appear at the top.

In something like IRC, messages tend to be very heavily interrelated, and the
unit of individual context is the entire channel - or at least the past five
or ten minutes. Until IRC clients learn to split channel contents by semantic
context, they present the entire context (i.e. channel history) in
chronological order for your perusal.

In something like email, messages tend to be somewhat interrelated, but
because each message has links to its related messages, it's easy to break up
a mailbox into threads. Generally, I would expect this kind of system to show
the newest _thread_ at the top, but the individual messages in that thread
chronologically.

Since some email threads grow to enormous lengths, it's not always useful to
have the first two thirds of the page occupied by messages posted a month ago,
when all the activity is occurring in the leaves. In this situation, it might
be useful to only construct threads based on activity in the past week or so -
that way, the individual sub-threads of the Monster Thread can take their
appropriate places among any other threads that have occurred recently.

------
benatkin
I call this the Activity Stream domain:

<http://activitystrea.ms/>

It has a lot of idiosyncrasies. One thing I noticed recently, and tweeted
about, was how Facebook uses different ordering within a single view of its
News Feed:

> facebook stream format: <(>>>)<(>>>)<(>>>) (reverse chronological order for
> news items; chronological order for comments on news items)

<http://twitter.com/#!/BenATkin/status/10561264480686082>

------
notahacker
Given the difference in views depending on use cases, what about offering
users options? That doesn't entirely eliminate the question of what should be
the _default_ option but does give you the ability to test whether significant
proportions of users have an alternate preference and what effect that has on
their participation, _within the context of your app_.

Personally I quite like Facebook's hybrid reverse chronological order and box
at the top for discrete updates with _responses_ to those updates ordered
chronologically and updated inline.

------
zdw
Bottom post. See here, which I'll quote:
[http://en.wikipedia.org/wiki/Posting_style#Choosing_the_prop...](http://en.wikipedia.org/wiki/Posting_style#Choosing_the_proper_posting_style)

    
    
      A: Because it messes up the order in which people normally read text.
      Q: Why is top-posting such a bad thing?
      A: Top-posting.
      Q: What is the most annoying thing in e-mail?

------
OmarTv
there are lots of ways to do it but what is it that it will look more
appealing or new? for example globes like when u text to another cellphone and
in the msg menu the msg wont dissapear it will only remain as globe green to
blue blue to green :D

------
Raphael
Tweetdeck has reverse chronological order. Seems to work quite well for
unrelated messages.

------
nl
Newest stuff goes closest to the place where you enter text.

------
revorad
Top please. That's the only way you will do something new and interesting.
Don't just do what everyone's been doing because "that's how it's done". Why
are you so scared of trying something crazy and new?

~~~
mfukar
Wow, if only book writers followed your advice, we might have something decent
to read!

------
gojomo
Join the future, not the past: put the newest statements on top.

True, most other live-chats do the reverse. But Twitter, blogs, and feeds are
training people to read upward – it's the layout with momentum.

The old way was dictated by handwriting and then typewriters; it's no longer
required with most written communication keyed-in. Even where a physical
reason may exist to prefer a text entry box near the keyboard, as on
smartphones, it's still easy enough to compose-at-top (as evidenced by URL
bars and search boxes). Or, a covering animation could cause messages to
visually 'whoosh' from bottom-entry-area to latest-on-top upon send.

I expect at some point a tipping point will be reached – perhaps as a
generational thing, or when some other post-Twitter channel takes off – after
which even older interfaces will flip. (Is there an IRC client that's latest-
on-top yet? If not, I expect one soon.)

Eventually, even prose that seeks to create a strong sense of time-falling-in-
from-the-top may reverse its usual line-ordering.

------
EGreg
Thanks guys for your responses. I just wanted to add a couple things: yes, if
I was following what everyone else does (and the user kind of expects) then

a) my service won't really stand out in this respect, which may be fine, and

b) the box will be at the bottom, which means the human brain will have to
look for it in a variable place, causing far less people to use it than if it
was in a fixed place on top -- and causing less initial engagement with the
site.

If you notice, youtube did whatever they could to get popular in the
beginning, and it worked for them. They were one of the first web 2.0
companies to be sold for above a billion dollars.

Anyway, back to my point ... if you read email (not in gmail, but in regular
email clients) then you usually have conversations in reverse chronological
order. Come to think of it, I always feel I have to remind people to "read
from the bottom" when I forward an email thread. So perhaps it doesn't lend
itself to the best experience.

This seems to suggest that the best experience is indeed: bar on the bottom,
infinite scroll going up (or pagination going backwards).

But now I will have the problem of drawing the user's eye to the bottom of the
screen. Most chats will initially be empty, so I will just have a large empty
space on the top, and a chat textbox on the bottom. What about that? Fine for
IRC but not for a website, I think.

~~~
EGreg
Indeed, what is causing our preference for the bottom these days, that will
continue to be important as physical paper, etc. won't have much bearing on
chat layout?

I think it is:

1) keyboards on phones are on the bottom, so as not to obscure our view of the
screen, and we want that textbox to be in line with the keyboard

2) we read from top to bottom, so it is more natural to continue reading this
way inter-message and not just intra-message

But there is one BIG ONE that seems to really scream "newest on top" for me:

 __On the web, things start at the top __

This makes sense, because they are documents. And as such, embedding chat in a
document seems to demand a large empty space: most of the important site
elements (header, etc.) will be on the top, and to see the input box you have
to look all the way DOWN.

Maybe I just need to come up with an idea to draw the eye there and make
people want to type. But what?

------
gojomo
<http://xavvy.com/up-in-future>

about this

I have strong feelings

