Convivial software (or, why open source matters)
Closed source software is not bad or wrong—it can still allow flourishing and productivity. But what of the user's freedom to tailor or remake software? What of inter-connectedness and community?
Does the software you use (or create) encourage its users' freedom? Does it foster community?
Do you even think about these things when you fire up a word processor, web browser or your computer's operating system? Should you think about them?
Because technology continues to encroach upon and even define our lives, we should be reflective and alert about both its use and the processes behind it. I want to focus here on computer software.
I've found Ivan Illich, particularly his book Tools for Conviviality (1973), to be helpful. Illich saw industrialization and mass production as limiting human freedom and causing the depersonalization of the tools available for people to create and flourish. His alternative was to rethink tools as a means for conviviality.
In English, conviviality is defined as joviality, but Illich focused on the the Spanish and French origins of the word, which capture the idea of "user friendliness." Illich envisioned "modern technologies that serve politically interrelated individuals rather than managers." Convivial tools, therefore, not only foster human freedom, but also inter-connectedness between individuals—that is, community. Further, convivial tools encourage creativity, as they are not controlled by any one institution or organization. Anyone can learn how to use them, and use them for their own purposes.
How do we approach computers and software convivially? It is important to note two things. First, despite appearances, Illich was not anti-technology. He sought technology that allowed humanity to flourish, but did not make humanity subservient to it—one of his criticisms of industrialization was that humanity ultimately became subservient to the very technology that was supposed to serve them. In Deschooling Society (1971), Illich envisioned learning webs—networked computers that would afford like-minded individuals opportunities to connect and work together.
Second, the very creation of the personal computer was deeply influenced by the ideas Illich set forth in Tools for Conviviality. Lee Felsenstein, one of the original members of the Homebrew Computer Club, acknowledged the importance of Illich's work in his own philosophy and work. Ultimately, Felsenstein helped create the first mass-produced portable computer, and still works to make technology accessible to all. Clearly, computer technology has a place in a convivial society, but now we must understand what it looks like.
Fortunately, at least in some computing circles, freedom and community have been at the very core of software development. The free software movement was born in the early 1980s, a brainchild of Richard Stallman. His initial project, GNU (for "GNU's Not Unix"), was an attempt to create an entirely free and open version of the Unix operating system. But why? Stallman, among others, believed that users should have unfettered access to the software they used, including the source code. The Free Software Foundation (FSF), an entity created by Stallman to further his goals, set out this vision of free software (also known as open source software):
Free software is a matter of liberty, not price. To understand the concept, you should think of free as in free speech, not as in free beer.
Free software is a matter of the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it means that the program's users have the four essential freedoms:
- The freedom to run the program, for any purpose (freedom 0).
- The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor (freedom 2).
- The freedom to improve the program, and release your improvements (and modified versions in general) to the public, so that the whole community benefits (freedom 3). Access to the source code is a precondition for this.
(Note for non-programmers: the freedoms start at zero because in most [sane] programming languages, the index for a list of items starts at zero, not one.)
Now, compare this list of freedoms to the concept of conviviality defined by Illich. Obviously, freedom and autonomy are at the root of free software. Note that this freedom is not necessarily tied to price (the Free Software Foundation does not frown upon charging for software), but tied to use—the software is user-friendly in the sense that the end user may do with it what they wish, including modifying it for their own purposes. If you can envision the software working better for you, you are free to make those changes.
And what of inter-connectedness and community? Those goals are clearly defined in freedoms two and three. You are free to share the tool with your neighbours, and you are free to release your modified version of the tool to the community so everyone can benefit from your work.
Compare this to so-called "closed" source software. Microsoft Office is a popular (and much maligned) example. You cannot download the source code for the application (this immediately nullifies freedoms 0, 1 and 3 defined by the FSF), and, thanks to an onerous end user license agreement (EULA), you cannot redistribute copies to anyone. Despite this, Microsoft Office is used by millions of people every day.
Without doubt, Office is a useful tool—it allows countless users to be more productive. But does it promote freedom for its users and the greater community? It would not seem to, according to Illich's definition of conviviality. While the end user may be able to flourish within the context of the tool, that user will never be able to mold the tool as she sees fit. Worse, according the EULA, that end user doesn't even retain full ownership of the tool—she or he cannot use it as she sees fit. It must be used according to rules set by the maker.
Additionally, the user can only interact with other users of that particular piece of software. Again, due to licensing restrictions, she cannot distribute her own copy of the software, so if she or he wanted to, say, send along an essay she wrote in the software, she could only send it to someone else who had a legitimate copy of the software.
So how does free/open source software match up with Illich's definition of convivial tools? The obvious foil to Microsoft Office is OpenOffice, originally a progeny of StarDivision, but acquired by Sun Microsystems and eventually released as an open source project. It is freely available and redistributable with no restrictions. The software has grown over the years, fueled by a strong community of programmers and users.
As the tool's market share has slowly increased (while Office still rules the land, OpenOffice has gained a foothold in the market, with several large organizations choosing it over Microsoft's product), the project has added critical features, such as interoperability with Microsoft documents (done by analyzing the files generated by Microsoft Office, since the formats are not published). An even better indication of its success is that Microsoft Office 2007 can now read OpenDocument files generated by OpenOffice. Since OpenOffice is free software, anyone can download the source code and modify it, and several "forks" (significant shifts in the project's development that result in new programs) exist, most notably NeoOffice, a port of OpenOffice to the Mac OS X operating system.
Closed software is not bad or wrong. Illich only sought a balance in society between convivial and industrial tools—he thought citizens should have the opportunity to use convivial tools if they choose. For some, like Richard Stallman, seeking balance is the wrong solution. Stallman himself believes that free and open software is a fundamental human right—an entire essay could be written unpacking this assertion—and therefore, closed software is not an option.
Reality, however, is a bit more gray. Some of us have no choice but to use Microsoft Office at work or in the computer lab. We do, however, control what software we choose on our own computers. Are you a designer? Look into GIMP rather than Photoshop. A writer? Use OpenOffice. Use an open source media player, web browser, or mail reader. Are you a programmer? Your possibilities are endless. Learn an open tool, perhaps vim or Emacs—even if your primary work is in a closed system, these tools will be useful. Take advantage of their openness and extensibility and build extensions that will make you more productive. If possible, integrate an open source library into your project. This also provides an opportunity to contribute back to the open source community, as you gain knowledge of the project by actually using it. Regardless of your situation, always think about finding a convivial tool.
Respond: Comment welcomes your feedback. Email firstname.lastname@example.org.Subscribe