
Easy XMPP: The Challenges - ge0rg
https://xmpp.org/2017/08/easy-xmpp-the-challenges/
======
blfr
Improving UX helps somewhat but how do you convince users when most have
unlimited texts with their plan and Facebook Messenger, Whatsapp, Viber,
Telegram, Signal... to choose from?

I love the federation. I love the JID (so much better than a phone number). I
love the handling of multiple clients connected to the same account. But it
didn't take. Even my tech friends ditched it. IRC held strong against all of
the above and even Slack to some extent but XMPP just faded away.

Signal has a gif search and SMS/MMS fallback. What does XMPP offer to normies?

~~~
SamWhited
Maybe the problem here is that we advertise XMPP as if it were a service, when
it's a protocol that "normies" shouldn't ever have to hear about and care
about. They should just be using the "ChatPro Company Fancy Name" app on their
phone (which has fancy gif search), and not have to understand that it's
federated under the hood. XMPP doesn't _have_ to offer these things, the
service using it does. That's the part I think the XMPP community is missing
right now, a good public chat service that's federated and not strictly for
businesses.

~~~
blfr
OK but now you're targeting the provider. Why should ChatPro use XMPP?

Whisper Systems wanted to get (their clever version of) strong end to end
encryption in the hands of regulars users so they created Signal. Moxie has
blog posts[1] and long discussions why XMPP was unsuitable in which he answers
your idea: if vast majority of users will coalesce around ChatPro anyway, why
not get the benefits of a centralized communicator?

Others want to silo their users, or offer this and that fancy feature. Why
would they use XMPP?

And what is the benefit of using XMPP if it's really just ChatPro with a
mostly unused s2s federation port open on their server somewhere?

[1] [https://whispersystems.org/blog/the-ecosystem-is-
moving/](https://whispersystems.org/blog/the-ecosystem-is-moving/)

~~~
ge0rg
I think that ChatPro (or any other SV startup) is motivated in silo lock-in of
their users indeed. Normal people don't care much about it, they just move to
the next silo at some point.

I see an interesting niche for XMPP in business deployments, basically what's
currently covered by Slack, where you (as a user) often need to have multiple
accounts just to participate in different teams of your BigCorp.

XMPP allows a company to host their IM infrastructure on-premise or to use a
service like ChatPro, and there is a business interest in requiring federation
to allow easier interop with suppliers and customers.

We just failed to execute on that mission so far... ;-)

~~~
qznc
We need a GitLab for XMPP.

~~~
sytse
GitLab is looking at Matrix [https://matrix.org/](https://matrix.org/)

------
jd007
This post comes at an interesting timing for us. Our product has a real time
chat component, and currently is done over XMPP. We implemented using custom
components on top of Tigase, a Java based XMPP server.

Due to a variety of reasons our chat services overall have fallen out of shape
and we are in the process of considering a full re-write. Part of the
consideration is ditching XMPP altogether. It seemed to me that for products
where chat is only one of the features, XMPP feels like an awkward add-on,
requiring its own set of IDs and auth protocols.

AFAIK many popular chat services these days are no longer based on XMPP, for
one reason or another (e.g. scalability). Would like to hear any
recommendations on what the best ways to do real time chat services nowadays.

~~~
SamWhited
If you're making a service that's primarily chat, just use XMPP (disclaimer: I
used to work for a large chat system based on XMPP and got involved with the
protocol development when I did so). It scales very well (if it worked for
Google Talk and HipChat…), but it does require that you understand the
protocol. Network protocols have tons of subtle edge cases that will cause
problems; inventing your own is just a bad idea, even if the existing ones
require a bit more work to learn and get going with.

~~~
jd007
Did you guys write your own implementation or use an existing server?

~~~
SamWhited
We wrote our own server based on Python/Twisted (which has an XMPP
implementation in Twisted Words). The Twisted implementation of XMPP is a bit
outdated now, but it wasn't too terrible to work with. There may be more up to
date libraries; in Python land aioxmpp seems nice.

~~~
jd007
Thanks for the info!

------
starsinspace
Recently I spent an entire evening trying to get Gajim and ChatSecure work
together with OMEMO and delivery of messages to multiple devices. I'm a
technical person, but I failed, I got into all kinds of weird error modes, but
ultimately no success. What a frustrating evening that was, a waste of time.

I have stopped to recommend Jabber/XMPP to people. Too many times I did that
over the past 15 years and even when I succeeded in making them curious to try
out... in the end there were too many problems and things didn't work right,
and ultimately I too often looked like an idiot for recommending what is to
other people just a broken tool. In the end, people don't care about "it's the
choice that gives you freedom". People use the things that just _work_. And
honestly, I can't even blame them (even if I'm personally not willing to give
in to the privacy compromises that come with the other tools).

------
DiThi
After so many years fighting for XMPP, in my humble opinion it will be better
to use matrix instead.

XMPP was mostly killed by Google.

~~~
SamWhited
Why would matrix adoption succeed where XMPP adoption failed?

They've done a few good things (Olm), and don't have to worry about backwards
compatibility yet, but for the most part it seems like they're just
reinventing the wheel and re-discovering problems XMPP fixed 15–20 years ago,
except with a giant distributed graph protocol that doesn't scale very well
(not that this matters for most people that aren't, eg. Google).

~~~
sweden
Easy file sharing? Shared chat logs across devices? Easy encryption? Easy
voice chats? Video chats? Group voice/video chats?

These are all things that I have on Matrix out-of-the-box and that I have some
trouble getting on XMPP.

I run my own XMPP server, I have been doing it for a couple of years, but
getting some modern features is very difficult, if not impossible. But with
Matrix everything is quite easy.

~~~
ge0rg
File sharing, cross-device logs and encryption have been addressed in the last
one-two years, pushed forward by Conversations on Android. However, getting
that into other clients (e.g. on desktop/web) requires dedicated developers,
and this is where XMPP currently lacks a little bit - not for lack of
motivation but for lack of time.

~~~
dmitriid
"Addressed" as in "most of the XEPs are marked as experimental and are subject
to change".

~~~
ge0rg
That might look a bit weird on the outside, but this is how protocol design
works in the XSF. First you make a proposal (which is marked as Experimental),
then you implement it and wait for other people to implement it as well, and
then you look how well it works and whether it has rough edges that need
fixing. If it is considered good, it moves on to Draft and then to Final [0].

This process could be faster for sure, but that requires independent
developers to work on implementations and to share their experience.

[0] [https://xmpp.org/extensions/xep-0001.html#approval-
std](https://xmpp.org/extensions/xep-0001.html#approval-std)

~~~
detaro
Is there a set of mobile and desktop clients that support all these things you
said were "addressed" properly? People always parade Conversations, but if I
want phone-only I already have to many messengers.

Because if have to look through tables and bug trackers to figure out what
client/server combination I can use (and have to pester my friends to use(!))
you can't count something as "addressed" IMHO. I still use only a very basic
set of features with XMPP, because in my experience attempts to get anything
advanced are way to time-intensive to be worth it for the few buddies still on
XMPP, and I can't really push new people onto it that way.

------
hobarrera
Another very important thing is some form of free hosting.

I used to have my own prosody server a long long time ago. Eventually, I got
fed up, since very few people used XMPP. I just got rid of it and barely
noticed any difference.

If I had some place where I could register my own user@domain that matches my
own email, I'd use it for sure. But shelling out 5-10 USD a month for that
isn't worth while, not for me, nor any other early adopter (especially when
almost any other IM service is "free").

~~~
ge0rg
There are many free community servers, but you can't host your own domain with
them. If this is a requirement, you can have a paid hosting for 1€/address/mo
at
[https://account.conversations.im/domain/](https://account.conversations.im/domain/)

~~~
hobarrera
That's exactly my point; having a paid-for entry barrier is already to high
for something lacking adoption.

And since JIDs look email-like, people prefer them to BE exactly their email.

------
dade_
I am surprised this made it to the front page. XMPP is no longer relevant,
please focus your efforts on a protocol that better meets your requirements.
No matter what those requirements are, I would have hard time believing that
XMPP is it.

------
5ilv3r
Getting ejabberd set up to do encryption and file sharing was a huge pain in
the butt. Worth it because I don't like SMS, but still freaking crazy hard to
get running through a firewall.

------
dmitriid
XMPP: Captain Obvious edition

Add this article to the one above:
[https://gultsch.de/xmpp_2016.html](https://gultsch.de/xmpp_2016.html)

It doesn't help that most of the features expected of a modern chat are
"warning: experimental" XEPs and supported by at most one chat client and at
most one XMPP server.

Bazaar indeed

~~~
microcolonel
Yeah, frankly I think the technical specifics of XMPP are why I need about ten
incompatible messaging apps with mostly the same features.

It simply has never been straightforward enough to do the right thing. Unlike
with functioning protocols like HTTP and SMTP. XML was a fundamentally poor
choice for wire and processing efficiency, XEPs don't get ratified quickly
enough, and there's a chicken-and-egg problem between server and client
software in implementing them even if they do.

------
Rjevski
XMPP is obsolete and irrelevant - please stop wasting your time with it.

