Broadly, an anti-feature is any feature of a program that works against the user’s interests. This often happens when a feature is added to a program that prioritizes another party’s interests over those of the user. Anti-features are exceedingly common in proprietary software, where the balance of power rests heavily on the side of the software developer, whereas anti-features are relatively rare in free software, which respects users’ freedoms to use, modify, and distribute the program as they wish, thus shifting power back into users’ hands.
For many, GNU/Linux represents the most convenient and pragmatic choice for a free operating system that offers reprieve from software anti-features. That’s why it was notable when the GNU/Linux distribution Elementary OS announced the introduction of a blatant anti-feature into their operating system’s software update mechanism in 2018.
This anti-feature is intended to be an incentive to fund software developers’ work. In their own words, “monetized apps you haven’t yet paid for will show our HumbleButton on the updates page, and when you press ‘Update All’ we’ll skip updating these apps.” That is, programs that are designated as “monetized” in Elementary’s software repository are excluded from being updated via the “Update All” functionality unless the user has paid some amount of money to the program’s developer. Otherwise, the user must update each program individually.
It is the Elementary team’s explicit intention to introduce artificial inconvenience in order to influence the behavior of the users of their operating system to support the interests of third parties. “By not including paid apps in ‘Update All’,” they write, “there is a bit of a convenience tax if you choose not to pay continually. We know that nag screens are inconvenient. They’re meant to be. We know that paying is also inconvenient, so we have to level the playing field a bit.” This unambiguously qualifies as an anti-feature, regardless of whether one accepts that the justification given overcomes the ethical compromise the feature introduces.
It’s my contention that anti-features always represent an intolerable ethical compromise. They contradict the spirit of free software, turning the tools we ought to be able to rely on against us, in this case by paternalistically imposing artificial limitations. For me, running Elementary OS is an unacceptable proposition until this feature is removed.