It’s the issues with XMPP’s spec: you don’t just use XMPP, you use XMPP + your favorite optional spec implementations.
If your friends aren’t on the same server/client combo then you won’t be able to communicate with them (effectively).
I loved XMPP, still do, but haven’t used it in years. If it were to get a single, matrix-style “spec release” (think an aggregation of existing features into one collection) that contains/requires a bunch of modern chat features I’ve come to expect from programs, then I could see it potentially having a resurgence.
From a chat standpoint, the two are near identical - yes - but Matrix lacks the “voice/video calls as persistent rooms” feature that Discord has. This was planned a while back, but has recently been pushed on the backburner[1] as they work on Element Call.
Early on Matrix was sort of being built up as an IRC/Discord alternative, but recently they’ve pivoted more towards a WA/Telegram/Slack alternative as most of their financial support comes from European governments and companies looking for strong and secure internal communication solutions they can manage themselves.
So, TL;DR you probably won’t see the exact Discord like features you want land in the spec any time soon as they’re not being funded.
So that means, right now:
Having said all that, Matrix is brilliant and I highly encourage people to check it out. I use a Matrix <-> Signal bridge for most of my comms with my friends, and we voice chat on Mumble. Not ideal, but you get to avoid Discord and you get a very similar experience! Bonus points for Mumble as it’s super lightweight.
~[1] It’s not really on the backburner so much as it’s something that will have to be worked on after the new VOIP stack - Element Call - is integrated in the wider Matrix ecosystem. There is an experimental “video rooms” feature, but that really isn’t the same as a native, persistent voice-only room.~