Drew DeVault has some correct criticisms of Matrix. Although I haven't run a server myself directly, I've been in close contact with people who have, and I know what a task it is.
However, DD seems to think this disqualifies Matrix all together. I'd like to think that it can overcome these difficulties, maybe with upcoming implementations like Dendrite.
@makeworld The biggest problem with Matrix is the huge and rapidly changing API, as well as a lot of bad design decisions (e.g. JSON/HTTP polling) that would take creating a different protocol to solve.
Dendrite does not really solve any problem, it rather makes the existing ones less noticeable. Being written in Go means a lot more performance, efficiency and reliability (to the point where it can run in your phone or web browser); but complexity and bad protocol design decisions are still there.