i'll take it one further and say that having a messenger app that shows "online" or "active" status is not something I like. In addition to the problems with having an app that sends an indicator to the other party that somebody is actively typing.
I like how Signal just shows that the person exists as a contact. Whether they're awake or not, or active, or idle is opaque to me and I'm totally fine with that.
One of the reasons for text based chat/messenger apps, going all the way back to the earliest days of IRC, is the benefit in having asynchronous communications. If I absolutely need an immediate answer from someone or a realtime 1:1 conversation on something urgent I'll call them on the phone instead.
In things like facebook messenger I bet that 99% of users never dig into the settings to turn OFF the "show your activity status to other people" option.
For something like a work place communication tools such as Slack I can understand the purpose of setting yourself active or idle manually to indicate whether you're available for messages, or in a different time zone, or whatever. That's a different use case.
I remember IRC a bit differently - mostly with it being tied to dialup. When we were on irc, we were on. We might be "afk" for a bit, but generally would be back soon. If you saw someone's nick on irc, it was very likely that they were online and active. Even with ICQ and AOL, it was pretty apparent if people were online or not. If they weren't online, or you didn't need a quick response you sent them an email.
As DSL and broadband became more popular, chat moved to being more asynchronous. Chat clients started synchronizing message history with the server to make it avaialble on all your devices. It was easier to leave your presence online, even when you were unreachable.
IRC itself still retains a lot of that realtime chat, mainly because of its transient nature. Yes - the channel might be populated with people that aren't actually there, but the conversation is much more real time. Unless you have a bouncer or web client, the chat history starts when you join the channel and ends when you leave. There's no threading (ok, maybe some of the web-based clients will do that), so even if you see a conversation from a few hours ago, you can't participate in it. At best you can start a new conversation referencing the old one. Not everyone in the channel will have that history.
I consider that lack of permanence a feature. When Google Talk came out, I loved the fact that all my chat history was saved and it was available everywhere. Now that all chat clients have that, I find myself preferring the more ephemeral/transient chats.
I wholeheartedly agree here. In addition, IRC seemed more like a reflection of real life given the "synchronous design". Such as:
> so even if you see a conversation from a few hours ago, you can't participate in it.
Mirrored the limitations one would have in-person (i.e., they might have heard about the conversation, but now cannot participate in it, notably because it already occurred and all the same people may not be available -- you would have to start anew!)
Another interesting component of IRC is the explicit nature of people joining a channel -- it was treated the same way someone walked into a physical room; People would greet them and numerous conversations would naturally begin just by the essence of that presence. This is all mostly lost in modern clients.
I'm not sure why it's relevant to mirror life before always-on internet? It's not like I refuse to read books because my distant ancestors would sit around the fire and talk instead of reading.
Though I understand (but do not share) your desire for truly real-time, ephemeral conversation and IRC is one of the last remaining experiences with that ephemerality.
For the simple reason that humanity has evolved over thousands of years to consume and spread knowledge via the same tried-and-true methods.
They're commonplace online because they work.
When in 20 years, humans are literally beaming terabytes of data straight into their brains every hour, I'll still occasionally enjoy some "slow", yet rich in nuance, communications.
Have they? I mean humans spent most of their anthropological existence doing none of the sort. Moreover norms over how people conversed, when they conversed, and how openly they conversed widely varied based on culture, social standing, and gender. In many societies women weren't allowed to talk to many other people.
It's fine to prefer the ephemeral communication of IRC I'm just not sure if appealing to history is a good justification.
In my experience, for communication with people (including myself) using dialup or intermittently connected in some other way, the on-/offline indicator on ICQ was a killer feature, an indication of availability and responsiveness that required no effort to maintain, and I have not seen it usefully reproduced in the always-connected broadband world. Of course, various third-party clients providing “stealth mode” were abundant, so it’s not like this mode delivered everything people wanted out of the box, either. (It might be that the actual important difference was that you used ICQ for casual conversation only, and adding an acquaintance to your contact list was not a given or socially expected; not an implementation or UI issue as such.)
from the POV of people using irc from dialup it was indeed very much like that - but also from those who were dialing up to unix systems, or using them locally over a network such as at a university, the machine running the irc client maintained a persistent network connection so it was possible to run a persistent client (or eggdrop bot) without disconnecting/reconnecting and re-entering channels.
after about the year 2000 or so it was also really common to see people with shell accounts various places using gnu screen to maintain a persistent irc client session.
As I understand it, all of these features are not features that people really like, they are features that 'drive engagement' in that horrible UX A/B testing sort of way. The basic tenet is that if you can increase the anxiety of the user they will spend more time checking the app. If I am messaging someone and see some blinking dots, I will stay in the app until they message back. Otherwise I might use the messaging app as an asynchronous tool and not waste all of my time in it.
It's not just the apps doing it. I've seen people pressuring others to respond immediately to everything and I've seen that expectation causing very clear anxiety. It's way too much pressure on top of every other day to day demand.
I can see how apps have been designed to promote that kind of behavior, but how did they end up getting us to demand it from each other? I missed the memo.
I've decided that if failing to obsessively check your phone and taking longer than a few minutes to respond to texts, social media posts, and status updates is "rude" and "socially unacceptable" then I'm fine with being outright obnoxious, but I know people who feel that doing that would cost them relationships and status and it looks like they're probably right.
I don't remember any massive campaign to convince people that imposing that standard on others is fine, but maybe we need one to let people know that they're allowed to put their phone down for a few hours and set sane boundaries with their friends and employers.
I've definitely faded out of connection with folks easier by behaving asynchronously to messages. I'm also not on social networks, so you'll need to Signal/SMS/email me. Sometimes I'll bring up the Deep Work book and that I believe strongly that constant distraction is unhealthy to the mind.
To perhaps the majority of Americans, this behavior renders me untrustworthy and forgettable.
Our expectations as a culture (US) on voyeurism and response time have shifted dramatically in this regard since the popularization of the iPhone. What's most surprising is so many people are unaware that I haven't changed in this regard. They have.
> I can see how apps have been designed to promote that kind of behavior, but how did they end up getting us to demand it from each other? I missed the memo.
I think it's just an extension of how things were. To me, this is the online version of people dropping by your desk with a "real quick question".
Heck, even e-mail, which is overtly asynchronous, has some people expecting answers "quickly".
Ah, 'Real quick' and 'Quick question'. If you suffer from saying either of these two phrases, ever, know that I think less of you when you do. It's aggressive, dismissive, and presumptuous. Usually patently false. Please stop.
I don't remember anyone saying this a decade ago, because you'd come across as the boss from Office Space.
Slightly off-topic, but I started thinking "Wait, how do you measure the effectiveness of your communication platform?"
It's an interesting question because when communication is effective, there's not much of it, at least relative to the information transmitted. However, you can't just optimise for "not much communication" because that could mean the opposite: your system is so bad that it's not being used at all. So either you have to find a way to measure the amount of information transmitted (and compare it to the effort expended in doing so) or... something else?
Yeah, I would never add presence to a chat app. I hate, hate, hate it.
I started using Discord a few years ago and accumulated friends with whom I regularly chat. If I leave Discord off, they're like "oh you haven't been online in such a long time, I thought you were dead". Or if I chat while I have the thing set to idle they're like "oh lying about your idle status because I'm annoying you" and things like that.
It is such a chore to maintain people's expectations. I wish they never added this feature to the app, because my friends will guilt me into turning it back on if I turn it off.
Slack is similarly bad. Like if someone wants to step out of work to go for a walk in the middle of the day, I don't need to know about it. It's none of my business. They can reply to my messages when they have time.
> One of the reasons for text based chat/messenger apps, going all the way back to the earliest days of IRC, is the benefit in having asynchronous communications. If I absolutely need an immediate answer from someone or a realtime 1:1 conversation on something urgent I'll call them on the phone instead.
This is lost on, as far as I can tell, at least 50% of the people I regularly text, despite me explicitly pointing this out to them.
In the years before email and texting and even ubiquitous answering machines, when phone calls were all you had, there were people who could not let the phone ring without picking it up. I see people respond this way to text messages now. They not only have to pick up the phone to read the message immediately, but they have to engage with the conversation immediately as well. (And not just for work messages.)
I just do it so I don't forget. If I don't respond within 5 minutes, it's going to get lost. I'm the same with email, I respond as quickly as possible so it's done and the ball is passed on to the next person.
Based on what I've observed, in a state of constant low level anxiety interconnected with certain weird societal expectations of activity/behavior on popular social media (facebook/instagram/twitter/snapchat/tiktok/etc)
Better yet, for some people, the expectation of this mostly-async communication is that you will respond as quickly as they type.
My adult son deals with anxiety, and when he's stressed, I'll get multiple texts in a row. If I'm not responding for some reason, one of them will be "???" as in, "hello, are you going to respond?"
A bit of temperature-lowering, sanity enhancement, comes from using the auto-set sleep/focus settings in iMessage, and training him to understand that random texts in the middle of the night can, and will wait until we're awake enough to look. If it's really that critical, a phone call can still work.
Indeed, I should have mentioned that as well. Nearly all of the people who compulsively[0] respond ASAP have an expectation that their recipients will do so as well. Sometimes they have an anxiety response, like apparently your son, sometimes they have an anger response, or a hurt response… it's like "expectation is the root of suffering" in action.
[0] - As opposed to people who do so for other reasons, like others in these threads have mentioned doing.
Regarding anxiety vs anger vs hurt response, why pick just one?
Indeed, our son's expectations are sometimes pretty unidirectional. (Mental health stuff, depends how he's doing at the time.) With some effort though, this gradual training of expectations seems to help.
Similarly perhaps, I came across a suggestion recently for scheduling email as a matter of course. I tend to respond immediately (if not too intrusive), or make a note to come back to something I mean to respond to, but this idea was that perhaps some time lag as a regular thing makes sense. If I recall correctly, the recipient is not only fine with the delay, but actually considers your response as more worthwhile, because you likely put some time into it. Perception vs reality? If perception is what matters more, that might be a reasonable approach.
I don't even like read receipts for casual communication apps. I feel like they only cause stress. I don't want people to know if I'm read something because I may have read it but be too busy to respond and need to come back to it later, but I don't want the person thinking I'm ignoring them. And on the other side of things, I don't want to stress myself out repeatedly checking if someone read my message.
Huh. I've always assumed chat apps were for synchronous communication. If they are for asynchronous, then why do they exist? Email already solves asynchronous communication pretty well, and it is even decentralized.
For many people, email is better used for thoughtful long form messages, while chat is better for short quick thoughts. This is mostly a social difference, with a bit of UX thrown in.
From a technical standpoint I don't see how there's much of a difference, given that devices are almost always connected to the Internet and almost all chat, messaging, and email services people use have a third party server that persists a message regardless of the recipient's "presence" at the time the message is sent. These services have converged, apart from a few idiosyncrasies and perhaps some waning differences in the social expectations of a particular service.
AIM added offline messages at some point, although I don't remember when. ICQ had it from the beginning (I think originally the client may have polled the server rather than running a persistent connection?, so the server had to store stuff a bit anyway; clients would do p2p messaging if both were online and could connect, otherwise would fall back to sending messages through the server)
According to my memory AIM didn't support that in the late 90s and early 2000s, and that was a key advantage of ICQ. But I mean in the last 15 years or so, corresponding roughly with the rise of ubiquitous smartphones (and foreshadowed by cell-connected PDAs and some feature phones).
> One of the reasons for text based chat/messenger apps, going all the way back to the earliest days of IRC, is the benefit in having asynchronous communications.
On the contrary, the main advantage of chat protocols over e-mail is ability to handle synchronous communication. If i got by with asynchronous communication, i would stick with e-mail.
Email suffers from other problems. Chat protocols have the ability to be either. It is a small act of violence to expect a chat message warrants an immediate response.
To me, the most important feature of any messaging service is to queue up until I'm ready to respond. I'm either asleep or awake. And if I'm awake, I'm probably thinking of something else. It's a happier life if I finish that thought before starting a new one.
I see situations when broadcasting my availability to some of my contacts is important.
I see cases when doing so is counterproductive or uncomfortable.
An obvious solution, of course, is to make it an option. Default hidden with per-contact overrides, or the other way around.
Of course, XMPP has a better part of it implemented, but not all of it, and without a sleek UI. When Jabber still was popular enough, I could subscribe to (or unsubscribe from) status change events, per contact, using Pidgin. Worked pretty well.
It’s interesting, because I remember Steve or somebody saying this was a selling point of iMessage. “No busy indicator, no offline state, just send your message and they’ll get it on all of their devices”. Then at the last WWDC they go up there and show how cool it is that iMessage will now tell your contacts if you are in Do Not Disturb (and allow them to override it). You can opt out, of course, but I guess people really like the busy indicator?
I think people sometimes just really don't want others to think that they are ghosting them, so a busy indicator serves that purpose: "I'm working right now, not purposefully ignoring you, please be patient, or override it if it's urgent."
I don't personally use it, but I understand the sentiment.
Telling people I'm in DND is my phone telling them that I'm asleep/in a movie/working/whatever. Since some people have emergencies, give I gotta them the ability to bust through is nice. That ability used to only happen with repeated calls in a short period of time, and that's annoying.
I suppose I look at it as less of an "away" message and more of a feature to override the DND.
That's a very strange perspective. If I don't care about presence, I'll use email. The whole point of IM is to have synchronous realtime communication.
> The whole point of IM is to have synchronous realtime communication.
No. That's one capability. But the whole point of IM is to have online communication. Realtime is one possible aspect. I very much prefer asynchronous communication even in IM.
If I want synchronous communication then... call or use voice chat.
Instant does mean synchronous, as in instantly, immediately. And that is because when it was invented asynchronous communication is by default, as users cannot afford to be online all the time. So instant is the feature. You may argue it has changed, but it is false to dispute the original intent.
No, synchronous means synchronous. Instant means instantly, sure. But that does not mean synchronous.
You can send an instant message. That's instant. It does not mean the recipient must, or even should feel that they must, reply immediately. You won't know if the other person has read your message and decided to reply or not. That's not synchronous at all.
A voice conversation, on the other hand, is synchronous. You know when the other person has decided to leave the conversation or simply to not reply. That is synchronous.
> You may argue it has changed, but it is false to dispute the original intent.
I am not arguing it has changed. I am stating that it simply isn't what you claim it to be. That might be how you use it but that doesn't mean that everyone should feel obligated to.
You can also send an email instantly. So, obviously, in this context instant means synchronous, and not just immediately, otherwise there would be no point to put it into the name as a differentiating factor compared to email.
Nowadays it's usually instant, but back when I first got online and me and my friends used AIM, email would often take several minutes and occasionally hours to arrive.
Calling is not the best most of communication for a lot of synchronous use cases. Talking about code is easier with chat, so you can copy and paste, and also keep history of what was talked about.
Also, voice calls are not always easy to do when you have other people around or are in a noisier environment.
> i'll take it one further and say that having a messenger app that shows "online" or "active" status is not something I like
I'll take it even further than that and say that I don't like when there are markers for "read" versus "not read". In a vacuum, yes, it's useful, but there's a very common implicit assumption that one is obligated to respond as soon as a message is marked as "read", and that not doing so is an intention slight. The issue with this for me is that sometimes I might be busy enough that I'd want to respond to time-sensitive or otherwise important messages but would prefer to wait to respond to less urgent messages at a later time. I can't easily figure out which of the two categories a message falls in from just a short preview sometimes, so I end up leaving messages unread until later just to avoid accidentally causing someone to think I'm ignoring them. While I also find myself sometimes wanting to know whether a message is read or not, I don't really think it it ever makes me happier to know, since at best I'll gain no information, and at worst I'll end up feeling bad due to worrying that I've been intentionally ignored. Because of this, I generally turn off the feature whenever possible (even though it's generally symmetric that way), but an alternative might be to opt into it per conversation; there are definitely some people who I know I'd like to have it on since we mutually are secure about where we stand with each other, and knowing whether they saw my messages would be useful for purely for logistics (e.g. if I missed a message from my significant other asking me to pick something up while I'm out, they might be able to order online in time for it to come the next day). For the vast majority of my conversations though, I'd rather it just be turned off.
There is one thing for which a "read" status is very useful is so you know your message have actually been received.
One big gripe I have with email is that with some providers, is that unless I receive a reply or a bounce, I never know if my email was actually received. Was it ignored? Sent to the spam folder? Though now that I think of it, you could have a lying "read" status, where everything that is sent to the spam folder is marked as "read".
> For something like a work place communication tools such as Slack I can understand the purpose of setting yourself active or idle manually to indicate whether you're available for messages, or in a different time zone, or whatever. That's a different use case.
I just never set myself online, I wave in a morning, I wave at the end of the day but I treat slack as async, I read the message and reply on my schedule.
I expect the same of the people I lead, we are developers, we require been able to block out chunks of distraction free time to work properly.
> i'll take it one further and say that having a messenger app that shows "online" or "active" status is not something I like.
That's actually something we don't do in Cardinal, but there are a couple of places where you can see online status because we do show live edits in our docs, but that's for (hopefully) obvious reasons.
Every time I set up a new slack account I set my status to appear offline. In the same way that I don’t want others to change their behaviour whether I’m typing or not, I don’t want someone to message or not message me based on an indicator which isn’t always accurate.
> I like how Signal just shows that the person exists as a contact. Whether they're awake or not, or active, or idle is opaque to me and I'm totally fine with that.
Signal does show whether the recipient is typing, if you have the chat open.
Glad someone brings up this issue. Intrusive and “slippery” UI made me use external text editors to write most of what I send on web platforms. I have social anxiety and even the thought that someone can see that I am writing stresses me out because then I feel pressured to send something to not keep them waiting (and I am a very slow writer). It is similar when I see someone else writing.
I understand that this may not be an issue for most people, but for me it is just another stress factor which keeps me from interacting with other people (other examples are the reading checkmark and the uncertainty if hitting enter sends the message or not). It would be fine for me if it was opt-in or at least can be turned off.
It never bothered me, until one time I was was carefully crafting a message to a manager on slack. I was doing a few other things at the same time, so I wrote it in fits and starts over 10 mins or so, but I never finished writing it because she messaged me something along the lines of "hey, what is it? You keep typing and then stopping. That normally means people are afraid to tell me something. Whatever it is, you can just tell me."
Until then it didn't even occur to me she might be "watching me type." Such a creepy, distracting, "feature".
Yeah, agree, and it's bad from both ends. When I catch an unexpected typing indicator out of the corner of my eye it becomes a big distraction, anticipating that incoming message.
The feature is semi-useful when you're in an active back-and-forth, to prevent some "talking over" each other. And if you've just posted in a channel it's nice to see so you know someone is working on a response. But having it light up for DMs, when you're not waiting for a reply, is a misfeature. It's like having someone stand at the open door of the room while they figure out what they're going to say.
I don't have social anxiety and I still feel pressure from the 'is typing' like you say, so I disable it whenever I can. Usually this means you can't also see whether the other person is typing, but I don't care, I try to give people the time they need to reply.
In many cases, you can only disable it on your end, meaning that you don't see when others are typing, but they still see when you are typing.
That actually works out fine for me, because after I have had it turned off for a while, I forget that the software even has the feature, so although other people see when I'm typing, I don't know that they see it, which is what matters to me!
I also do this with almost everything I write. I always have a Sublime Text window open with a bunch of unsaved tabs that I use as a buffer space for everything and copy paste it when I’m done.
Another reason is persistence. If a webpage decides to refresh or my browser or system crashes, my textarea content is gone. Sublime Text remembers those unsaved tabs no matter what.
Sublime does this incredibly well. I’ve got windows open with notes that I created a couple of years ago and haven’t explicitely saved. They’ve survived restarts, Sublime upgrades, whole-OS upgrades and everything inbetween.
Random thing. Tridactyl for firefox lets you open the contents of a text box in an instance of $EDITOR. Save and quit and the text box contains whatever you wrote in buffer. I believe several different addons for multiple browsers provide a similar feature. I find this a nicer experience for formatting and editing. It basically just automates what you are already doing.
The macOS app Raycast has a “Floating Notes” extension that I frequently bring up with a keyboard shortcut for smaller messages. The text gets persisted and it is very lightweight and floats on top of other windows.
Before that, I have also used Sublime Text (and I use it for many other things except coding, which is kind of ironic).
Plus the fact that github has amassed the world's most comprehensive database of keystroke biometrics in the world. One which can safely be assumed to include 99% of all potential hacktivists.
Kinda makes the FBI's fingerprint database look lame in comparison.
On the flip side I greatly prefer the indicator. It lets me know if I should wait for a response or move on to other things. When I message someone I wait a few seconds to see if they start typing and if they do I just wait and if not I can start focusing on something different.
And if the typing goes on for more than 5 minutes, you know you're going to need to get a drink and sit down for a while. yeah - typing indicators are handy.
Personally I want something that does opt-in. I'll happily share my indicators with people I communicate with regularly, it can be extremely useful to know if a message that's time-sensitive but doesn't require a response was seen ("grab milk too"). I sure as heck don't want to for most public-ish comms though. And I am entirely fine telling people that "I enable it for ~5 people and you are not one of them".
Whats wrong with a simple acknowledgement message like, "ok give me a min" I still do this even with today's typing statuses and I think people recognize the importance of a simple ack
I loved this in Google Wave! It felt closer to an IRL conversation, because I could start thinking about my response while the other person was typing.
I can understand why it made people uncomfortable—there was a certain intimacy to it. But, conversations are often healthier when the participants are forced to be a bit vulnerable.
I really did like Google Wave and I'd love to see someone try the concept again, but it did have problems. Among other things, it really was quite buggy. Early on, this was understandable: they launched the product at a very early stage, which IMO is fine as long as you warn users what they're getting into. But as I recall, it never really stopped being buggy.
They gave up on the prototype and added the live collaboration features to Google Docs instead. They left the mixed chat component behind pretty badly but they did build a good concurrently edited word processor. Does anyone else remember sending docx files around by email for revisions in Track Changes mode?
I think it did, but I also remember it being a lot more janky than it was after Wave. My recollection is that they reimplemented it with what they learned from Wave. I might be mistaken though, no sources sorry.
Notion has some good ideas but to me it's no Wave! Wave, to me, just felt very seamless and free-form/flexible, in terms of how you could go from chatting to planning to collaborative writing and editing.
Yes! Wave was a genuine attempt to move the public on from wikis, word processors, and other entrenched modes of interaction to something completely fresh.
Try talk[1] some time -- it's a live connection to the other user's TTY, so they see everything you type, typos and all. You can't even type simultaneously, since the messages would intermingle; you need to wait for the other person to signal that they're finished.
I believe ntalk has 2-way split windows as well. I think that's what I have installed on my Linux server, and a couple of my friends have accounts there too.
Ntalk is my second favorite way of communicating after in-person face-to-face talking.
i used ytalk to talk to my grandmother in the '00s.
i would log in to her computer from the other side of the planet and start a session to see if she was on the computer. and then we'd chat.
Thanks for sharing this :) Just spend a good 15 minutes on it talking to strangers. It removes all barriers I normally experience for communicating online, encouraging more natural discussion
I was there and it was amazing. After comparing this comment above with your typing there, and this comment here compared to my typing there, I concur.
This is how it was for a lot of "SysOp chat" systems in the BBS days. Sometimes the two parties wren't even in separate sections of the chat, they were effectively just having a discussion in a shared text document.
I remember doing that with modem connections in dos, you could chat with a friend while up/downloading (or with a bbs sysop). There was even a sequence that beeped on the other side to draw peer’s attention, but I’ve never used it. With friends we had a rule to not interrupt the one who writes until a newline, because characters would mix as in “Hi, how aHrie you”.
It was fun seeing the "take turns on double newlines" rule occasionally broken for normal conversational interrupts, like their HAHAHA's interleaving with your message to let you know they're already laughing along, or OOOOOH to let you know you can stop explaining something because they just got it, or waitwaitwait to get you to go back and expound on an earlier point before you continue.
This is such a violation of trust and user expectations IMO. Users have built up an expectation that the result can not be seen until you send. I understand that it likely speeds up support, but there should be some message at the start warning you of this like they have when your call is recorded.
This is that feature in xmpp, but it didn't send as you typed, it batched up typing and sent just one packet a second (or so) with timed keystrokes in the packet so it could play back a simulation of you typing; thus giving the illusion of live typing while not swamping the network.
There's some demo gifs over on https://www.realjabber.org/ (the more recent website had flash demos only and has since been shut down...this is all a bit delapidated)
> so it could play back a simulation of you typing; thus giving the illusion of live typing while not swamping the network.
IMO, this completely defeats the point.
The advantage of live typing is that I can see what someone is typing sooner, before they're even done, and start considering my response. I want to see their message, or partial message, as soon as possible.
I don't want to see some movie of all of their keystrokes and corrections. It's totally fine if it comes with the territory, but only in the name of reducing latency.
That isn't to say I'm against batching the keystrokes to conserve bandwidth, but don't fake it!
Did you watch the demo? https://www.realjabber.org/anim/real_time_text_demo.html
You ARE seeing it before they are done (compare to the left hand window, which what most chat apps do now), the delay in seeing live typing is at most one second, and the experience of watching the batched messages without the timing information (the middle window) is painful.
What isn't clear to me from the demo, however, is what happens if the typist uses backspace or pauses while typing. I wouldn't want those things to get transmitted if they happened within the span of a single transmission.
In other words, it's okay to display letter-by-letter, similar to video game dialog, but they don't need to keep the original timing information.
Google Docs isn't really made for conversations though. You can use it that way, but it can become confusing quickly, for reasons unrelated to instant typing. (For example, it's difficult to remember who said what unless you agree on some coding system.)
This article touches on something that I have been recently thinking about - remote work vs. async work. Remote work is in vogue these days but a lot of these companies don't allow or encourage async work. They equate remote work with async work but then institute tools like slack which are antithetical to async work. Typing indicators are one such way where slack encourages synchronous work.
Typing indicators are an anti pattern imo but async work doesn't seem like a desirable thing. Very few people are doing jobs where they can just go offline for a day and come back with a result.
Most work, especially software development requires frequent communication. Being able to quickly bounce ideas off people and verify your plans before committing to them is so valuable. I can't count how many times I have been right in the middle of something, had to make a questionable choice, spoken to a coworker just to verify the idea, and they tell me something that completely changes the outcome. Being able to get this done within the hour vs getting it right at the end in review is so valuable.
What is worse than being interrupted is spending days in deep focus only to find out at the end that you made a foundational mistake that invalidates the rest of your work. Through no fault of your own you could have the wrong understanding of what the user wants or how it fits in with other parts of the system. Being able to quickly sync up with the end user for a change or validate your ideas with another developer is so valuable.
If you need to wait a day to get a response from anyone, you either have to drop the work and do something else while waiting (breaking your deep focus). Or assume you are right while waiting and risk throwing out a days work if you are wrong.
IME many large, non-tech companies are so bureaucratic they essentially have an async flow. Which perhaps is fine, there’s already a defined process for what needs to be done. But for a startup where even the next two weeks are foggy, async work can be detrimental.
That's a strawman. You're conflating async with no communication. There's perfectly fine asynchronous communication methods. You have to communicate differently on async, not stop communicating.
almost all FOSS work is async. any company that has teams across multiple timezones does async work.
for me, unless we are doing pair programming, i expect communication to be async, even if we are in the same office. you don't get to interrupt on demand, but you better wait until i am mot focused on something else, and respond to your message
I have found FOSS to really illustrate the problems of async work. It’s extremely difficult to break in as a new contributor. There is no help like in a corporate job, you can post on GitHub and hope someone gets back to you at some point, but no one is going to get on a call with you and walk through a problem or the context.
Which shows in the contributor stats where 1-3 people do all the real work and everyone else submits trivial patches.
Non-disableable typing indicators is one of the few things I very much dislike about Slack. I don't want people to see whether I'm typing, and this means I have to use an external editor. (The big other thing is @here/@channel notifications by default being on. No fucking thanks -- I turn that shit off on almost every channel.)
This ^ - being forced to use an external editor to type you response then copy/paste defeats the purpose. Plus Slack is such a POS anyway. I also hate the distraction of the crap notifications. Humans are not interrupt-driven creatures.
so long as we're dogpiling Slack, let me add in my complaint: You can't mute Slackbot, and Slackbot sends a LOT of dumb and pointless messages about channel management. At work they're constantly adding thousands of people to "watch party" or other random channels, then archiving those channels later on, and I keep getting notifications from Slackbot about them.
I was trying to keep Slack notifications unmuted in case my manager needs something from me, but I was just getting too much useless crap from Slackbot. Finally I had to mute it completely and tell him to call my cell if anything comes up
Huh, I enjoy a muted slackbot. Are you sure it’s not just that you can’t mute slackbot when a personal at-mention is “injected” in slackbot’s message? Because yea that’s annoying af. That comes from slack app developers not understanding the platform though. At-mentions should only be used with intention, and obviously an at-mention in a DM is completely unnecessary.
I am leaving a workplace after less than a year. And this is a major contributing factor. We work remotely but the company culture is to spend all day on Slack with synchronous responses.
When I started setting my status to DND they would keep messaging. If I don't respond within 5 minutes, they grab my lead to do the thing. I'm not repremanded but it just feels bad.
I started just exiting Slack for a few hours in afternoons to get through my work. So they started calling my cell. And if you don't pick up they call and text again.
I'm moving on because it makes my head hurt and I feel like I am getting nothing done as a result.
Slack is just part of the problem but I really think it encourages such culture.
I started my career and remote work with email and a VOIP phone on my desk to talk across borders. As crap as those tools were, somehow the Slack culture has made it worse.
At the very least, they're seeing when you're starting to type something, then decide not to type at all. Generally, when you do that the intent is send nothing. Not send "I almost said something, but nevermind".
Perhaps it should be more obvious to everyone if the particular form of communication you are using is meant to be synchronous or asynchronous. Talking on the phone is clearly synchronous and sending emails is clearly asynchronous. However everything else seems to have gotten confusing. People have started moving what was traditionally forum based long term asynchronous communication to Discord.
Yeah, this distinction is also melded with a persistent/live distinction. I know in reddit/hn/forum I can go back at the end of the day and read everything I missed, so it's 'obviously' asynchronous. Mentally, I don't feel the same way about slack, because it's hard to continue a conversation that happened earlier.. I guess threads could make this easier.
1. Forward a message to someone else. Sometimes you're not the best person to answer, but a colleague is. Forwarding should be easy and feature minimal friction.
2. Auto-deleting of messages in a DM after X _messages_ (e.g. only the last 100 messages are retained as scrollback). It forces you to document knowledge in more suitable forms; than having it lost in DM silos. Furthermore, it keeps conversations with your regular contacts more candid and natural; but retains the information and context for infrequent contacts.
> Forward a message to someone else. Sometimes you're not the best person to answer, but a colleague is. Forwarding should be easy and feature minimal friction.
Cardinal does this! You just share with someone else and you can expand or change the discussion as needed.
2 is interesting but I would definitely want a minimum retention of a couple days. It sounds awful to have your messages rolling over into the shredder mid-conversation.
Typing status is one of the worst UX misfeatures ever devised, and any app that includes them automatically comes across as amateurish, as though the project manager was just ticking boxes rather than actually bothering to consider the experience of using the app. I applaud any attempt to put more nails in this coffin.
Never heard of Cardinal either, and I like that they don't show typing status. If I see someone is typing in a Slack channel, or typing to me privately, it takes all my focus away until it is complete. Interesting though that they don't show their pricing on the website. Why's that?
Just typing something and then not sending a message puts me out of order for about 5 minutes while I'm waiting if there is a message coming. And then another 10 minutes while I'm speculating what he could have wanted from me.
Hey! We're super early on in our journey and are figuring out pricing. If you reach out through the site we'll get you set up with an account and work with you to figure out what's reasonable for your team price-wise.
We're focused on making sure pricing isn't per-user because it's annoying to pay an additional bit of rent for each new person on the team regardless of how much they use an app.
Chat is not asynchronous communication. It's not the best synchronous communication, sure, but it's certainly not asynchronous. Dropping typing indicators isn't necessarily going to make everything more asynchronous. There are business patterns and pressures that push us to need realtime or semi-realtime answers. And so often, the tool we use for that is chat. True asynchronous communication is a change in business, not just the tools we use.
Typing indicators can be useful in some situations. It's nice not having to wait for someone to finish a thought to know that an issue is being addressed. Heavyweights can jump into a conversation and pause it immediately so people aren't spinning their wheels trying to figure out something they really don't know much about.
It's also useful in 1:1 chats to know if the person on the other side is there or not. If I don't see an indicator (or read-receipt) in the next few seconds, I'll go make another cup of coffee.
MS Teams has the worst ever "typing status" implementation I've ever seen. In certain cases it shows you're typing by just having the conversation opened, which is extremely frustrating. Maybe just because the cursor is in the text box. It should only show typing if I have at least 1 letter...
Maybe it's because I use the Linux client, but my experience is that MS Teams is the worst ever implementation of every single facet of chat and video communications. It's really the one popular application out there that seems to have absolutely no redeeming factors, and I'm constantly confused by why it has the uptake it has. I can only conclude that it has more to do with companies preferring Microsoft than because they actually like it, or that it satisfies some policy/legal reasons, (eg. I've heard it's more GDPR compliant.) But purely as software, it's actually the most terrible user experience I've ever had. I really don't get it.
> It's really the one popular application out there that seems to have absolutely no redeeming factors, and I'm constantly confused by why it has the uptake it has.
I agree about MS Teams being very terrible. I attribute the uptake it has solely to a lot of companies already working with Office 365 (Outlook, Word, Excel, etc) and getting Teams for free -- so why pay for another chat app?
As we're snarking on MS Teams, let's talk about the fake DnD status, which has been deliberately implementated as a non-functional visual indicator only - it doesn't change the notification behaviour of teams at all, and if you work in culture that totally ignores status indicators, you will get pinged on teams all day even if you have DnD set. Skype for Business had a working DnD, and they chose not to keep the same functionality when MSTeams replaced it.
I’ve never heard of Cardinal but I liked the fact you could actually see what people were typing, character by character, in ytalk. Sped up a lot of conversations.
I found it often the opposite with ytalk. Yes, some people would just plow through it and make the best of things. And one could already be thinking about a response in real time.
But other people would find the need to correct every typo. And it was painful as crap watching someone with a 5 WPM typing speed and an affinity for typos to get through what they were trying to say. And eventually you move past thinking about a response in real time to screaming "JUST STOP TYPING ALREADY!!!!"
i've never used chat that does this, but i have seen a lot of claims it was a misfeature in google wave back in the day.
but still, i could see it being ok, more like verbal conversation.
i defnly agree w/ the linked article that the middle ground of "<soandso> is typing" is a misfeature. the only possible response to that information is to sit there waiting, which is annoying/pointless.
(but nothing beats verbal comms, still. downside of course is that it is "extremely synchronous" and does not archive well.)
> In most discussion apps that show your typing status, you feel pressure to wait for your peers to finish typing and sending a message before typing one yourself.
> wait for those above them to speak up first
Do others think of these as universal rules? Common? Situational? Non-existent?
Reading the OP, I fear I don't know the rules at all. I've participated in online forums in every medium and for a long time, and never thought about these. Maybe I've been disruptive or rude without realizing it. :(
OP here - we've done a lot of talking and interviewing people about their thoughts on other communication tools, and these are definitely common threads. That said, I don't know that they're universal. Also I think a ton of people judge themselves significantly more harshly than they judge others when it comes to communicating online at work (although yes, judging others harshly is also certainly a thing).
Typing status aside, there's nothing worse than a semi-realtime conversation.
A true realtime conversation, rapid chat replies, is fine and sometimes needed when something important is happening.
A true async conversation that is slow and may take days, is also fine.
A semi-realtime conversation though is the horror. A "realtime" conversation where for some reason the other party takes 2 minutes to type any response, every single message. The 2 minutes is enough of a wait to get enraged but too short to go do something else.
My solution: call the person unannounced. Just say: "I figured it'd be quicker to talk directly". This forces them to drop whatever the hell else they were doing and get to the damn point.
Intrusive? No. Not if you let me wait a full hour for what should be a 5 minute interaction.
I agree that it's frustrating, but your "solution" is extremely self-centered. I might not be getting much out of the conversation or even want to be a part of it in the forst place. In that case, if responding slowly works better for me, you forcing me to give you my attention adds a huge cost to my side of the equation.
To use an example: if you're texting me to help you fix your printer while I'm working, I might give you a small bit of my attention out of "generosity" (not the right term but close enough). I'm not getting anything out of this, but I'm not losing much either. But if you want to completely interrupt my flow and force me to give you all or none of my attention, fuck your printer. I have better things to do.
The situation is exactly opposite, allow me to clarify. I didn't start the conversation, so I'm the one being "intruded". Yet I reply. And we keep replying to each other in near real-time:
Peter: Hey
Me: Hey
Peter: Sally called, we need to do that thing.
Me: What thing?
Peter: It's in the document.
Me: Which one?
Peter: In your mail
Me: Found it. Question about document
Peter: Partial answer
Me: What about rest of answer
Peter: Don't know
Now imagine that dear Peter takes 2 minutes between every single reply. Demanding my full attention for an enormous stretch of time as he himself (that wants something from me) for whichever reason is slow, distracted.
It's Peter being rude here. The equivalent would be calling somebody and then leaving them waiting. You're the one that called. If you want my attention, put in your attention.
Some people are not that fast in either thinking or typing or are careful in their responses, or struggle with the language, some people are not comfortable talking on the phone.
Some are both...
I know at least one such person and I would not miss them for the world.
a 2 minute delay is asynchronous. You should be devoting 2% of your attention to keeping up the thread, and put the rest on other tasks, like everyone else does. What you're describing - turning a casual, asynchronous conversation into a demand for full attention and relying on the open 'channel' of the chat to somewhat force consent is an annoying move and would get you put solidly into the 'respond in a few hours when I'm done with everything else' pile.
> You should be devoting 2% of your attention to keeping up the thread, and put the rest on other tasks, like everyone else does.
As I understand, and IME, that's not how attention works. Switching has a large negative effect on focus for me, and when I'm interacting with others who try to do it, it sure seems like it doesn't work for them. I focus on one thing at a time.
You don't get it. I didn't start the conversation. You requested my help but can't be bothered to maintain a smooth conversation. If you take two hours to reply to a request you initiated yourself, that's not a problem for me, more like a solution.
I miss chatting with that! It was so interactive. I wonder if it could be translated to communication between more than two parties. It sure would be interesting to see a prototype of something like that.
I seem to recall seeing people use that around the undergraduate CS lab.
I should have mentioned that what was new (to me) when I was introduced to talk/ntalk was the concurrency of the split screen: both parties just clacking away at the same time
As a user of dial-up BBSes, I had often chatted 1:1 with sysops, nor as a sysop with users. The BBS sysop chat implementations were different/simpler; both parties were typing into the same space. This required manners: taking turns, letting the other people finish their sentence. That's the same like a Windows user being remotely assisted today: you and the remote admin can both move the mouse cursor or type into the same edit boxes.
I think its interesting that this article isn't about your opinion on typing status, its about the user story they are building that messenger for. Yet most of the comments are about an opinion on typing status in general. So... what do people think about the cardinal messenger and their exclusion of typing status?
One of the first things I do when evaluating any new app is navigate to /pricing to see whether they have clear pricing. If they don't, I bounce straight out of there.
I actually am in the market for a new chat app for a company I'm building and actively researching this right now. But until you have a /pricing page I'm not going to consider your app. I'm not interested in going through the rigmarole of contacting sales to find this out.
> Predictable pricing
Fixed rate pricing means your team will always know what you’re spending on Cardinal. We’ve got plans for teams of all sizes and usage levels, from startup to enterprise
Given that you don't actually have _any_ pricing, predictable or otherwise, this is currently a total fabrication and should be removed from your website until you sort this out.
I totally get it and support your take of not signing up for a product that you can't see public pricing for. That said, no one ever said we don't have pricing. It's just not publicly listed at present because we're very early in our journey, are learning a ton about helping teams on-board, and also focusing on helping communities that are currently not well served by other pricing models.
We meant the predictable bit to be more like a promise on our part. We'll talk to you, we'll give you clear pricing once we get a good picture of what you're looking for and how we can help you, and we'll stick with it so you're not thinking about the monthly price of our service on top of another 8-12 on average that you need to add for each new team member.
All that said, I'm going to review that on the site today and find ways to clarify what we mean so that we're clearer.
Please be more clear about this in your site's "Predictable pricing" section. Google results for "site:withcardinal.com pricing" link to 404 errors at withcardinal.com/pricing - this feels misaligned with predictability. Best of luck to you!
I wish Matrix/Element had optional read receipts and typing status. In some circumstances, I prefer to avoid the artificial time pressure added by the knowledge that others can see when you have read their messages, as well as the sense of commitment from starting to type a message.
We're very early on with selling Cardinal to teams, and are working hard to make sure we get the pricing structure perfect. If you want to reach out we'd love to help get you set up with an account that you can test for free, and we'll work with you to figure out pricing that makes great sense for your team.
We're committed to making sure that our pricing isn't per-user, because we don't believe in charging a team more every time they add a new member, regardless of how much that member uses the app.
Anyone remember Google Wave? My friends and I used to have conversations and being able to see live input on multiple threads was so good for speeding up conversations as you'd be able to see what they're all typing at the same time. Shame that got canned.
Wave did their marketing push when it was invite-only. The invites were going for $50-$100 on eBay. A lot of people like me weren't rich or well-connected enough to try it if they wanted.
It went on like that for ten months, then with very little fanfare they opened it to everyone. I didn't find out they finally made it generally available until three months later when they said they were shutting it down due to lack of interest.
I'd say there wasn't a lack of interest, there was a bumbling misalignment of its hype cycle and its availability.
> We all tend to operate within explicit and implicit hierarchies within our teams. Explicitly we know we have a manager we should defer to, and that there are executives and other roles that are important to the team. Implicitly we know there are people with more experience in particular topics or simply more social capital within the team. If you see someone above you in either of those hierarchies, you're more likely to pause and listen, and potentially to decide it's not worth the effort to bring your ideas forward.
> Our goal by removing typing indicators is to help teams build environments where anyone can think through an idea and bring it forward without having to wait for those above them to speak up first. We want everyone to feel included in discussions when they have an important idea to bring to the table.
We make a chat app for teams with a clear chain of command (I don’t know just going by context). By removing this one super-modern chat app quirk we will be able to say that we are “inclusive by default”, even though the whole context that your team operates in contradicts our stated aim.
I don’t know I just think that the hierarchy of the group trumps such trivialities.
I can see where that opinion on how I wrote it comes up. My meaning was more that most teams operate with a defined chain of command and another implicit seniority/culture structure. We're trying to find interesting ways to be more inclusive of people lower in those structures by not prompting them to wait for those above them to finish speaking before they go ahead and share their own ideas.
Hierarchies definitely trump those trivialities and are a huge hurdle to being more inclusive, but we also see these small tweaks as steps in the right direction.
I like how Signal just shows that the person exists as a contact. Whether they're awake or not, or active, or idle is opaque to me and I'm totally fine with that.
One of the reasons for text based chat/messenger apps, going all the way back to the earliest days of IRC, is the benefit in having asynchronous communications. If I absolutely need an immediate answer from someone or a realtime 1:1 conversation on something urgent I'll call them on the phone instead.
In things like facebook messenger I bet that 99% of users never dig into the settings to turn OFF the "show your activity status to other people" option.
For something like a work place communication tools such as Slack I can understand the purpose of setting yourself active or idle manually to indicate whether you're available for messages, or in a different time zone, or whatever. That's a different use case.