An Objection to ‘The ecosystem is moving’
In May 2016 Moxie Marlinspike published an article on his company’s blog entitled ‘Reflections: The ecosystem is moving’ where he claims that federated systems are ‘stuck in time’. Since then his blog post has been passed around primarily to support the argument that federated, XMPP based, instant messaging is not working and won’t ever provide a decent user experience. On the other hand his blog post is rarely used as an argument on how bad the World Wide Web is and on how we should all give up on using the Web, even though HTTP is one of the protocols Moxie claims to be stuck in time. In fact Moxie picks his examples very carefully and only talks about HTTP as being stuck in time. He ignores the fact, that on top of HTTP there is another standard called HTML, which is everything but stuck in time. HTML and related technologies like CSS and JavaScript have massively evolved in the last 20 years. Interestingly the Web is something where federation has improved. It’s not too long ago that the Microsoft Internet Explorer had a market share of well over 90%. The web was filled with websites, relying on non-standard extensions like Java Applets and Flash. Now those extensions are gone. The market is more or less equally divided between at least three major vendors. The decision on what webbrowser one uses is purely made on factors like speed, available plugins and is no longer dependent on what websites they are able to display.
After conveniently not telling you about the examples where federated ecosystems are working great and have vastly improved the situation for end users and (web-) developers alike, Moxie moves on to talk about instant messaging and XMPP. He raises the question on why XMPP—being an extensible protocol—hasn’t been adapted to the modern world. However this rhetorical question is purposely misleading because the protocol actually has evolved and is able to deal with challenges like those imposed by mobile networks. The fairer question would have been; why haven’t those new extensions been implemented?
While it doesn’t make a difference to the end-user, if the user experience is diminished because the underlying protocol doesn’t have the necessary capabilities, or because it hasn’t been implemented properly, it makes a huge difference if you are trying to argue that federated systems are not worth pursuing. The reason this is an important differentiation is because the resulting consequences are vastly different. Moxie concludes that XMPP is unable to adapt and thus his closed, proprietary system is superior. However if one draws the conclusion that XMPP has an implementation problem, one could start looking into the reasons a lot of the implementations are lacking behind. It is very rare that XMPP client developers don’t want to implement a certain extension or that they don’t know about it. Instead the most frequent reason new features don’t get implement is a lack of resources. The majority of end-user-facing XMPP implementations are developed by people in their spare time. If we go ahead and directly compare the World Wide Web—where federation is working to everybody's advantage—with federated Instant Messaging, the most defining difference is, that a lot of people are getting paid to work on the major web browsers.
It’s striking that Conversations receives a lot of praise even from critics of XMPP. So what is it that Conversations does differently than most other mainstream XMPP clients? Nothing. It doesn’t do anything differently. The only difference is that Conversations has a developer who is lucky enough to be able to work full time on that project.
When one, for example, compares Slack with a similar, XMPP-based project called Kaiwa it shouldn’t come as a surprise that Slack, which has an entire company behind it, has more features and fewer bugs than Kaiwa, which is currently maintained by one person, who’s busy getting his PhD. Concluding from that anecdotal evidence that federated systems in general are inferior is just plain wrong. If this conclusion is drawn by someone like Moxie it should be considered harmful propaganda.
Yes, designing a system to be interoperable with others is a challenge. Yet it is a worthwhile challenge. Take a look at how interoperability has changed the World Wide Web to the better. If we had accepted the fact, that the Internet Explorer was once the only browser with significant market share, the webapps of today would be using Flash and ActiveX. And of course there were times where Firefox wasn’t able to display some websites correctly. And of course there were people who screamed that HTML is a terrible standard and that Flash just worked better and that you couldn’t do certain things in HTML. And of course history proved those people wrong.
Federated, interoperable systems are possible. Instead of condemning them we should rather be thinking about how to attract more companies and more full time developers to implement them. Instead of writing blog posts about how terrible federation is and how it will never work, we should be thinking about how we can establish viable business models for federated communication.
Next time you look at Whatsapp’s >90% marketshare remember that the Internet Explorer once had a similar market share.
Dave Cridland has previously responded to Moxies’s blog post in a blog post of his own called Federation, Privacy, and User Experience and later expanded on that in a post called Open Standards and Diversity. Both essays are well worth the read if you want to know more about the topic of open standards.