blog/content/en/posts/my-take-on-free-software/index.md

7.3 KiB

+++

class = "post" date = "2024-02-17T00:00:00-05:00" tags = ["philosophy", "floss"] title = "My Opinions on Free and Libre Open Source Software" description = "Because trying to write them as replies never works" type = "post" weight = 1 draft = true

+++

Why Write This?

Over the years, I've been engaged in many arguments and debates about the nature of open source, especially vis-a-vis funding open source. Invariably, my position is apparently unclear to others in the debate, forcing me to expend literally thousands of words clarifying minutae and defeating strawmen.

As a leader of two projects that are inherently goverened by my philosophy on Free and Libre Open Source Software (hereafter, "FLOSS"), I feel it's important to get my actual opinions out in the open and in as direct and clear a manner as I possibly can. Hence, this blog post.

Part One: What I Believe FLOSS "means" a.k.a. "The Philosophy of FLOSS"

"FLOSS" is a term I use very specifically, because it is a term that Richard Stallman, founder of the Free Software Foundation (FSF) and writer of the GNU General-Purpose License (GPL) suggests we use.

In terms of general philosophy, I agree with Mr. Stallman on a great number of points, though I do disagree on some.

To me, "FLOSS" is about two key things, which together make up and ethos and philosophy on software development.

FLOSS is about ensuring users have rights

This part is is pretty self-explanatory, because it's what's covered explicitly in every conception of FLOSS, from the FSF's definition, to the Open Source Initiative (OSI) definition, to the Debian Free Software Guidelines (FSG).

Personally, I adhere to the FSF and GPL's 4 freedoms, and thus I reject - for myself - non-copyleft licenses.

“Free software” means software that respects users' freedom and community. Roughly, it means that the users have the freedom to run, copy, distribute, study, change and improve the software. Thus, “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.” We sometimes call it “libre software,” borrowing the French or Spanish word for “free” as in freedom, to show we do not mean the software is gratis.

You may have paid money to get copies of a free program, or you may have obtained copies at no charge. But regardless of how you got your copies, you always have the freedom to copy and change the software, even to sell copies.

Now, as I'll discuss below, I have some disagreements with this definition when we begin to talk about "price". But those first two sentences are what's important here.

FLOSS is a statement of altruism

This is the part that I think, if not makes me unique, at least makes me different than most people who write and release "open source" or other FLOSS software.

I believe that FLOSS software is a statement of altruism. It is about giving something to the world, to humanity, and to the computing community.

On it's face, this doesn't seem radical, but it is, and it almost completely informs my opinions on monitization and distribution that I'll discuss below. So it's a very important point to take in: to adhere to "FLOSS philosophy" means, to me, to have altruistic motives and actions.

Part Two: Monetizing FLOSS done Wrong with "Open-core"

With my definition of "FLOSS Philosophy" out of the way, let's discuss monetization, starting with things I see as counter to said philosophy and thus intellectually dishonest or worse.

This blog post originally started as a treatise on Open-Core software, but without the philosophical underpinning, I found it very hard to explain why I felt the way I did about it.

For anyone unaware of what this term means, "open-core" software is software that is nominally FLOSS, but which hides some subset of actual code features behind a proprietary license and other restrictions. For a hypothetical example, consider a grocery list software program. If the program itself is free and open source, but the ability to, say, create lists longer than 50 entries or to create lists of electronics instead of groceries, is a proprietary, paid extension, this is "open-core" software.

Open-core is one of the most pervasive FLOSS monetization options. Countless pieces of software, from GitLab to CheckMK to MongoDB, are "open-core".

And I think this model is scummy, because it fundamentally violates the second part of the philosophy. How?

  1. "Open-core" software is not about altruism. Sure, it may seem that way because part of it is FLOSS. But that other part is not, and thus, the complete software solution is not FLOSS

  2. "Open-core" software is, almost invariably, marketed as FLOSS, becausee the social clout of FLOSS brings in contributors and users, building an "ecosystem" that is then monitized when...

  3. The lines of all pieces of "open-core" software is arbitrary. Why 50 grocery items, and not 100? Why just groceries but not electronics? Why is the line drawn there, and not somewhere else? The very existence of such a line is arbitrary, as is its positioning. Thus, the software as a whole is not FLOSS because of arbitrary limits on its usage.

Now, some may argue that feature X is "only for enterprises and they should pay" or something similar. This is nonsense. It is not up to the author to decide that, it's up to the user. And by presenting an arbitrary line, the philosophical idea of altruism goes out the widow. There is nothing altruistic about proprietary software, and "open-core" software is just proprietary software with FLOSS marketing.

There is one last part of "open-core" software that I find particular egregious. By its nature, "open-core" software is contrary to a volunteer ethos and community-driven development. Consinder the grocery example above and a new contributor called Jon. Jon wants to add support in for listing clothing in addition to grocery items. He wants to exend this "FLOSS" software. Will his contribution even be accepted? After all, the "FLOSS" part is just for groceries, and electronics are hidden behind the paywall. Will Jon's merge request languish forever, be ignored, or be outright deleted? And if it's merged to the "FLOSS" portion of the software, the line becomes even more arbitrary.

Part Three: Monetizing FLOSS done Wrong with "CLAs"

Contributor License Agreements or CLAs are incredibly common in "corporate" FLOSS software. They're usually marketed as "protecting" the community, when in fact they do anything but. The software license protects the community; the CLA allows the company to steal contributions at an arbitrary future date by changing the license at will.

I think it should be pretty obvious to anyone who adheres to the philosophy above why this too is scummy. Contributors make contributions under a particular license, and if that license is changed in the future, particularly to a propreitary license, those contributions are stolen from the world at large and divorced from the altruistic intentions of the contributor.

Now, not every project with a CLA will necessarily switch licenses in the future. The issue with CLAs is that they give the controlling interests the option to do so. And for how long can those interests be trusted, especially from a profit-driven corporate entity?

Part Three: Monetizing FLOSS done Right with Employer-sponsored FLOSS

Part Four: My Thoughts on the Future of FLOSS