Typically, ethical analysis of Free, Libre, and Open Source Software, either separately or as a collective in contrast to proprietary software, implicitly has treated all categories of software as ethically equivalent in all circumstances. In this paper we explore the notion that some categories of software elicit different ethical concerns and that it is important to include those concerns in any analysis. By analyzing the ethics of Free Software (FS) and Proprietary Software (PS) in the context of a particular category of software, we develop a nuanced approach that helps clarify the ethical value of each type of software. We also tease apart the definition of free software to explore the question of whether there is some middle ground between FS and PS that captures key ideas in the ethical analysis of some software categories.
For the purposes of our paper, we define Proprietary Software (PS) to be software that is developed by either an individual or company and is made available to the public and other businesses only in binary form. Furthermore, it is licensed in such a way that restricts its further distribution and prevents reverse engineering.
In order for a piece of software to be considered Free Software (FS) it must be licensed under an approved Free Software License (FSF License, 2007). However, for our purposes, the four software freedoms provide more clarity about what those licenses are designed to accomplish (FSF Definition, 2007). Briefly, software that is “free” is affords four freedoms:
- Freedom 0: The freedom to run the program, for any purpose.
- Freedom 1: The freedom to study how the program works, and adapt it to your needs.
- Freedom 2: The freedom to redistribute copies so you can help your neighbor
- Freedom 3: The freedom to improve the program, and release your improvements to the public, so that the whole community benefits.
In addition, Free Software usually includes the notion of “copyleft”, which uses copyright law to ensure that all derivative works of Free Software are also Free Software.
Note that Freedoms 1 and 3 require access to the source code. In the analysis in this paper we find times when access to the source code is sufficient to mitigate ethical concerns. We will call all software that has its source code available in a standard electronic format, Source Code Available Software (SCAS). This is not to be confused with Open Source Software (OSS), which also has a formal definition that includes more than just available source code (Coar, 2007). While there are some important differences between FS and OSS, those differences do not impact the discussion in this paper and we use FS to refer to both.
For clarity, when we talk about software type, we are referring to whether it is FS, PS, SCAS or some modification of one of these types. We use the term software category to refer to a collection of similar pieces of software that all accomplish roughly the same purpose. Some categories will admit subcategories. For example, the category of “Productivity Software” includes the subcategory of “Word Processing Software.”
In the paper, we make the claim that the type of software is a relevant factor when attempting an ethical analysis of a software category, whether it be the development, distribution, or use of software. We explore the relevance of the software’s type by examining the ethical tension between FS and PS that stems from the two different types of licenses. We consider a variety of categories of software and, using the lenses of both FS and PS, develop support for normative statements regarding the software development landscape. One interesting category that we consider is web software. Web software can be divided into two broad subcategories: server-side software and client-side software. Each subcategory offers a different perspective on the FS questions. Our analysis builds a case that there is a strong ethical argument for ensuring an environment in which FS web browsers can be developed. Our claim has an implication that extends beyond software; the ethical analysis also requires that the protocols and languages used for web communication be open and available as well.
In the remainder of the paper we consider other categories of software and accumulate evidence to support the claim that as society’s use of software changes and the role of software in society changes, the ethical analysis for categoies of software must necessarily be repeated. We give compelling ethical arguments that some categories should be FS, that some applications should be PS, and that some applications ethically can be either one. We also find that there are software categories that are most ethically robust when both FS and PS are available. Furthermore, we find that there are times when company involvement in both FS and PS is ethically appropriate, economically fruitful and technically advantageous. We conclude by noting that an overarching ethical concern surrounding software development is ensuring the software development environment has the agility to allow both FS and PS to make positive ethical contributions.