Except that it isn't really, the protocol from what I gather is very convoluted which is seen in the amount of mature featured client and server implementations for it.
It also doesn't solve some of the problems that got in the way of IRC in the later years with regard to ease of use. Specifically in regard to onboarding new users.
I mean, it is "fine" but it isn't great. The most mature client is supposed to be Element and signing up is fairly easy (although explaining if you should use matrix.org to register your account or a home server is done by linking to technical documents).
Once you have signed up the client bothers you with a variety of onboarding attention grabbing blinky things that are really not relevant at that stage and only serve to confuse a new user. For example, there is a blinking dot on the + sign for creating spaces. But a new user will have not the slightest clue what they are and why they would make one.
Once you figure out that everything is loaded you might figure that you want to explore rooms, which seems sensible enough. So you click on it [only to be greeted by what amounts to effectively the exact same thing IRC would show you](https://www.creesch.com/dump/img/img_620a745a33dad.png) when you used the `/list` command but with actually fewer options to filter through the ridiculously long list other than searching by keyword. And if a new user is really receptive, they might spot the fact [that this isn't the only list they can get overwhelmed by](https://www.creesch.com/dump/img/img_620a7545a8517.png).
Just to be sure I wasn't talking nonsense, I tried some other clients listed on matrix.org and most of them show even less and give even less options. Some of them don't even allow you to browse lists and others make it even more confusing in many areas.
Matrix has added some new features to the IRC experience but generally hasn't made it an easier experience to work with if you are starting out as a new user.
The server-to-server part of matrix has to be convoluted because it is poperly distributed and does encrypted group communication. Obviously, if you leave out security, you can come up much simpler protocol. Matrix has also protection again message loss, which is not in the IRC protocol.
Of course, if those are not needed matrix protocol is just overly complex.
The client-to-server protocol of matrix gets complex due to the large number of features matrix has. The advantage of matrix over xmpp is that those features are mandatory.
Of course, somebody could still try to come up with a very minimal text client. I think there are plugins for some popular messaging clients.
These days, few people are hardcore enough that they want the kind of minimal interface offered by IRC.
I'm not sure matrix should offer a lot of discovery options. Just like webbrowsers don't find web pages.
As you point out, the UX is not all that polished yet, but it seems to be making reasonable progress. The protocol is convoluted, but what it's doing is also a lot more complex than IRC. For me it's more comparable to IRC than discord in the sense that discord is completely centralized and exhibits all the problems we see from other centralized social media.
I've been running a private homeserver for communication with some friends (for when we'd rather not have the data stored with discord) and while I do agree with most of your points, even my non-technical friends managed to get in relatively easily. It wasn't as simple as with discord, but certainly not too far from what people are used to these days.
A simpler protocol with better decentralization and polished client can probably be done but it's obviously a lot of work. My biggest concern with Matrix is the conflicting incentive created by having the company that does most of the development also be the one providing the most popular homeserver. They're effectively incentivized to centralize the network even more.
Element really is not motivated to centralise. We're busy building P2P Matrix so that everyone can run their own server without thinking (by putting it in their app) - and matrix.org meanwhile is a huge cost which we ideally want to turn off (and will be able to once P2P lands).
It's not bad, and I use it/like it, but it's also exceedingly heavy compared to IRC. If you want to join large rooms, your server really needs a couple gig of RAM, and the "full featured" client (Element) is an Electron mess that uses an awful lot of RAM. A freshly launched Element connected to my server is idling with 200MB of RAM used, and it'll go up from there.
Yep, I completely agree with you on that. Making the client in Electron is somewhat understandable given the effort it would take to maintain a client for every platform, but synapse is really heavy. Synapse's heavy resource usage is one of the many issues the second-generation server - Dendrite - is intended to solve, but it seems like it's still likely a year or so out from being production ready.
A problem with IRC is that any individual IRC network is closed. Freenode shows how an IRC network can go rogue, and there is not much the users can do.
Matrix is a bit tricky. It is mostly there, but I wonder how many matrix rooms will survive if matrix.org would go down.
So, i can only give the view from the matrix.org server, but right now there are 248244 rooms with more than 2 users in them on matrix.org.
Of those, 124680 include users not on matrix.org. In other words, 50.2% of 2+ people rooms which exist on matrix.org are replicated and decentralised across other servers. Conversely, I'd expect there are tonnes of other rooms on other servers which aren't visible on matrix.org at all.
It'd be even more revealing to weight the stats by room size, as the bigger the room, the more likely it is that it'll be replicated elsewhere.
If a room only has a matrix.org name, how do new users connect to it when matrix.org is down? Maybe it is bug, but creating local aliases doesn't seem to work in element web. (Well, creating the alias seems to work, using it doesn't)
Then, how many rooms have admins that are not on matrix.org
In matrix, the act of participating in a room means your server gets a copy of it (with as much history as you choose to pull in). Anyone can add an alias to it, including after the canonical alias has died, if necessary. The alias setting UI in element web should be ok.
I can't do anything with a local alias, neither on element web nor on element android. The UI shows it exists, but search doesn't return it, joining doesn't work.
With element android I can publish the original name to the local directory, but that fails on element web.