A couple of issues have come up recently highlighting the difference between the younger Open Source movement and the older Free Software movement which help properly frame the issues and provide some historical context.
Free Software is a social movement that started when Richard Stallman began the GNU Project in 1984. This movement wants all computer users to be free to run, inspect, share, and modify all published computer software (including for commercial software uses). Open Source is a developmental methodology that started in 1998 as a reaction to the Free Software movement. This movements proponents omit any mention of software freedom in their pitch to software developers promising more robust and reliable programs when one develops a program using this development methodology.
The theme is simple and consistent, just as explained years ago in the Free Software Foundation (FSF)’s essay “Why Open Source misses the point of Free Software“:
[P]eople from the free software movement and the open source camp often work together on practical projects such as software development. It is remarkable that such different philosophical views can so often motivate different people to participate in the same projects. Nonetheless, there are situations where these fundamentally different views lead to very different actions.
The idea of open source is that allowing users to change and redistribute the software will make it more powerful and reliable. But this is not guaranteed. Developers of proprietary software are not necessarily incompetent. Sometimes they produce a program that is powerful and reliable, even though it does not respect the users’ freedom. Free software activists and open source enthusiasts will react very differently to that.
A pure open source enthusiast, one that is not at all influenced by the ideals of free software, will say, “I am surprised you were able to make the program work so well without using our development model, but you did. How can I get a copy?” This attitude will reward schemes that take away our freedom, leading to its loss.
The free software activist will say, “Your program is very attractive, but I value my freedom more. So I reject your program. Instead I will support a project to develop a free replacement.” If we value our freedom, we can act to maintain and defend it.
In May 2014 Mozilla announced it would partner with Adobe to implement changes in Firefox so Firefox users could be restricted in what they could do with webpages (see Cory Doctorow’s essay in The Guardian, the Free Software Foundation’s reaction, and Brad Kuhn’s essay for more views on this). Firefox users would ostensibly install additional Adobe software to let Firefox communicate with any web service that wanted to implement digital restrictions on users. This additional software will be proprietary in order to keep users from understanding what it does.
The Open Source proponent’s reaction to this is general acceptance: be it reluctant or otherwise qualified acceptance, the additional software will be welcomed regardless of what effect it has on the user’s ability to ensure their computer only does what the user wants it to do. As the FSF points out, Mozilla makes this change favoring popularity over software freedom for Firefox users despite that Mozilla “have produced no evidence to substantiate this fear or made any effort to study the situation”.
The Free Software advocate’s reaction to this is rejection: any proprietary software means a reduction in software freedom which invariably lead to a number of problems as those in control of the proprietary software have their way with the user’s computer. In light of the strong ethically-backed rationale Free Software advocates provide and in light of the Snowden revelations, one realizes that democracy depends on privacy and privacy on a computer is impossible without software freedom.
An operating system kernel is a program that makes it possible for multiple programs to share a computer’s resources. The Linux kernel does this job and has become remarkably popular. But Linus Torvalds, the first developer of the Linux kernel, doesn’t think software freedom is worthwhile. Initially he released Linux under a license that forbade commercial use which made Linux nonfree software. Then later he changed the license to the GNU General Public License version 2, making Linux free software. The Linux kernel Torvalds distributes includes nonfree software in the form of “binary blobs”—code intended to allow the Linux kernal to work with certain computer hardware while not revealing how this interoperation truly works.
The Open Source proponent’s reaction to binary blobs usually comes down to convenience: it’s more convenient to run an operating system based on the Linux kernel (such as a GNU/Linux operating system) where all parts of the user’s extant computer system are fully operable, than to have to get different hardware or do without some functionality hardware provides because the only software that works to talk to that hardware is nonfree. Convenience leads to popularity and popularity is critical for an Open Source proponent.
The Free Software advocate’s reaction to binary blobs is to excise them. A group of kernel programmers build Linux-libre, a fork of the Linux kernel which purposefully excludes the nonfree blobs. Any less-functional or non-functional hardware is considered an opportunity; a call for reverse-engineering in order to figure out how the hardware really works, document that behavior, and implement free software to fill that gap.
By 2005 Linux kernel programmers had been using a nonfree program called “BitKeeper” to keep track of their programming work on Linux. BitKeeper was available at no charge to some Linux programmers because Larry McVoy, a Linux kernel developer and the head of BitMover, Inc. which makes BitKeeper, wanted to entice Linux programmers to become dependent on BitKeeper. Some Linux developers, such as longtime Linux developer Alan Cox, objected to allowing a proprietary developer to control how they worked with a free program and didn’t use BitKeeper to track their work. In 2005 Andrew “Tridge” Tridgell released software that allowed anyone to get code revision metadata from a BitKeeper server without using the BitKeeper program to do this job. Tridge’s work angered Torvalds and Tridge’s work was the principal cause for McVoy to rescind gratis licenses to the Linux developers. Ultimately Torvalds went on to develop “git”, a free software source code revision tracking system, used by many projects including Linux.
Torvalds’ anger is a typical Open Source proponent reaction to Tridge’s work; Torvalds said Tridgell “screwed people over” and he “tore down something new (and impressive) because he could”, and “He didn’t write a ‘better SCM [source code management tool] than BK [Bitkeeper]‘. He didn’t even try – it wasn’t his goal. He just wanted to see what the protocols and data was, without actually producing any replacement for the (inevitable) problems he caused and knew about.”. From the perspective of someone who doesn’t value software freedom, Tridge’s actions are not valuable in themselves only in how they led to McVoy’s reaction to deny Linux developers gratis copies of a practical means to an end.
The Free Software activists response is what Tridge did (and a reason why Tridge is a 2005 Free Software Award winner). McVoy’s reaction garnered thanks from Richard Stallman as “Linux development will no longer use this program, and no longer spread the message that nonfree software is a good thing if it’s convenient”. Free Software activists know that software freedom is a good in its own right and mere practicality is insufficient to achieve what a democratic society needs to run ethically and with respect for its citizens.