summaryrefslogtreecommitdiff
path: root/content/why-open-instant-messaging-protocols-are-essential-for-software-freedom.md
blob: 281a59ee9b801a3dd1d5290b65e58f62898147c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
title: Why open instant messaging protocols are essential for software freedom
date: 2025-01-12
tags: xmpp, free-software

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.