convivial software

how i got here

i used to be really enthusiastic about open-source software. over time i came to realise that a lot of open-source software is actually driven by corporate interests and cares little for me. for example, android is technically open-source but development takes place in the dark and can be actively user hostile. telegram is an open-source messenger that forces ads on its users and prevents forks from removing these ads via its API terms of use[1]. there are many more examples.

so is free software what i'm after? after all, it values "principles" over "practical advantage" but even this concept doesn't capture what really inspires me. the military loves to use free software. the free software movement loves to emphasize the ethical aspect of software freedom but ignores all kinds of ethical issues surrounding the software, such as what it's used for, how the hardware it runs on is made, what the environmental effects of running it are, etc., etc.

where i'm at

a while back i stumbled upon the term convivial software (or maybe it was convivial computing). apparently the idea can be traced back to ivan illich's work, Tools for Conviviality (1973). now, i haven't actually read any of illich's work so i'm hesitant to attempt a summary on his ideas[2], but the term really stuck with me.

wiktionary has this to say about the term convivial:
Borrowed from French convivial, from Latin convīvium (“a feast”), combined form of con- (“together”) + vīvō (“to live”).
... and ...
Having elements of a feast or of entertainment, especially when it comes to eating and drinking, with accompanying festivity
so it somehow encapsulates ideas of community (living with one another), providing a vital service (fooooood) and lighthearted fun. this sounds friggin awesome! it's everything i wish software to be — both as a tool and as a practice[3].

dissecting it further

so how does convivial software[4] compare to free software or open source software? let's consider the three elements i listed above:
  1. community
  2. service
  3. joy
i'd say having the source code available is a prerequisite for point one. but it's also not enough. development must also take place in the open. a simple source code dump for every release may get you licence compliance but it doesn't engage the community. signal does not qualify.

point three is a bit less obvious (i'll get to point two in a moment). games are fun (at least they should be) but what about a spreadsheet or a compiler? well even with the latter, i think we should strive to make software a joy to use. user experience is an essential part of software design. the thing should do what we expect and make it as painless as possible. and, of course, being playful along the way probably won't hurt.

so what about point two? surely every application, every tool provides some kind of service. isn't this point redundant? well, not in combination with the other points. what matters here is to provide a service to the community in a spirit of joy. if you're shoving ads into your app, you may be providing a service to shareholders, but not to the community. if your software is helping drop bombs on children in a war zone, you're violating all these points. that software is not convivial.

what about licences?

that last example brings up an interesting question... if convivial software may not be used for any purpose, then can it be called open-source, according to the OSI's definition? well, the answer is no. in particular point six ("No Discrimination Against Fields of Endeavor") makes this pretty clear:
The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.
this means there probably isn't much convivial software out there right now. anything licenced GPL, MIT or similar doesn't fit the bill and, of course, proprietary software doesn't either.

that said, i am aware of one licence that attempts to square that circle and that is the SEGV License. the juicy bits are in section three, "ETHICAL STANDARDS". here are some examples:
3.1. The Licensee SHALL NOT, whether directly or indirectly, through agents or assigns:
3.1.1. Infringe upon any person’s right to life or security of person, engage in extrajudicial killings, or commit murder, without lawful cause
[...]
3.1.10. Forcibly remove indigenous peoples from their lands or territories or take any action with the aim or effect of dispossessing indigenous peoples from their lands [...]
[...]
3.1.13. Military Activities: Be an entity or a representative, agent, affiliate, successor, attorney, or assign of an entity which conducts military activities;
[...]
3.1.16. Harm the environment in a manner inconsistent with local, state, national, or international law.
in a way, i find this attempt at codifying what i presume many (if not most) of us actually want admirable. on the other hand, i am not a lawyer, i cannot evaluate how useful this licence is in practice. but i have a hunch that it is (1) unenforceable and that (2) bad faith actors will keep finding new loopholes to bypass the intent of the licence.

ultimately, i don't think a software licence is a suitable vehicle for spreading convivial software. i think what we really need is a radical shift in mindset. and that shift affects much more than just software. but that's a whole new can of worms that i'm not gonna get into here.

back to illich

so how does all this stuff relate to illich? as i mentioned above, i have no idea. ok, maybe a bit, from reading summary snippets here and there but ultimately, i'll have to read some illich before i can say more. maybe it's not a good idea to "capture" the term he used, but i did it anyway. convivial is such a beautiful word!


[1] "If your app allows accessing content from Telegram channels, you must include support for official sponsored messages in Telegram channels and may not interfere with this functionality." (source)

[2] Damaged Earth Catalog has a much better summary than I could provide here.

[3] No, that's not an LLM thing. I actually inserted that em dash myself.

[4] Convivial Software, according to my understanding based on the term (i.e. words) itself. This may or may not match Illich's use of the term.