(2023-04-07) Modern instant messaging solves non-existing problems
------------------------------------------------------------------
Alright, enough of this meta-content (posting on Gopher about Gopher), now we
can talk about real stuff.

Not so long ago, I was advocating that everyone should move to Matrix from
whatever proprietary crap they're using right now: Discord, Slack, WhatsApp,
Viber, Telegram etc. Yes, everyone with a slightest bit of intelligence
understands why Matrix really is orders of magnitude better than any of
those things. But I have stopped advocating for it. For everything users
already got used to see in modern messengers, it just makes it more
open-source, secure and distributed. Sorry, federated. That's an important
difference. With a distributed system, I still would be able to connect to
the KaiOS-themed Matrix room on mozilla.org when my homeserver on
anonymousland.org went down. But with the federated system that Matrix is, I
couldn't. And that's just the first issue with Matrix I spotted right on.
Tox, for instance, doesn't have it, as it is truly distributed. Just saying.

The second issue is that Matrix is just as overengineered as just about
everything else these days. It works over HTTPS. With JSON transport.
Sometimes even with WebSockets. That's an enormous amount of transactional
overhead, parsing and transport-layer cryptography. It is, in fact, a
glorified federated webchat system that makes even XMPP (which is already
bloated beyond repair with all its XML) look like Gopher in comparison to
Web 2.0. I can't imagine running a Matrix client on a
MIDP2.0/CLDC1.1-enabled phone with GPRS-grade connectivity, 16MHz CPU and
32KB of RAM. Yes, not megabytes, but KILObytes. And let me tell you
something right away, to send a message to all Internet communication
protocol developers of current and future generations: if a client cannot be
made to work under these specs directly with your protocol, it already sucks
by default.

The third, and IMO the most important issue, is that Matrix doesn't really
offer anything that would facilitate its mass adoption. For noobs, any
simple but reasonable argumentation like "it's just like your favorite
crapssenger with all the same features, but doesn't spy on you by design" is
definitely not enough for them to switch, especially that they, to support
their inherent laziness, often employ the chicken-and-egg fallacy like
"everyone around me doesn't use it, so why should I, who will I talk to if I
join there?". For tech-savvy people, Matrix doesn't bring back simplicity
and control, as no one can single-handedly recreate a basic chat app over a
weekend from scratch, starting with bare TCP sockets. Security-wise, it
makes life a bit easier, but that's about it, and that's nothing IRC/XMPP
over TLS or Tor/I2P couldn't achieve.

Speaking of XMPP, I see a stunning similarity. XMPP was initially created as
a response to the most popular crapssenger of the time, the father of all
crapssengers: ICQ. Its protocol was so simple though that it quickly became
reverse-engineered and alternative clients appeared at the speed of light.
Whoever owned ICQ (at different times, it was different companies) didn't
like the situation and constantly changed the official protocol, and these
changes got reverse-engineered and the loop repeated. It was a kind of an
arms race between official and unofficial client developers. XMPP/Jabber
protocol was aimed at creating a fully open and federated messaging platform
as an alternative to ICQ - doesn't this remind you of anything? And, just
like with Matrix, Jabber got much more complicated than the protocol it was
rivaling. Over the time, it turned into a heap of RFCs and XEPs no one knew
for sure which to implement, and caring about the userbase just shifted
somewhere far away. In case you're wondering, this is the future I predict
for Matrix as well.

On a larger scale of things, XMPP ultimately failed, along with ICQ. Why?
Well, as I said, most people are lazy. And someone very clever decided to
prey on their laziness. Someone, and I don't really know who did this first,
told them: "you don't need to think up your user ID or remember the one we
gave you, you also don't need a password: your phone number already is both
your ID and the method to authenticate you". And people really started
falling into this trap, and the brave new world began. Later on, most
mainstream crapssengers returned to the notion of passwords but (just think
about it for a sec) as an additional security measure, and they still use
your phone number as your sole ID and optionally abuse your contact list
data. Even the seemingly open-sourced Signal does this, which in fact tells
a lot about who might be really interested in developing this "most secure
messenger in the world".

See what I'm saying? Invent a problem people don't have, convince them they
do have it and it really is a problem, and offer a solution for it. That's
how mainstream software development has been working for at least the recent
25 years (maybe more but I don't have enough visibility on things that
happened before). And even beyond software, that's how changes we don't need
are imposed on us in general.

So, what are my proposals instead of using inherently broken "modern
messengers" and their open-source counterparts like Matrix?

- use Tox if you're really concerned about privacy more than about resource
consumption;
- use SMS/RCS (where available) if you still want to use your phone number as
the sole identifier;
- use IRC (+bouncers if necessary) for team-wide or individual instant
messaging and its SDCC extension for direct file sending;
- use plain old good email for non-instant messaging with attachments (and,
whenever you don't want to invent an ID for some other service, using your
email address as an ID is _much_ more preferable to your phone number);
- use SIP+ZRTP for voice/video calls over the Internet, or friggin' Jitsi
Meet if you really need some Zoom-like presentation experience (although Tox
also has got you covered here, it's just a browser-only alternative option);
- use BitTorrent to share large files.

Although, BitTorrent and other simple P2P protocols (simpler than Toxcore)
and what one actually can do with them is a topic for another time.

--- Luxferre ---

P.S. Switching to 78-char width from now on. Will explain later why. Probably.