1. 7
  1. 4

    As former user of XMPP, let me try a different list:

    1. XMPP is a morass of partly interoperable servers and clients, each supporting different long lists of extensions.
    2. Stuff doesn’t/didn’t work. I have a fine camera and a microphone, you do too, so does XMPP mean we can talk? The answer involves extensions in the plural and is too complex for my brain as user. My phone is always on, can it get notifications without burning through its battery? The answer is again too complex for my brain.
    3. Google stopped talking to other XMPP servers after a (rumours say debilitating) spam attack. AFAICT XMPP still doesn’t have effective defense against this particular attack, which doesn’t make me feel good about the readoption by Google or others.
    4. Most users used a few servers (during the time when I still used it actively), so XMPP suffered the sluggishness of decentralised protocols (see 1, 2) but without getting their advantages.

    I have busines cards with an XMPP address. I stopped handing those out long ago.

    1. 3

      Eh, I’m going to disagree with some of these.

      1 and 2 are easy to answer. For the client, you should use Dino on the desktop, and Conversations or Monal on mobile depending on your platform. If you want to use another client, you are now presumed to be an expert and able to solve any problems you have with it. For the server, you should use a server set up by someone who is up to date with the current state of XMPP; when you connect to it from Conversations, the server info should show that all the requested features are fully supported.

      3 is fair enough, but honestly, SMTP doesn’t have an effective general defense against spam, either, and that doesn’t stop people from using it. My understanding was that Google stopped talking to other XMPP servers mainly because they had enough marketshare that they didn’t need to anymore, and preferred to lock their users in.

      I don’t know about 4, or whether it’s still true.

      1. 3

        Are you saying XMPP is a federated protocol with zero to one recommendable clients per platform? IF that’s an accurate assessment then I think it can be added as a fifth problem on my list.

        In re Google, you can explain anything with “because is evil”, “because wants lockin” etc, and a lot of lazy people do. You should at least consider the possibility that they dropped XMPP because it wasn’t used enough to deal with the hassle of contact-request spam. Spammers used XMPP contact requests to get added to people’s contact list and then sent spam via SMTP. There was a bad wave of that, Google had to choose between either decreasing the spam-sign value of people’s contact lists or getting rid of those XMPP contact requests, and used an axe to do the latter. SMTP was important, XMPP was just nice to have.

        Now, that’s hearsay. (Almost everything I’ve heard about Google’s antispam mechanisms is hearsay.) You get to judge: Is it more or less plausible than just “preferred to lock their users in”?

      2. 1

        This is a reply to myself because it’s a digression:

        I noticed that the developers of a couple of XMPP tools didn’t use XMPP addresses. They suggested that one might talk to them via XMPP, but by sending a private message to nickname in chatroom rather than by a plain XMPP message. IRCish behaviour rather than XMPPish. I didn’t understand why, but whatever it is, it suggests to me that there’s an impedance mismatch somewwhere. I’d love to understand better.

        1. 1

          XMPP is a morass of partly interoperable servers and clients, each supporting different long lists of extensions.

          The situation is not so dire as you paint it.

          The answer involves extensions in the plural and is too complex for my brain as user

          Live Audio/Video chats are a complex topic. Even more if you go for multi-party conferences. But you as user should not encumber your brain with it, that is something for the developers implementing those protocols. :)

          My phone is always on, can it get notifications without burning through its battery? The answer is again too complex for my brain.

          That, again, is a complex problem. The basic solution is simple: Use XEP-0352 Client State Indication. The tricky part is the magic where the server has to decide when to push a notification to you. Do you want it for every message? Or just for some? Maybe dependent on the sender? Maybe dependent on the channel? Or only if someone mentions your nickname in a chat? And this only for same chat rooms?

          1. 1

            I agree with your list, but have to note that 4 (and to a lesser extent 3) seem to be true for pretty much every federated/decentralized system in existence, which suggests a more fundamental problem with the concept of federated services. Every once in a while there’s a post on here philosophizing about that, e.g.

            1. 1

              Sure, I know…

              Federated services need to be designed so that there’ll be few interop-relevant feature differences, because getting new changes widely deployed is so difficult. XMPP suffered because it had that problem, and suffered particularly badly because was heavily oriented towards extensions, and therefore really needed ease of deployment and interop.

          2. 3

            Most people’s opinions about which chat protocol they’re using is roughly analogous to their opinions of the politics of Ethiopia: wut? idunno.

            It’s not that people think the politics of Ethiopia are unimportant, it’s just that a day is just 24 hours, and they’re also worried about the politics in their own country. And climate change. And this cute (guy|girl) they want to date. And if they can find affordable housing. And so forth and so forth.

            Some people care a lot about gender equality, others about veganism, and yet others about a more decentralised web. That’s all fine, and you can’t expect everyone to invest a lot of time/effort in everything, even if they agree in principle they should be.

            So what does that mean? It means we should focus on just providing a good user experience, instead of trying to lure people with “it’s decentralized!” I go to https://xmpp.org and how do I get started? The main page has no information outside of technical information. I go to the tiny “getting started” button hidden in a disused lavatory with a sign “beware of the leopard”, and then I’m presented with a bunch of different clients and a huge list of public servers. Massive amount of paralysing choice. Hell, even as a tech guy familiar with XMPP I’d need 15 mins to analyse all of that (which client do I run? Which server is reliable, and can be trusted?)

            Compare this to pretty much any proprietary chat application, and you go to their site (or install their app) and they slap you with a SIGN UP NOW button in the face, you fill in your email, phone, and perhaps a password, and you’re good to go.

            In other words, we need to sell applications, and not protocols. Imagine car sales people going on about the internals of the engine. Sure, some people love that stuff. Most of us? Don’t care so much. Sure, it’s an important part, but what people are really interested in is the entire product. And as an entire product, a lot of the time proprietary services just do a better job for a lot of people, especially in the onboarding phase.

            Mastodon does better, on this, although on https://mastodon.social I can’t just sign up, but they want to “review” my application? Meh. Much more effort than just signing up on Twitter.

            1. 2

              As a current active user of XMPP, here’s my list:

              1. No one uses it except a retrogrouch subset of tech people, plus my immediate family.
              2. OMEMO encryption is supposed to support multiple devices, yet somehow Dino can never read messages that I read in Conversations.

              That’s about it.

              1. 1

                I prefer the lists in other comments. The original post reads like “Hey! It failed due to something basically nobody has to care about! Now let’s go get big platforms to bring back features they already deleted.”