Why open instant messaging protocols are essential for software freedom
When I started learning about free software, I discovered that software freedom gives you control over your devices. Over time, that feeling of control became intoxicating and empowering; to an increasingly greater extent, I wanted a computer that did exactly and exclusively what I wanted.
As time went on, my experience using the few remaining proprietary packages became jarring. I could feel the influence and control of the software’s authors restricting what I could do.
I began to resent these remaining applications. While some software, such as email clients and web browsers, had been trivial to replace, I found substituting other programs, like instant messengers and banking apps, to be much more difficult, even as my dislike of them grew.
Through this experience, I learned that ease of replacement had very little to do with the software itself, but instead their interaction with closed protocols - existing outside of my device and my direct control.
In this post, I examine these factors, and explain why I believe open instant messaging protocols are the most important area to work on to enable widespread software freedom.
Grouping software by ease of replacement
Broadly speaking, proprietary software lies on a spectrum, from “easy to replace”, to “possible but painful to replace” and finally, to “essentially impossible to replace”.
Software that is “almost good enough” gets a lot of attention
When someone tries to switch to free software, the “possible but painful” collection is often where the focus of attention lies. “Yes, I can use GIMP” goes the typical forum post, “but Photoshop makes it so much easier to create this visual effect with only one or two clicks!”
Such proprietary software tends to be complex and specialised, providing a sufficiently superior user experience that’s difficult to replace. Yet, the existence of a free alternative, that is almost a sufficient replacement yet nevertheless lacking some important qualities, draws much attention, discussion and progress.
Software at either end of the spectrum is less visible
However, on either side of the spectrum, there are two categories of software that are less visible, for contrasting reasons.
First, there is free software that is so easy to switch to and use, that it becomes “invisible” to a regular user. For instance: web browsers, email clients, calendars and todo lists. If you were to switch a non-technical user’s web browser for Firefox (preserving the Chrome icon, bookmarks etc), the chances are that they would continue using it without necessarily realising much had changed.
Second, there is proprietary software, that is so entrenched, that it becomes “invisible” in another way: most people don’t consider switching from them a realistic possibility. For instance: instant messaging apps, social networks and banking apps. For this class of software, there is usually a force (such as network effects, or heavy regulation) holding the status quo together, and stemming the adoption of alternatives, even if the technology for such an alternative has been built.
Closed protocols take away your agency
There is an important similarity between both types of “invisible” software: both interact with the outside world, via some kind of protocol.
While the examples in the first group supports open standards and protocols, that in the second is built around proprietary protocols that themselves moderate access to something you care about (such as your friends, or your money).
Critically, it is hard to write and make use of free software software that interacts with closed protocols. To implement or use a free software WhatsApp client, or an alternative interface for your bank, is in the first instance disallowed by the Terms of Service, and moreover leaves you forever beholden to the whims and timescales of the developer, which has complete control of the protocol, and the technical or legal means to intentionally or unintentionally shut you from the network at any time.
Since these closed protocols moderate your device’s ability to communicate with the outside world, they provide the entrypoint through which control of your device can be ceded to someone else. By gating access to things you care about, closed protocols are able to override your personal preferences, and force you to use software you’d rather not use.
This leaves users of these proprietary protocols with a series of choices:
- “Want to message friends? You’ll need Android or iOS”
- “Want to bank with us? You can’t use a rooted phone”
- “Want to receive notifications? You’ll need Google Play Services”
These choices are particularly tricky, since they multiply the role of other proprietary software in your life: such software often provides a substandard experience on free software operating systems - either offering scant support, or an application with poor integration with the system.
This means you either have to accept being a second-class citizen in the network, or to sacrifice your preferences and ideals to access the things you care about. With each sacrifice, the proprietary software embeds itself, and software freedom gets further away.
Open protocols commodify clients, allowing free software apps to shine
While closed protocols restrict your choices, and increase switching costs by tying access to something you care about to a specific set of software, open networks actively reduce the cost of switching software, by explicitly enabling a variety of clients to connect to the network.
I believe it is no coincidence that the software I found easiest to replace all supported open protocols. By specifying the interaction of a client with the rest of the network, open standards commodify clients and make them more easily interchangeable.
This gives the user more confidence that a free software implementation will act as a drop-in replacement for the proprietary one. In addition, by limiting the scope for variation in clients, specifications give fewer opportunities for R&D and investment to provide an advantage to the proprietary clients, as in the case of Photoshop and other cases where proprietary software can retain a long-term advantage.
The greater the adoption of open protocols, the more free software is fighting a battle on its own turf. When the protocol is closed, technology companies win through network effects and control. When the protocol is open, free software can win thanks to its integration with the surrounding environment, customisability and flexibility.
In this way, free software and open protocols are complementary - one begets another.
This is why I believe it’s vital for us to tackle this class of closed protocols, that are so difficult to replace that most people don’t even try. For most, it will be impossible to switch to a free operating system, until the stranglehold of closed protocols is defeated. Meanwhile, while one stays on a proprietary operating system, the most convenient course is to use proprietary software.
By pushing for the adoption of open protocols in areas where they are not widespread, we can provide a level playing field on which free software can compete and succeed. This will allow the software in the “almost impossible to replace” bucket to become “possible but painful” at the very least.
From there, it is a straightforward technical - rather than social and political - fight, to make free software the best choice. Even then, in a world of open protocols, there is no need for free software to be the universally best choice: those who value software freedom could use it, while letting others continue to use proprietary clients and without imposing their will on the rest of the network.
In this way, open protocols return agency to each individual user, allowing them to express their priorities and make the decisions that align with their values and preferences.
Why focus on instant messaging?
Throughout the post, I’ve used examples of social media, instant messaging and banking as being software that is particularly difficult to replace. While I think all need focus and attention, I believe instant messaging is particularly important. This is because:
- For many, it is the most frequently used class of applications
- It is held back by network effects, not regulation. Network effects can be fought at a local level, without requiring political engagement with governments, etc.
- Many previously liberal governments are threatening the privacy of encrypted chats, which is only feasible thanks to the chokeholds the big tech companies hold
- Since technology determines the limits of expression, having control over the technology you use to communicate is necessary to have complete freedom of expression
My hope is that, with enough investment of time and money into open instant messaging protocols, we can remove one significant barrier to the adoption of free software. Taking down WhatsApp and other instant messengers is a colossal challenge, but I hope that one day, we will achieve it.