Reflections on the Nomenclature of Free and Open-Source Software
A few weeks ago, I read a blog post by Drew DeVault about the declining relevance of the Free Software Foundation (FSF)—despite the flourishing of free software itself—and what Drew believes the FSF should be doing to regain its former glory. On the whole, I’d have to say that I largely agree with his assessment; but that’s not what I wanted to write about.
(For anyone unfamiliar, this is “free” in the sense of “free society,” not “free pizza.1” In practice, free software is typically free in both senses, but the former sense is the one that’s important here.)
One sentence in particular caught my attention: Drew states that the free software movement is healthy “thanks to the open source movement and the near-equivalence between free software and open source software.” This highlights something that I suppose I already understood, but to which I’ve never given much thought—that free software (defined by the FSF2) and open-source software (defined by the Open Source Initiative) are almost, but not quite, actually the same thing. The difference is philosophical.
Practically speaking, the two definitions are nearly identical. Both stipulate that anyone should be permitted to run free/open software, and for any purpose; that they should have access to the original source code, and be permitted to learn from it and change it to suit their needs; and that they be permitted to freely distribute both the original program and any version they may have modified to other people.
When I first discovered Linux3—and, consequently, the concepts of free and open-source software—I perceived them as being two terms for the same thing. I settled on using “open-source” personally; it seems to be the more common of the two, and it feels more likely that a layperson will understand what it means without the whole “free as in…” explanation. I also developed the impression that those who insisted on the term “free software” were predominantly zealots, of the sort who run Trisquel on ten-year-old hardware and refuse, on moral grounds, to visit websites that use JavaScript.
But I formed those opinions something like fifteen years ago now, and a lot has changed in that time. Back then, many of today’s household-name tech companies were just getting off the ground, and in offering free (as in pizza) high-quality services—email, video hosting, social media, etc.—they seemed like champions of user experience. Now, those companies have become behemoths; and while those services are still undeniably convenient, their real cost—constant surveillance—has become clear. Businesses have turned increasingly to data mining as a revenue source, which has incentivized them to tighten their grasp on their users, which has inevitably made everything steadily worse (Cory Doctorow has written extensively on this topic). They’ve broken APIs that once allowed other people’s software to integrate with their products; they’ve abandoned open protocols like XMPP and RSS; they’ve endeavored to nerf the ad blockers that people created to make the web usable again amidst the sea of surveillance-based advertising that has flooded every website; they’ve replaced perpetually-licensed, discrete releases with subscription models where functionality you depend on can disappear at any time.
Despite such user-hostile behavior, these same companies have embraced the open-source development model. Because that’s what it is—a development model. The philosophy of open-source software champions the methodology of development in the open, for a litany of practical advantages: less duplication of effort, more standardization, lower development costs, more eyes finding bugs.
Though they both produce largely the same results, philosophically open-source software is about convenience for the people (and corporations) who develop software. Free software is about giving control to the people who use software. It’s about making sure that you—literally you, reading this, not just some rhetorical “you”—can have the power to make your devices do what you want them to do, rather than what their manufacturers think will make them the most profit.
With free software, even if you personally don’t have the skills to make changes, there’s a whole community of people out there who—provided you are civil, and respectful of their time—will happily volunteer their expertise, solely for the pleasure of helping out their fellow humans (and, okay, maybe a little bit for the hacker4 cred). At the absolute minimum, there always remains the possibility of hiring someone to make the changes you need—which is simply not an option for proprietary software.
Even if some piece of software suits your needs perfectly, and you can’t think of a single thing you would want to change, you’re still better off if that software is free. If it isn’t, then someday the company that makes it might go out of business, or change it in ways that make it less useful to you, or decide to stop supporting it, or decide it’s not worthwhile to make it work with whatever processor architecture/operating system/etc. comes next. That’s not to say that it’s necessarily easy to keep porting free software to run on new systems, but once again, at least it’s possible.
Having said all that, I still consider myself a pragmatist. As much as I would love for all software to be free software, I don’t believe—as some do—that proprietary software is inherently immoral. As cynical as I may have come to feel about Big Tech, I’m not about to swear off Google search, or Gmail, or other products that (in their current form, at least) are useful to me, nor am I going to lambaste my friends and family members for using the same. I’m not going to lie awake at night, ruing the fact that my work computer runs Windows.
I am going to be more mindful about writing software that respects its users. I am going to more carefully consider questions of privacy, longevity, and repairability when I contemplate purchasing new devices, or signing up for new services—though I expect it will often be necessary to make compromises. I am going to put more emphasis on those aspects, as well as user freedom more generally, when I talk to people about things like Linux, or LibreOffice, or what have you. And, to that end, I am going to start using the term “free software” more often.
Footnotes
The traditional explanation refers instead to “free speech” and “free beer.” However, while I’ve been known to enjoy a beer on occasion myself, I’ve never been quite comfortable with the alcohol reference in this context; and recent political contention around free speech absolutism has somewhat put me off that phrase as well, despite my own belief in the importance of freedom of expression and freedom of the press. ↩︎
I have to say that, regardless of the history involved, it seems very odd that something so fundamental as the definition of free software has no place on the FSF’s website, and is instead found exclusively on the GNU site. ↩︎
I understand the arguments for calling it “GNU/Linux,” and I don’t necessarily disagree with them, but it’s just too cumbersome to say aloud; and I’m the kind of person who reads by imagining a voice in my head, so I’m not going to write it that way, either. ↩︎
That’s “hacker” in the earlier, academic sense referring to computer enthusiasts who enjoy exploring the inner workings of technical systems, not the modern mainstream sense referring to cyber-criminals. ↩︎