XMPP: The Gem of Instant Messaging
113 points by todsacerdoti 8 hours ago | 112 comments
  • snvzz 7 hours ago |
    Refusal to do a flag day to implement ACK ultimately resulted in board dissolution, shitty unreliable protocol with zombie presences and lost messages.

    Eventually, the community just walked away, to IM systems that actually work somewhat reliably.

    This is how XMPP fell into irrelevance.

    • MattJ100 6 hours ago |
      I'm not sure what you mean. The XMPP Standards Foundation still has a Board, as that's required by the foundation's bylaws.

      "Flag days" in a decentralized network have to be used with caution. Ask whether it's better to communicate without a specific feature, or whether it's better to split the network into fragments which are unable to communicate with each other. The former is almost always preferable, however we used the "flag day" approach for mandatory server-to-server TLS, for example (which actually isolated Google Talk from the main network).

      As for acks, those were first defined in 2004, and have generally been implemented since the beginning in clients that need it (e.g. mobile clients, and every client since WiFi and laptops became ubiquitous).

      I can think of a number of reasons that XMPP is often overlooked when it comes to modern IM, but this is a weirdly specific thing to pick out, especially when I can hardly remember a time it wasn't implemented everywhere.

  • skeptrune 7 hours ago |
    I think the big issue with XMPP are the clients. Element is so much better that it's hard not to recommend Matrix to people despite its bloat and metadata leakage problems.

    JMP/Snikket for tying a normal phone number to your XMPP @ are really convenient, but the clients remain a problem. Plus, SIP dialers are not supported on IOS afaik.

    I am really surprised there isn't a venture backed company pushing XMPP forward. Maybe people have tried and realized it's not viable.

    • singpolyma3 6 hours ago |
      I'm curious which apps you've tried and what the deficiencies are you find in them.

      There are a number of companies in the ecosystem. Most have chosen not to pursue VC money in order to keep things going much longer. While a venture backed company can have success, most flame out eventually in my observation.

      • gog 3 hours ago |
        Is there an iOS app that supports push messages?
    • astro1 6 hours ago |
      Sure, Element syncs much faster than other clients (FluffyChat is unusable for Instant Messaging) but leaving the browser tab open still thrashes one CPU core.
    • mxuribe 5 hours ago |
      I think its not only the clients...Rather its what the server side supports and to ensure clients align with that....And i think among a group of techy friends, well, they can coordinate the proper settings...but it becomes thorny when involving some not-techie buddies...Of course its possible, but, you know, the onboarding process is less than ideal. I say that not being an xmpp guru of coruse, so YMMV.

      > I am really surprised there isn't a venture backed company pushing XMPP forward. Maybe people have tried and realized it's not viable.

      Actually, WhatsApp would fulfill your definition there. They are/were a startup whose entire product/platform is an xmpp client (using their centralized server/instance). Now, whether they pushed "xmpp forward", or merely would be considered pushing a chat platform and who cares whats under the covers...well, that i leave as an exercise for you or others to decide/opine. ;-)

      • zaik 5 hours ago |
        WhatsApp's contributions to the XMPP ecosystem are nil.
      • singpolyma3 4 hours ago |
        If you want to onboard a group of people you don't point them at "XMPP" the technology. You point them at a service or product that is built on XMPP, like Snikket.
    • SamWhited 5 hours ago |
      Slightly rambling partial agreement ahead, sorry, I struggle with how I feel about this and need to write something longer somewhere:

      I think there's a tendency to dismiss this argument in the XMPP community (but there's a lot of truth to it, I choose to use the XMPP desktop clients but none of them are as nice to use as any big commercial IM providers client), but also a tendency for people to make this argument without realizing that they're comparing open source projects run by one or two people to VC funded projects with a company backing them. Of course Discord or Element or whatever will be "better" in some ways, they have a team and millions of VC funding behind them. However, one of the many reasons I chose to use XMPP back in the day when I was first evaluating whether to use it or Matrix, and one of the big reasons I got more heavily involved in the community later, was specifically because the standards body wasn't strictly tied to a company looking for VC funding (and all the individual client/server projects I've contributed to are the same). But, this does mean there aren't really any clients that I'm in love with (but there are clients for every random niche platform imaginable, which I think is probably more important personally).

      All that being said, try Snikket if you haven't. It's relatively new, but I think they're really doing a good job of creating a suite of clients that can be recommended to "normies" who don't want to sacrifice shiny graphics for the sake of using something that's a bit more free from VC influence.

    • pigeons 4 hours ago |
      I'm trying to think of a way to add some value other than anecdotal disagreement, but I am just shocked at this statement because I can't think of a single piece of software I think Element is "better" than.
  • mindcrime 7 hours ago |
    I love XMPP. The phrase "the gem of Instant Messaging" really resonates here. I run an ejabberd instance and it works great.

    For anybody who wants to see a random interesting (well, interesting to some) application of XMPP, I recently put together a small demo of using XMPP with Jason[1] to connect AgentSpeak[2] agents to chat.

    https://github.com/jason-lang/jason/discussions/118

    [1]: https://github.com/jason-lang/jason

    [2]: https://en.wikipedia.org/wiki/AgentSpeak

  • aidenn0 7 hours ago |
    We evaluated some options at work for self-hosted chat about a decade ago. XMPP lost out due to the lack of a good iPhone client. Not sure if things are any better now.
    • fsflover 6 hours ago |
      Did you choose Matrix?
      • aidenn0 5 hours ago |
        Mattermost.
    • singpolyma3 6 hours ago |
      There are a couple iOS clients now but it's an area of active work for sure.
    • lxgr 6 hours ago |
      There are now a lot of XMPP extensions to fit the mobile messaging use case better (usage of push notifications instead of a persistent TCP connection etc.), and at least two clients using them: ChatSecure (although the push server seems to be broken currently) and Monal.

      Due to the lack of anyone to chat with on XMPP, I can't really speak to the day-to-day usability unfortunately...

    • zaik 5 hours ago |
      Monal on iOS is making a lot of progress recently.
    • Andrew_nenakhov 2 hours ago |
      Btw we are working on a really great iOS client for xmpp. I think we'll release it in a few months.
  • arcbyte 6 hours ago |
    XMPP lost because the spec is overcomplicated and hard to implement. As a result, good clients never materialized and innovation was really hard to do.

    Everything in this article is an offshoot of the overcomplicated spec.

    • pixelatedindex 6 hours ago |
      Is there a “modern” equivalent to XMPP? How does it compare to the matrix protocol?
      • singpolyma3 6 hours ago |
        The modern equivalent to XMPP is XMPP. Like every other healthy and alive protocol it evolves over time to meet new needs.
        • xg15 6 hours ago |
          Is it actually "alive" still?
        • DennisP 6 hours ago |
          Given the context above, does that mean the modern version is no longer "overcomplicated and hard to implement?"
          • SamWhited 5 hours ago |
            I don't know that it was ever "over complicated and hard to implement" (see my response to the thing you're quoting above, I think), at least, not any more so than any protocol, but I'm still not really sure what the specific complaints are when people mention this, maybe you could elaborate on what's hard to implement? Most people just grab an XMPP library and go, you don't normally have to implement XMPP itself to make a client (just like you don't implement HTTP when you want to make a request, you go snag a library that does this for you).
          • Lammy 4 hours ago |
            If one tried to design a new protocol and implement All The Things then it would end up just as complicated, except now their user base would be split. XMPP of a decade ago didn't support lots of features that modern users will expect if they come over from other messaging systems.
      • mindcrime 6 hours ago |
        > Is there a “modern” equivalent to XMPP?

        Yes, it's called "XMPP".

      • SamWhited 6 hours ago |
        Matrix and XMPP operate in very different ways Matrix is a graph database synchronization protocol, whereas XMPP is event based.

        Let's use group chats as an example: with Matrix if you join a group chat hosted on another server, the entire history of the chat gets synced to your server. This means it's very resource intensive to scale, but very reliable since you pretty much always have chat history available and if one server goes offline you can keep the group chat alive on one of the other servers (let's ignore netsplit style concerns for now, it's not really relevant to the high-level nature of the question). XMPP on the other hand is event based, this makes it much less resource intensive, but means that if the server you're trying to communicate goes down you don't have access to that chat room anymore (some servers mitigate this by using traditional high-availability techniques like clustering, but that's not really a protocol thing, I'm sure some Matrix servers also do clustering as part of their scaling strategy).

        As far as features specifically related to IM, both support most of the same things, it's just a question of whether clients have implemented them or not in either protocol.

        • dingnuts 5 hours ago |
          The real difference between XMPP and Matrix is that I can read the discussions about XMPP on this site without the CEO of the company that pretends not to own it, but does de facto own it through some kind of wannabe Sam Altman "it's actually a non profit that happens to be controlled by my for profit company" move, coming into the comments to denigrate anyone with an ounce of criticism for his product
          • SamWhited 5 hours ago |
            (oh yah, FWIW he's done this to me too; shows up and accuses me of being biased against matrix and not disclosing my affiliation with XMPP stuff… meanwhile he controls a company and gets paid by them, I just chose to work on XMPP open source stuff instead of Matrix stuff and don't get paid for it)
            • tcfhgj 4 hours ago |
              Not being paid doesn't mean less biased. To the contrary: I expect a high bias since you choose to spend lots of time on it despite not being paid for it
        • Arathorn 4 hours ago |
          Realising the irony of commenting on this given the sibling, but for the sake of accuracy:

          > with Matrix if you join a group chat hosted on another server, the entire history of the chat gets synced to your server.

          This is not true. By default most Matrix implementations sync the last 20 messages in a room when a server joins that room, pulling in other messages only on demand if a user back-paginates the room. Room state (i.e. key-value metadata about the room) also no longer gets synced in atomically at join - instead it gets pulled in in the background (so-called 'faster joins': https://element-hq.github.io/synapse/latest/development/syna...).

      • ensignavenger 5 hours ago |
        Based on my research, but no deep implementation experience with either:

        XMPP continues to advance, so could be considered modern if you use the latest versions.

        Matrix is more of an event sync protocol, consisting of a server to server sync protocol and a client to server protocol (sort of like email). It is mostly used for chat, but appears to be more flexible. Matrix uses JSON and HTTP.

        XMPP is focused on chatmessages. In many ways XMPP and Matrix are similar. XMPP is based on XML and originally used TCP as the transport protocol, but has been extended to use HTTP now as well.

        EDIT: I think a clearer way to describe the basic difference is that Matrix syncs Matrix Events across servers, whereas XMPP facilitates exchanging messages with clients. Most folks use the protocols to exchange chat messages. It is the way this is accomplished by the corresponding servers that differs significantly.

        • ptman 2 hours ago |
          Matrix is described as a distrubuted graph database. Chat is just the most common use case, but there are others.
    • righthand 6 hours ago |
      Ah yes, because developing tech is about winning marker-share only. That’s exactly why XMPP was developed in the first place.
      • shadowgovt 5 hours ago |
        Market share matters for a communication system though.

        Why bother to run a server or install a client if there's nobody to talk to?

        • righthand 5 hours ago |
          It matters in the “I stumbled into this public chat room” sense. It doesn’t matter in the “we need a private comms channel” sense.

          At the end of the day, the point is that XMPP was never trying to “win” against IRC, ICQ, AIM, Matrix, et al.

    • radarsat1 6 hours ago |
      Not sure I buy that explanation. More likely is thst there's too little business advantage to being compatible with others and too much business advantage to having people inside your own ecosystem. Simple as that. There's just very little motivation for compatibility between these systems unless you are open source.
      • xg15 6 hours ago |
        This. Thinking that the complexity of a spec is the primary obstacle to adoption seems logical at first. But it can't be true if you consider that the specs of all kinds of "foundational technologies" we use daily - HTML/CSS/JS/the DOM, IMAP, USB, IP, etc - are not just complicated but often downright messy, full of overengeneered, inconsistent or contradictory features.

        I'd argue that the "beauty" or "ugliness" of a spec can make the life of the particular programmer who has to implement it slightly easier or harder - but it has very little effect on whether it is implemented or not. That's a product decision which follows completely different considerations.

      • CharlieDigital 6 hours ago |
        Agreed.

        Back in the 2011 timeline, I printed and read the spec front-to-back to implement what was effectively an "early Microsoft Teams" (a real-time, chat-oriented client connected to SharePoint)[0] using XMPP.

        The spec is very easy to read, understand, and implement.

        I think on top of your points (and maybe adjacent or extended from that point) is that I think some entities like Google were probably seeking more wire efficiency over the XMPP protocol and possibly wanted to innovate/iterate faster. There was a wave of "real-time" collaborative apps at that time and I can appreciate the need for teams to innovate faster.

        [0] Short video: https://www.youtube.com/watch?v=WG_W0VxjzbM

      • WD-42 6 hours ago |
        This 100%. It’s hard to serve ads to someone using your service through a text based irc client running 24/7 on a vps
      • jauntywundrkind 2 hours ago |
        My frustration with "too complex" is high. Criticism in general often devolves to very broad heresay & un-backed opinions, but man, too complex is just one of the weakest by far at this.

        Few people have spent the time to get to know a protocol or system well enough to know what really was unnecessary or bad. The ability to crash out & then talk smack is high. Most haters haven't even earned that right!

        XMPP is pretty simple to get started with. Theres not that many extensions you "really should have". The extension model let them grow & adapt well over time, giving more weight to the underlying eXtensibility model. I tend to agree it was mainly a push for privatization & lack of interest in economic mutualism that lead to drift away from XMPP.

    • SamWhited 6 hours ago |
      I've done a lot of work on XMPP related projects and some specs, and I'm not sure that this is true. I mean, it's definitely complicated, that part is true, but of course it is, it's a protocol and it's not more complicated than other specs as far as I can see. Not to mention that, like the various clients for different platforms that this article mentions, one of the big benefits of XMPP over other protocols is that it has libraries for every major platform, so most developers will never need to implement the spec.

      TL;DR most people don't implement HTTP when they want to make a request, they add a dependency on whatever their languages HTTP library is. XMPP is the same.

    • dogleash 5 hours ago |
      There are good clients. Whatsapp, Grindr, Kik, League of Legends, Fortnight, Eve Online.

      They have something in common though: not letting users communicate outside their own ecosystems.

      • zaik 5 hours ago |
        Good clients which let users communicate outside their own ecosystems: Gajim, Dino, Conversations, Monal, Movim, ...
      • rkallos 4 hours ago |
        For what it's worth, Grindr's chat hasn't been powered by XMPP since April 2024.
        • ptman 2 hours ago |
          Please elaborate. Why? What is it using now?
    • xorcist 5 hours ago |
      Compared to what? Compared to IRC, yes, but it's not really comparable.

      The closest comparison is probably Matrix and that is a pretty complex protocol too.

      • rw_grim an hour ago |
        You might be surprised how modern irc is nowadays... https://ircv3.net/
    • rw_grim an hour ago |
      You should look at the matrix specs, include the new matrix 2 stuff...

      My point is, this argument is a bad one as it expects people to get the protocols right on the first try and that's never going to happen.

  • jeffnappi 6 hours ago |
    XMPP and specifically ejabberd are what made WhatsApp possible to build with ~50 people at absolutely massive scale (~400M MAU @ 2014 acquisition).
    • plussed_reader 6 hours ago |
      So really it's just about ZuckBook not paying forward via OSS?
      • shortrounddev2 5 hours ago |
        Zuck didn't create whatsapp, he only bought it
        • plussed_reader 4 hours ago |
          Go on....
  • WD-42 6 hours ago |
    I really miss the days of being able to use pidgin to talk to everyone
    • roflmaostc 6 hours ago |
      Haha yeah. Within Pidgin I used ICQ, XMPP (over my own VPS), Skype, Facebook messenger, ...

      Now I have to use different apps for Signal, Element, Slack, Discord, WhatsApp, Telegram, ...

      • WD-42 6 hours ago |
        Facebook via xmpp was the last thing Facebook was good for. It was nice to be able to strike up the occasional conversation with an old school friend or acquaintance. It really does feel like everyone is online more than ever yet somehow more isolated.
      • luplex 5 hours ago |
        I can recommend beeper! I don't use it for encrypted messengers because I don't want to accidentally leak incoming messages that were sent with the expectation of e2ee. But it's great for catching a few of the odd ones.
      • ptman 2 hours ago |
        Beeper (built on matrix) has convenient bridges to lots of services. You can use the hosted service or self-host (https://github.com/beeper/bridge-manager) or you can host plain matrix using https://github.com/spantaleev/matrix-docker-ansible-deploy/
        • aine an hour ago |
          "plain matrix" sounds a bit wrong - we put great effort into maintaining numerous of components of the playbook, including bridges, so it has a lot to offer. Alternatively, you can just get a managed server on https://etke.cc

          Disclaimer: I'm Aine of etke.cc, and MDAD is our project

    • im3w1l 6 hours ago |
      These days I can't even use pidgin for xmpp, because the omemo plugin is too wonky. Now someone I'm sure will say I'm just holding it wrong and that may be so.. but I doesn't work for me despite trying for a reasonable amount of time to get it working.

      And regarding other protocols I'm too scared these days. Every company is running algorithms looking for deviants to perma-shadow-ban and I just can't risk something like that.

      • MattJ100 6 hours ago |
        The problem here is that Pidgin's development didn't manage to keep up with the changing times. Stable branch is 10-15 years behind XMPP features. The developers are working on a Pidgin 3.0 (rewrite?) but that still has quite some way to go.

        Unfortunately Pidgin was one of the most popular ways to use XMPP back in the day, and this had a knock-on effect on XMPP's reputation as an out-of-date technology. People still install Pidgin today and tell me, yep, XMPP hasn't changed since 2006. Which couldn't be further from the truth.

        • WD-42 6 hours ago |
          Was it that pidgin didn’t keep up with features, or more likely that one by one the major platforms pulled xmpp support to the point where there was no reason for a normal person to use pidgin?
          • shadowgovt 5 hours ago |
            It was both, and part of the reason platforms pulled support is that keeping up with XMPP was bad ROI.

            You're Facebook. You want to provide an instant messenger you can iterate on quickly. You can put the work into making it XMPP-shaped and working with the community (whatever they means... Are you going to slip ship targets because Pidgin doesn't work as a client for your implementation?). Or you can just write and ship your own service and client at your own pace and not care about any other developer's needs or wants because you're trying to serve Facebook users, not developers.

          • singpolyma3 4 hours ago |
            There were never any major platform with good XMPP support except for Google Talk anyway. So not sure about "one by one".
            • WD-42 2 hours ago |
              Facebook? Or was that something else. All I remember is a golden age when between google and Facebook I had like 90% of my non work contacts available to chat with on pidgin. And my work used xmpp internally, it was glorious.
        • rw_grim an hour ago |
          Sorry Mattj, but thank you for saying these things kindly :)

          It's true Pidgin 2's XMPP support sucks, there's no denying that. That said we can't easily fix that with the current API which is why Pidgin3/Purple3 is the only path forward.

          That said, I'm pushing to have an experimental release of Pidgin 3 out by the end of the year. However it's only going to have IRC support right now because well there's only so many hours in the day especially when Open Source is your passion project and not your day job.

      • aidenn0 4 hours ago |
        > These days I can't even use pidgin for xmpp, because the omemo plugin is too wonky. Now someone I'm sure will say I'm just holding it wrong and that may be so.. but I doesn't work for me despite trying for a reasonable amount of time to get it working.

        The libpurple (library behind Pidgin) support for xmpp is quite mediocre so it's not that you're holding it wrong.

        Dino is great on Linux. There's an unofficial windows build that might or might not work. If it doesn't, then Gajim is "fine." Conversations is great on Android. I think Monal is the current best on iPhone, but I don't own an iPhone.

        And the need for the existence of the above paragraph is, IMO, a big part of why XMPP isn't used. Nobody knows which clients to use, and the experience if you use an out-of-date client is terrible (seriously, emojis don't work between Psi (which is still listed on xmpp.org as a client, and was a great client 15 years ago) and Dino.

    • IshKebab 6 hours ago |
      Well, most countries have a single instant messaging app (usually WhatsApp) that's dominant now so there's no big need for it I guess.
      • darreninthenet 5 hours ago |
        But dominant doesn't mean it's the only one... most of my friends are on WhatsApp, but I use iMessage to talk to my wife (unless it's a group of friends then it's back to WhatsApp), apart from one or two friends who aren't o ln WhatsApp and then I use FB messenger... we have one gaming group with one guy not on FB and one guy not on WhatsApp, so I'm the meatware bridge between them.

        And then I have people who only use Discord...

        • cesarb 4 hours ago |
          > most of my friends are on WhatsApp, but I use iMessage to talk to my wife [...] apart from one or two friends who aren't o ln WhatsApp [...]

          As shown in a more visual way: https://xkcd.com/1810/

        • IshKebab 3 hours ago |
          > But dominant doesn't mean it's the only one

          It often does. Check out these statistics:

          https://www.statista.com/statistics/1311229/whatsapp-usage-m...

          This is likely a huge underestimate too. They put UK at 71% but in practice it's used by everyone. You'd be a weirdo not to have WhatsApp in the UK, like not owning a smartphone.

    • keb_ 6 hours ago |
      Man Pidgin used to be excellent for Steam and Facebook Messenger for me.

      I no longer use Facebook Messenger, but I really miss the Steam plugin (its been busted for years at this point)

    • rw_grim an hour ago |
      We're still here and we're getting close to finally getting a pre alpha Pidgin 3 out the door. In the mean time check out https://pidgin.im/plugins for third party plugins that provide at least basic support most of the modern protocols.
  • xg15 6 hours ago |
    > With the wide array of XMPP clients available across all major operating systems (Linux, Windows, macOS, Android, iOS, KaiOS) ...

    One of those is not like the others...

  • lxgr 6 hours ago |
    I've recently looked at the suite of protocols underlying RCS (or so at least I think; the standards landscape is as confusing as ever), and it's baffling how the industry ended up with that when XMPP was... just there.

    The contortions they had to do to cram server-based federated instant messaging into the context of the SIP protocol stack by sheer force are something to behold.

    I can only assume this is entirely by design – the more needless complexity, the more opportunity to patent things (or at least keep competitors out): As far as I understand it, practically all carriers are just outsourcing the entire thing to Google.

  • 8lall0 6 hours ago |
  • rom1v 6 hours ago |
    Mandatory blog post on XMPP and decentralized protocols: https://signal.org/blog/the-ecosystem-is-moving/
    • zigzag312 5 hours ago |
      > "XMPP still largely resembles a synchronous protocol with limited support for rich media, which can’t realistically be deployed on mobile devices. If XMPP is so extensible, why haven’t those extensions quickly brought it up to speed with the modern world?"

      So, it's not such a gem?

    • zaik 5 hours ago |
      Mandatory objection to this blog post: https://gultsch.de/objection.html
    • LaGrange 5 hours ago |
      > if anything the velocity of the entire landscape seems to be steadily increasing.

      It is, gods make it stop.

      "Oh no complicated specification" do you think you're getting paid 100k/year because it's _easy_? Gods.

  • upofadown 5 hours ago |
    The SMS gateway provided by jmp.chat has made XMPP fairly awesome for me. I have an XMPP client on all my devices and SMS contacts are just more contacts in my roster.
    • qup 5 hours ago |
      Can you explain how the gateway works?
      • upofadown 5 hours ago |
        You get a phone number with the account. SMSs come from/to that number. You can transfer in a number if you want. You get some phone minutes as well. The basic idea is that you only need a data connection to your various devices. It eliminates the annoying need to type on your phone when you want to exchange SMSs with someone while you are on your laptop/desktop. Particularly helpful to people like myself who don't have a smartphone to type on.
    • PokemonNoGo 3 hours ago |
      > SMS contacts are just more contacts in my roster

      Sorry for the question but i don't really understand what this means?

      • upofadown an hour ago |
        A SMS contact is just a regular XMPP address. They show up looking like this:

            [email protected]
        
        You would normally immediately add a nickname.
  • xnx 5 hours ago |
    XMPP was too open to be allowed to exist in any popular way. It's a miracle that SMTP still survives after so many attempts to "kill email" (Slack, etc.)
  • ValleZ 5 hours ago |
    XMPP was not a mobile friendly protocol for a while, had efficiently no security out of the box and lacked simplest things like image or other file transfers.
    • shadowgovt 5 hours ago |
      And nowadays it faces a marketing issue because it's extensible, so none of those problems go away because a solution exists somewhere.

      "Hey, I want to set up a modern messenger."

      "Sure! Here's XMPP, the ten extensions you need to enable and configure (problem left as an exercise for the reader), and the seven ports you need to open!"

      "... Okay? A Matrix node is apparently a drop-in solution; I'm gonna use that."

      XMPP is in desperate need of a Docker image that Just Works and the wizard to set up that Docker image. And then you need users savvy enough to have their clients configured correctly.

      • zaik 5 hours ago |
        > Docker image that Just Works

        https://snikket.org/service/quickstart/

      • AshamedCaptain 5 hours ago |
        Ironically I think the absolute opposite. An XMPP server is something I can install on my ten year old home server without a second thought ( you have several to choose from even in debian's repositories) and expect it to work with minimal config.

        Matrix servers? You have mostly one implementation to choose from and it comes "packaged" as a monster container with several python modules likely already with CVEs and god knows what else. And then the resource usage...

        • shadowgovt 5 hours ago |
          Yeah, it's great. One package that works and already knows all its dependencies. And thosev exploring the CVEs should generally find themselves in a chroot jail so not too much to worry about.
      • singpolyma3 4 hours ago |
        > problem left as an exercise for the reader

        Or install something that comes set up the way you probably wanted and never think about it again. Just docker and poof. Like Snikket

        • shadowgovt 3 hours ago |
          Yeah, Snikket looks like what I'm looking for. I didn't find it the last time I tried this; I went the "install what dpkg can see" route and that went poorly.

          If I can make time again, I'll give that a look!

    • SamWhited 5 hours ago |
      When was this? It's had most of these things for quite a while, but I'd be curious specifically what was missing and when or if there are still gaps?

      To my knowledge it had most of these things before any other chat protocol was widespread and prior to the great silo-ing.

      • ValleZ 4 hours ago |
        Awhile ago. XEP-0286 (mobile connection improvements) dated 2018-01-25. File sharing has many different XEPs and I have no idea which works, but I know that early XEPs usually didn't work because of NAT. XEP-0384 (encryption) dated 2022-01-18.
  • cullumsmith 5 hours ago |
    My family uses a self-hosted Prosody instance with the Conversations app on Android and Dino/Gajim on the desktop. It works great.

    Combined with JMP.chat, we even get SMS and voice calls from the telephone network to all our different XMPP apps. Truly feels like the future.

    The technology of yesteryear seems to have more staying power. The protocols churned out by my generation seem destined for either VC/advertisement capture or death by CADT [0]. Maybe with the exception of Signal (so far...)

    [0] https://www.jwz.org/doc/cadt.html

    • pbhjpbhj 5 hours ago |
      "Cascade of Attention Deficit Teenagers"

      https://archive.is/t5m32

      The host, jwz.org, redirects traffic linked from HN.

  • kuon 5 hours ago |
    I love XMMP and I use it in different contexts, but there is one thing I miss is GIF integration like discord. I guess I could try to write a gajim plugin to integrate tenor or giphy.

    This aside, it is much easier to integrate than matrix, things like web hook is just a POST request to /api/send_message...

    I think it would take off again with a nice crossplatform client with a discord like interface. But that would be expensive to develop.

  • shortrounddev2 5 hours ago |
    XMPP is nice, I like pidgin as a client. I'm not a fan of modern chat applications having such a focus on group messaging/channels; I miss IM-focused desktop messaging software. Unfortunately, getting people you know to actually USE your preferred chat software is more difficult than running an XMPP server. Often I've met people online or IRL and exchanged phone numbers with them only for them to ask to move to Discord, which I don't really like using.
    • self_awareness 3 hours ago |
      Writing bridges isn't a bad idea to fill the gap between old software for protocols nobody uses, and new protocols that have poor clients.

      For example, I'm writing this post with `vim` using `slrn` news reader, which uses a bridge that translates HN to NNTP (and vice versa).

  • quantadev 5 hours ago |
    The key to getting a Messaging protocol "right" is to have the simplest possible post of a message to a server, and the simplest possible read of messages from a server down to like 20 lines of code, which Nostr did get right.

    Nostr is great because it doesn't tie your user name to some domain name that you don't own (like ActivityPub/Fediverse does). If a domain name is part of a user name, that ultimate gives "control" over your identity to someone else...(unless you're hosting your own domain, of course)

    I think XMPP is probably the superior protocol (better than both Fediverse, and Nostr, and I've written implementations in both), for some technical reasons, but as far as I know it takes way more than 20 lines of code to implement a read/write operation, so imo it's too complicated.

    Even ActivityPub looks simple at a first pass, but if you try to write your own server (like I did) you realize the protocol is a complete mess and compatibility issues are rampant across different sever implementations as a result.

  • cyberax 5 hours ago |
    I hope XMPP just goes away and stops distracting people from more productive avenues.

    It can't be fixed. It's dead. Matrix is the modern replacement.

    I used XMPP to implement a chat client within our application around 2012. It was a freaking nightmare. The roster system, the incompatibilities, the lack of standardized synchronization, the never-working group messaging.

    • zaik 5 hours ago |
      > It can't be fixed. It's dead.

      Lots of good XMPP implementations disprove this.

      I hope Matrix just goes away and stops distracting the FOSS community from improving existing internet standards instead of custom protocols by random startups :)

      • cyberax 4 hours ago |
        > Lots of good XMPP implementations disprove this.

        A list, please. For iOS, Android, macOS, Windows.

        > I hope Matrix just goes away and stops distracting the FOSS community from improving existing internet standards instead of custom protocols by random startups :)

        XMPP had its chance, it blew it.

        • self_awareness 3 hours ago |
          > XMPP had its chance, it blew it.

          It's not like Matrix is killing it.

          It's not exactly a new protocol, yet still feels like it's in the pre-alpha stage. Both protocol and the client/server software.

  • MongoTheMad 4 hours ago |
    XML is the reason why XMPP is not widely adopted. XML is such a painful configuration structure.
  • bigdumbape 4 hours ago |
    XMPP is amazing. There was a neat white paper years ago about XMPP over HF radio. Long live XMPP.
  • solarkraft an hour ago |
    XMPP could’ve been great, I‘ve used it and the implementations have worked quite well.

    There have been revival/popularization attempts, but nowadays traction seems to be with Matrix.

    Unfortunately that spec also has big issues and the ecosystem is still struggling with usability (though it has improved a lot recently) and implementations.

    It’s an unfortunate situation in a time in which an open communication standard is more important than ever.