Messenger X won't fix anything

I’ve been annoyed by the state of smartphones lately, and one of the top contenders in “Most Annoying” is instant messaging. Currently, the options for instant messaging outside of communities like tech (IRC), gaming (Discord, which has a bunch of other problems), etc. is an app.
At the top of this list have been WhatsApp, iMessage, Signal, and Telegram, to name a few. What similarities do all of them have? Requiring a phone number to sign up.

It’s not just about the phone number though: In Europe, you’re almost forced to use WhatsApp to be part of a social circle. It doesn’t matter if it’s just talking to someone quickly over a text, organising meetups or catching up with an old friend: it’s all done over WhatsApp. I’m sure this applies to other regions as well, just replace WhatsApp with iMessage, for example.
The situation has gotten a bit better with the recent adoption of Signal, but even though Signal is viewed as the saviour to the mentioned services (and it is substantially better due to it being open-source and implementing an open standard, for example), it really isn’t, because it doesn’t fix the fundamental mistakes that instant messengers have had in the past years: It requires you to have a phone (and a phone number) to use it.

Requiring a phone (number) to use a messaging service is… weird. It heavily ties the act of instant messaging to a phone – and simultaneously excludes people that don’t have smartphones from the massive amount of social interactions these messengers see.
But, it doesn’t stop there. Other problems include Signal being centralized and not allowing other implementations than the official clients. You’re not allowed to spin up your own server for decentralized communication but you are being tied to the official Signal servers, making these a single point of failure. In addition, the fact that 3rd party clients are not allowed means you’re forced to accept the decisions that the developers of Signal make; may it be that you can’t set a custom status message or cryptocurrency being baked into the clients. You have no control over this and you have to eat bad decisions up, just like you have with the other messengers.

How do we solve this issue, though? What’s the correct way to ensure that the next instant messaging client doesn’t suffer the same downsides?
Contrary to what a lot might believe, it’s not another app. Instead, it requires a proper protocol to be defined, which supports at least the following features:

  • Not tied to a phone and/or a phone number
  • Minimal but feature rich enough to see wide adoption
  • Decentralized servers (possibly Peer-To-Peer)
  • End-to-end encryption
  • Allows 3rd party clients

These should be the most important ones, for the following reasons.
To support these features means being unable to be censored, keeping the user be the focus of the app (in contrast to a company), allowing a rich ecosystem of implementations with different look and feel (as well as system requirements), and not requiring users to own specific hardware to interact with other people.

To my knowledge, Matrix has been the latest (popular) attempt at this, but it’s falling short of a few things. As someone that doesn’t use the protocol enough, encryption just seems too complicated when it should be transparent and the user shouldn’t have to think about it. In addition, the only viable client I’ve seen is Element, a client heavily based on JavaScript and specifically Electron for a desktop app, which makes the client feel sluggish, especially on older hardware.
Adding to this, the only server implementation I’ve seen is written in Python and, supposedly, is very taxing to run, especially on small servers.

Matrix, so far, has been a good try, but it has fallen a bit short on some things. But, I could be wrong, and I’m open to being told better!

The state of instant messaging is not a great one and can be greatly improved upon, but it’s a big undertaking that needs multiple people to work on. And even then, adoption is not guaranteed. It’s by no means a trivial task and takes a lot of work to do, but the outcome is one that’s undoubtedly wonderful for everyone involved, creators of any kind as well as end users.

Personally, I’d love to be part of a team of people working on a better instant messaging experience, both in the technical and user sense, so if you do, please don’t hesitate to contact me.

Do you have a comment on one of my posts? Feel free to send me an E-Mail:
To participate in a public discussion, use my public inbox: ~witcher/
Please review the mail etiquette.

Posted on: September 10, 2022

Articles from blogs I read

OpenSSH introduces options to penalize undesirable behavior

In a recent commit, Damien Miller (djm@) introduced the new sshd(8) configurations options, PerSourcePenalties and PerSourcePenaltyExemptList, to provide a built in facility in sshd(8) itself to penalize undesirable behavior, and to shield specific client…

via OpenBSD Journal June 7, 2024

Your Node is Leaking Memory? setTimeout Could be the Reason

This is mostly an FYI for node developers. The issue being discussed in this post has caused us quite a bit of pain. It has to do with how node deals with timeouts. In short: you can very easily create memory leaks [1] with the setTimeout API in node. You…

via Armin Ronacher's Thoughts and Writings June 5, 2024

The state of SourceHut and our plans for the future

Good morning! It’s been a tough year for SourceHut and I know many of our users are waiting to hear from us. Our last update was the post-mortem following the DDoS attack we sustained in January, and we have some additional news following this update as well…

via Blogs on Sourcehut June 4, 2024

Generated by openring