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.
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.
All of those are newer XEPs for things that existed long before those XEPs or those specific versions if the XEP were published. There may be specific issues (I do remember that p2p file sharing never worked unless you were a network engineer who could tame nat), but I'm skeptical that they were still an issue when other protocols came along. I could be wrong, of course.
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.
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...
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.
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.
What servers don't have good defaults these days, and what clients need any configuration at all beyond the username and password? I don't think this is true.
Also Snikket meets your Docker requirements if you're into containers.
The last time I tried to get jabberd set up on an Ubuntu install, the port-opening and config became a nightmare and induced me to give up. No good signal on why it wasn't working.
oh interesting, fair enough; I didn't know jabberd still existed! FWIW, Prosody, Ejabberd, OpenFire, etc. all mostly have sane defaults for a basic chat system (both in terms of performance and features). They won't be an exact match of course, but all the basic stuff should be there.
To my knowledge it had most of these things before any other chat protocol was widespread and prior to the great silo-ing.