Free Software is political

in #programming5 years ago (edited)

The Internet has been angry lately about Things in Tech, as the Internet usually is. And inevitably there have been the people saying "can't we just focus on code without the politics?" Which, while an understandable desire (and one I agree with), is simply impractical. What's especially telling, though, are the people who specifically name-drop FOSS (Free/Open Source Software) as something that is a-political and should be kept that way.

That... demonstrates a complete and total lack of awareness of Free Software itself. I assume in most cases that it's honest ignorance, so I will try to briefly explain why that is not the case. (Feel free to point people to this article in the future the next time they start down that line of thinking; just be nice about it.)

Free Software is political

Intrinsically and unavoidably political. Free Software is a political and ethical movement, that happens to be focused on software. The software itself is almost incidental to the politics.

If that seems odd or foreign to you, it's because you've only been exposed to Open Source. That is not the same thing. They are not interchangeable terms, much as the advocates of Open Source would like to convince you otherwise.

Free Software as a concept and a movement was founded by Richard Stallman in the early 1980s. It was based on a very simple, direct belief:

Computer users should be free to modify programs to fit their needs, and free to share software, because helping other people is the basis of society.

This is a moral, ethical, political belief. The personal sovereignty of the user to control their own digital lives, to make their computers obey them, not someone else, is at the core of Free Software. The right of users to help their friends, colleagues, and others is at the core of Free Software.

You may or may not agree with that position. That's fine. But denying that it is there, and is the basis of Free Software, is fundamentally false.

That's in direct contrast to proprietary software, under which

the first step in using a computer was to promise not to help your neighbor.

That is also fundamentally true; with proprietary software, you are actively, legally restricted from how you are able to help someone in need.

Free Software holds the political view that such restrictions are unethical. You may agree or disagree with that stance, but you don't get to deny its existence.

From the early 1980s to the late 1990s, Free Software increased in popularity until the corporate world started to take notice. Specifically, they took notice that releasing software under a Free license (as in, respects users rights to modify and redistribute) tended to result in higher collaboration, higher quality code, and zero-cost-available code (particularly once the Internet made digital distribution easy). They wanted that (who wouldn't?), but were not comfortable with the "politics" of Free Software. Whether the dual meaning of the word "Free" or all the talk of users' rights or both, many companies were squeamish about, you know, respecting their customers' personal sovereignty.

So in 1997, some Free Software advocates decided to try and "rebrand" Free Software as "Open Source" instead. Specifically, stop talking about the ethics and politics and just focus on the development benefits. Companies liked that, because they felt they could get free stuff without having to talk about users' rights. Some would-be advocates explicitly called for removing the "politics" from Free Software in the name of pure market share.

Robert McMillan, editor of Linux Magazine, “feels that the move toward open source software should be fueled by technical, rather than political, decisions.”

Caldera’s CEO openly urged users to drop the goal of freedom and work instead for the “popularity of Linux.”

In other words, it doesn't matter what rights end-users have. All that matters is that lots of people use our stuff.

“Open source is a development methodology; free software is a social movement.” For the Open Source movement, non-free software is a suboptimal solution. For the Free Software movement, non-free software is a social problem and free software is the solution.

Even if one could prove that denying users the right to control their own computer resulted in higher quality software, it would still be denying users the right to control their own computer and thus be morally deficient. That is the position of Free Software.

That is a political statement.

It's a critically important one, too, given that we've known for years how often proprietary software is abused, by its developers. Microsoft famously gave the NSA early access to security holes before fixing them. Every week we hear about new software on phones or desktops that is spying on us and reporting personal activities back to the the company without our consent. All of that would be difficult or impossible if users had access to review the source code of the software they install; even if most don't, it takes only one person to notice back-doors or embedded spyware and publicize it, and publish a modified version that removes the malicious code.

Does that mean certain business models (like selling user data without their consent) would be infeasible? Very likely, yes. Free Software is the ethical, political statement that defending users' rights is more important than your business model. If your business model requires violating users' rights, then you don't have a business model.

You may agree or disagree with that position. But it is very much a political statement.

Free Software is about protecting end users from developers. From our industry. Because the IT industry has made it crystal clear that we cannot be trusted.

If the users don’t control the program, the program controls the users.

Free Software is Civil Rights applied to software.

Meh, I'll just follow Open Source

Perhaps you don't care about users. You would rather have lots of users and high quality software and not care if you are enabling others to use your work to control others against their will. You're just an Open Source developer, you don't buy into the Free Software ethic, keep the politics away from me, I just want to code!

I would love to tell you that's possible. Really, I would. Life would be so much easier if that were the case.

Perhaps at the micro-scale of which sorting algorithm is faster code can be a-political, but not at the level of an application.

Our choice is not between "regulation" and "no regulation." The code regulates. It implements values, or not. It enables freedoms, or disables them. It protects privacy, or promotes monitoring. People choose how the code does these things. People write the code.
--Larry Lessig, Code is Law

What features a program has, what is prioritized, what data it collects, how much effort is put into accessibility, what the security features are, what back-doors are included, and any other design and direction question is a human question, not a technical one. Those subjective decisions are what define a program, not the maybe-objective questions of class and module design (although those tend to be rather subjective, too).

Those subjective decision are made by people, subjectively. While some may have greater or smaller ethical implications, none of them are completely ethically neutral. Ethically neutral software design does not exist, much as we would like it to.

What ethical decisions will you make in your application? That's a political question.

What type of users will you prioritize, deliberately or inadvertently? That's a political question.

What steps will you take to ensure the tools you build cannot be used to enable manipulation, non-consensual control, stalking, or predatory behavior? That's a political question.

Software development is those questions, just as much if not more so than what you name a function. Wishing it were just objective math does not make it so. At times I wish it did, but it does not.

We can build... cyberspace to protect values that we believe are fundamental. Or we can build... cyberspace to allow those values to disappear. There is no middle ground. There is no choice that does not include some kind of building. Code is never found; it is only ever made, and only ever made by us.
--Larry Lessig, Code 2.0

Software is inherently political. Free Software is explicitly political. It always has been.

Quotes not cited are from "Free Software, Free Society" by Richard Stallman, available in print and free PDF format. I recommend the paper format.

Sort:  

Thank you for the article, because indeed, free software should not be used for political purposes, but unfortunately it is, it is often used with governmental interests.

free software should not be used for political purposes

Um. Did you read anything I wrote at all?

Or maybe Freedom 0, as defined by the Free Software Foundation:

The freedom to run the program as you wish, for any purpose.

The act of writing Free Software is a political act. By definition.

Governments absolutely can use Free Software (per Freedom 0). And they absolutely should, because they should be transparent to their citizenry, which means the software they write and use should be available to the public to help verify that they're not doing anything nefarious. Stallman writes at length in his book that government has an obligation to use Free Software on ethical grounds.

I genuinely have no idea what you're even talking about, but it's not Free Software.

I mean that if a government "takes the source code" of xxx project to do something, it is fair to release that product under the same license (unless the same license does not optionally allow such a thing, for example BSD licenses / MIT). In the case of the "Petro" cryptocurrency of the Venezuelan government as far as it is known, it was based on the Ethereum source code (apparently they changed at the end). Ethereum is open source (although it has multiple licenses including MIT), I think the "fair" thing is that the source code is released or at least "contributions" from the Venezuelan government, but nothing, Petro is a closed product, you can see on its official website https://www.petro.gob.ve/index.html that the source code is not available, nor do they make references to what was taken in part from free software, I think that is frank "plagiarism" (even though there is a MIT permissive license, at least thank the base project, but nothing) . That's what I meant that the opensource code should not be used for governmental or personal purposes without even mentioning or thanking the original source.

Oh! That's an entirely different animal.

I wouldn't trust any cryptocurrency that isn't 100% Free Software, frankly. I barely trust cryptocurrency at all. :-)

And IMO government should be required to use as much Free Software as possible and release as much of it as possible, whether they write it themselves or not. (Modulo nuclear launch systems and stuff like that.)

Software is front line of the spiritual battle.