Nice list.<p>&gt; What XMPP did right:<p>&gt; - Any chat protocol must be extendable<p>That is a theoretically desirable technical property, but there is a strong argument to be made that extensibility, and the interoperability issues that result, is the Achilles heel of XMPP.<p>Of course, there is risk the other way around too: by over-specifying, you constrain your use cases, which may hurt adoption.<p>I&#x27;m skeptical that there will (or should) ever be &quot;one protocol to rule them all.&quot; There is such a diversity of use-cases, anything that delegates its raison d&#x27;etre across multiple specs is going to encounter the same flavor of problems that XMPP has.<p>&gt; - Federation is good<p>Definitely another desirable property. Unfortunately, the choice whether or not to federate is often a policy decision, not a technical one. And those policy decisions are not always made simply to keep users siloed: there can be a sound technical basis for them. For example, to mitigate abuse, to immediately extend the service with new features, and to have end-to-end control of user experience without concern for interoperability. Interoperability with arbitrary network elements is often the most frustrating and most expensive part of standards implementation.<p>For federation to be taken as the default, you need critical mass, and no single IM service has ever achieved critical mass. While it would certainly be nice to have IM standardized like E-mail, telephone calls or IPv4, that comes at the cost of glacial progress forward, and you will be stuck supporting the lowest common denominator for a long time. So there will always be operators trying to short-circuit that baggage by introducing new (and often proprietary) services. The problems of standardization (or lack thereof), in their broadest strokes, are never going away.<p>&gt; What could have been better<p>&gt; - Regular users don&#x27;t want to run their own server<p>&gt; - Logging&#x2F;history is important<p>Those seem like implementation details and not anything intrinsic to the protocol.