Seek Freedom, not Permission

I feel like I have to come out of the closet. There’s something about me that is very important to who I am and how I see the world, about which almost everyone I know has little clue. And I’ve been feeling that you don’t really know me if you don’t know this about me.

Software freedom is very important. It is a crucial point in managing power relationships between you and corporations, concerning how you manage information, now and into the future. What may appear to be most convenient today may in fact limit us in the future.

A caveat: I apologize in advance to my gay friends for using the coming-out term. My closet is nowhere near as oppressive as theirs. Nevertheless, I use the term sincerely: I’ve come to feel I must explain this facet of myself to my friends.

Also, I realize the cause I’m describing here is not as urgent as global warming, racism, Middle Eastern refugees, or many other issues. Nevertheless, it’s an issue concerning infrastructure, about how we do things, and it can be addressed in parallel with other issues. Moreover, I think almost every ailment we have today goes back to disempowering ordinary people, and that also is a big part of what software freedom is about.

The state of things

There are many threads in this conversation, so I’ll try a format following Wittgenstein: a series of paragraphs that will cohere, eventually, with luck.

What is software freedom?

I try to keep this essay free of specific computer knowledge, but it hinges on the facts that  most software is created by writing “source code” which is human-readable, and then “compiling” this code into an “executable” that the computer can run.  The executable is not human-readable; it is essentially inscrutable, sometimes called a “binary blob.”  By providing a binary blob (under a license), a software supplier gives one permission to run the program; by providing the source code, the supplier gives us freedom to modify the program.

The Free Software Foundation articulates four software freedoms.  To my mind, loosely speaking, software freedom concerns the ability to do things with one’s computer without asking permission, including manipulating all the software on your computer as well as distributing modifications to anyone one likes.

“Free Software” and “Open Source”

“Free Software” is software distributed under a license that grants the user the right to the source code, but also prohibits anyone from hijacking this code by turning it into a proprietary product that competes with the original Open version. “Open Source” is a term coined to sell Free Software to corporations, but it has come to mean software which is almost fully Free, but whose license lacks the prohibition against hijacking. Therefore Free Software is Open Source, but not (necessarily) vice versa.

This essay is not intended for programmers

Programmers already know the value of freedom to program, just like a mechanic knows the value of the ability to open the hood of a car. (Search “Right to Repair,” by the way.)  This essay is written precisely because non-programmers typically think software freedom is of value only to programmers. No, software freedom is critical to society at large.

Computers are misnamed

The first programmable digital “computer” was used (I’ve read) to calculate ballistics trajectories. (There were earlier computation devices that were not both digital and programmable.) When did you last truly compute something? Would that be before or after your last video?  E-mail?  These devices have a role in our lives because they handle information, through communication and media. We communicate, we take photographs and videos, we record and listen to audio, we chat by text, audio, and video, all with “computers” that aren’t computing anything except in the service of these information-oriented activities.

Information is important for society today

That’s the understatement of the year! Think about “the information economy,” online banking, videos of police brutality, and how much public discourse is now online. Also, consider the economic role of design: which job would do you hope for your child will get, the job of designing a product or the job of working on the manufacturing line that stamps out a million of them?  The former, I’m sure.  But what is a design but information, a recipe?

Furthermore, the importance of information in society has been increasing, and will continue to grow. Very soon your refrigerator will be communicating on the internet. Who will control that process?

Can you dispute that as soon as scientists figure out how to integrate information networking directly into our brains, we will do it? The current generation at the time will be queasy, but the young people will flock to it instantly, and will complain that their elders just don’t get it. Now consider what it means for that implant to be controlled by a corporation, and for your access to be limited.

Your information management responsibilities

Let’s get more specific about important information. Will your children inherit your family photos? Your written work? Will they pass them on to your grandchildren? For what time period should these items persist?

You have the responsibility to safeguard these items, for the sake of yourself, your descendants, and society. Do you have any idea how this is going to work? Please don’t give a cynical shrug and say it’s the nature of our crazy times, that it’s hopeless. It only feels hopeless because you’ve been disempowered, and you’ve forgotten what agency feels like. Preserving digital data is a solved problem; more later.

Coercion…

Here’s a worst-case scenario of a sort that’s all too common: you need to use a web browser plug-in in order to access your bank’s web site, but the plug-in vendor has stopped supporting the version of your operating system. Your operating-system vendor has stopped supporting your machine. So, you have to buy a new machine—even though your current machine is physically capable of doing the task, if only vendors would provide the software, in the form of a compiled  “binary blob” give permission.

Some of you will be saying, “Stop complaining, get with the program, and upgrade already.” And indeed there are times to upgrade. But who decides when you upgrade? Is it really tolerable for a commercial entity, whose job is to sell stuff, to decide when you need to upgrade? Why do we accede to this?

To be fair, there do exist dependencies among software packages in the Free Software world, and versions evolve over time, so there do arise cases where unwelcome change happens.  The two most widely-used user interfaces (KDE and GNOME) have both undergone radical redesigns, to much consternation and online ink-spilling.  However, in both cases, communities spun off their own versions to adopt the “orphaned” old version and maintain it. This rather proves the point that Free Software gives the capability to choose a different supplier if one is unhappy with one’s current supplier.  Also, if your software distributor stops offering your favorite program, you have the ability to install it yourself.  It might not be easy, but it’s possible.

…and software complexity

Software is incredibly complex. A software application can take megabytes of storage, but changing a single byte (approximately one millionth of a megabyte) could cause the application to fail (depending on where that byte happens to fall).

Returning to our example of the plug-in causing a hardware replacement: that dependency was just one of a million potential dependencies. Every dependency is a possible coercion point. Each software application is a virtual coercion minefield. At each point, a corporate vendor can make a design choice that gives you maximum flexibility, or coerces you in some way. Even if they choose the former in most cases, the application as a whole is likely to be coercive.

Given this, we should start out from a position of general suspicion regarding proprietary software.

Power and corporations

There have always been power relationships between suppliers and consumers. The traditional bulwarks against supplier power are (1) competition among suppliers and (2) the potential for public outrage.

In the U.S., the Federal Trade Commission prevents mergers that curtail competition, but for proprietary computer operating systems (for laptops and desktops) we have only two vendors. If these were airlines, the FTC would have stopped mergers long before now.

(With phones and pads we have a few more choices, but laptops and desktops remain essential for modern life.)

The minefield of possible coercion points inherent in software complexity provides so many avenues for coercion that two vendors is far too few to prevent consumer exploitation. The exploitation could be worse; competition, such as it is, keeps prices from being ridiculous. Nevertheless, you are constrained. You might not notice it because you’re so used to it.

Here are a few examples. When you use a device with solid-state storage, whose storage sites wear out faster than spinning hard drives, can you use a file system that automatically distributes the wear evenly over the drive? Can you choose the file system at all?

If you get fed up with a software distributor, can you replace them while keeping all your data intact? Can you install an operating system from another distributor and actually keep your data untouched? Can you change applications altogether and keep data formats unchanged?

By the way, it’s not that corporations are inherently bad.  Red Hat has been making money selling Free Software for many years, and I and others celebrate their success.  It’s not that Red Hat is especially virtuous; they simply  cannot coerce customers by selling Free Software.  Under these conditions, corporations are great.

Network effect

With computers being used as communication hubs, and software being full of potential coercion points, “network effects” are powerful. If someone sends you a Word document, or wants to talk with you via Skype, they are reinforcing the Proprietary world, in a way that has nothing to do with the merits of that particular software.

By the same token, telling someone they should send you an OpenDocument file, or talk with you via Ekiga or Ring, you are increasing the space in which Free Software can operate. This is one way you can help the Free Software world a lot, without being a programmer.

The internet itself is an open standard

When it was created, the internet’s founders really created a standard, and let everyone use it. To create a web site, there is little permission required. You need permission to use a name, only to avoid naming collisions. You need permission from your service provider, but that is just a matter of paying for service. Otherwise, you simply need to work with communications protocols correctly.

So they created a standard, let everyone use, and look what happened. No one said, “Let’s build a network and then search engines, social media, online publishing, and online shopping.”

Suppose a corporation had invented the internet. It surely would have built in control and maximized its financial take. Other corporations would have created competing networks, which defeats the notion of a network. The whole thing would never have blossomed into the internet we have today.  CompuServe was essentially a privately-run gated precursor to the internet, and while it was innovative, it could not compete with the internet and the world-wide web.  The logic of openness could not be matched.

And then there’s the question of surveillance

Eric Snowden alerted us to endemic, illegal surveillance by the U.S. on its own citizens. It’s so wonderful that that’s now all taken care of!

Seriously, if it were taken care of, would we know? I don’t know which is worse, the surveillance itself or its director lying to congress, saying it didn’t happen. So now they say it’s not happening…and we can trust that how, exactly?

Besides violating our rights and showing basic disrespect to the people who pay for government in the first place, the mere thought of surveillance dampens public discussion. Consider doing an internet search on “Al Qaeda,” or how to build a bomb. Do you think twice? Might it put you on a watch list? (Hey, I just wrote it in a blog—and you’re reading it! Maybe if you just close the window quietly now, no one will know.)

If you’re concerned about surveillance, there are a number of things you can do, but it could all be for naught if the NSA can go to Apple or Microsoft and negotiate a back door. There is only one way to ensure your software is free of back doors: use software developed in the open.

For some Free Software advocates, this principle alone is sufficient reason to use Free Software.

Source code and power

Working software source code is the ultimate mechanism to break design lock-in points.

Example: for a variety of reasons, I’m excited about EOMA68 devices to be released soon. These devices use an ARM7 chip architecture (found in cell phones) rather than an Intel-based architecture. Due to the different architecture, a variety of proprietary software will not work. The software exists, and is made available gratis to cell-phone owners, but for this project, the suppliers are not willing to provide the required binary blobs—they do not give permission.

However, every Free-Software “product” will work, because programmers will simply recompile source code for the new architecture. No permission required. With Free Software, my choice of software and my choice of hardware are now independent of each other.

(Programmers, I can feel you cringing. I know there is often more required than a simple recompile. The point is that, given source code, there’s no doubt that the migration can be done.)

Similarly, working source code and, especially, open standards are a bulwark against data loss over the long term. Will we be able to read .doc files in 100 years? Only if Microsoft is around, and gives permission. The source code for early StarOffice (now LibreOffice or OpenOffice) is publicly available. Furthermore, that particular format is a XML file (text) archived by zip (a common algorithm). Anyone who unzips the file can see contents, if not the page layout. And the format is publicly documented. We’re in much better shape to read a Star Office document in 100 years (already ~20 years on) than a .doc document.

Parallel Earth: A Free Software World

Some would argue that the ability to use Free Software doesn’t constitute a full choice; what about the freedom to use Proprietary software?

Continuing the EOMA68 example, I won’t be able to use Skype. Even though I’ll be able to use any of several Free Software video-conferencing packages, what if my desire is to use Skype? What is this freedom worth, if it doesn’t include my preferred choice?

This is a valid point. Let me characterize the situation this way: there are two software worlds, the Free Software world and the Proprietary Software world. They don’t mix well. Before we consider other choices, we have one fundamental choice: whether to operate in the Free Software world or in the Proprietary Software world. Subsequently, we can make whatever choices each of those worlds offers. But in no event can we choose everything we want at any moment, from both worlds.

So, our first choice is in fact which world we want to (predominantly) live in: a world of Free Software driven made by users, for users, or a world of Proprietary Software governed by permissions.

Furthermore, whichever world we choose to inhabit will be nourished by our presence. The primary benefit will be the network effect to which we contribute.

Free Software world: a nice place to live?

If our first choice is which world to live in, is that even a viable choice? What’s it like to live in the Free Software world? Here I provide an honest, but subjective, assessment.

At a high level, the Free Software world has largely written the software it needs to write, though improvements should, and do, continue. The major challenges now are social rather than technical.

The Free Software world has essentially conquered the server space. Notwisthstanding the occasional commercial Unix big-iron server, the internet runs on a GNU/Linux foundation. This demonstrates that technical achievement is possible.

Free Software has made it possible for programmers to help others, without asking permission, through projects such as GNU Health, which is being deployed all around the world.

In the user space, we have elegant, beautiful, and effective user interfaces. KDE is so sophisticated and powerful it’s like alien technology, and it surpasses any commercial user interface for capability and features. XFCE is extremely elegant, yet tailored to run on old hardware. GNOME has paid close attention to usability and aesthetics. These are a few of many. If you thought Free Software ran only from a command line, look again.

We have a rich set of applications. There used to be gaps in a number of areas; some years ago we had an excess of web browsers but a dearth of accounting programs. Now coverage is extremely broad.  One could discuss features and look-and-feel of particular applications, but there’s hardly a functional area that is bereft.

Considering how much has happened over the last few years, I’m confident that current gaps will be filled, and applications that are buggy or hard to use will get refined.

The Free Software world regards software ease-of-use somewhat differently than the Proprietary world does. Frequently Proprietary software tries to achieve ease-of-use by doing tasks for the user, and obscuring what is actually happening. This obscuring is anathema to Free Software’s attention to empowerment.  Free Software programmers do work hard at ease-of-use, but tend to stage automation while clarifying what is actually happening. This empowerment also contributes to education; if our kids used Free Software in school, our future economy would be secure. On the other hand, if one wants the computer to be essentially invisible, Free Software is unlikely to satisfy.

There’s an air of respect for the user that permeates a Free Software system. Competing applications don’t duel for mastery of your desktop; they serve at your leisure. An extreme example: the Konqueror web browser includes a menu item: “Open page with Firefox.” Coercion is visibly anathema.

On to some more challenging areas: one is social media. There is excellent software to run a service (e.g., Friendica). The challenge isn’t the software, but whether it should be run in a centralized way. Centralization implies potential for control. Decentralization is possible, but requires lots of individuals to step up to run instances, bringing along their friends and relations. I have plans to do this myself, but I’m not under illusions: doing this on a large scale entails a large number of individuals collaborating—the very definition of a social movement.

Actually, WordPress is Free Software, so you’re looking at one success story! But the particular service I use is centralized (and might use non-Free JavaScript, I don’t know).

I believe the toughest nut to crack is media—music, video, and other arts. We can’t watch Netflix without a binary blob, which is to say, without permission. Netflix requires a binary blob to ensure we can’t copy the video. This is not a technical problem, and there’s nothing we can do except persuade Netflix (and  its cousins) that their fears are groundless. Amazon has been selling unlocked audio files for years, causing no mass piracy that I’m aware of.

A related issue is video games. Video games blur the line between art and software. I believe that art should not be free. As art, it need not be modifiable. Also, artists deserve the right to control distribution of their work. So the software freedoms I advocate do not apply. On the other hand, the art is embedded in software, which should be Free. One compromise is a Free Software “engine” that runs artistic “content”, but this could limit the scope of possible games.

Another challenging aspect of the Free Software world is funding. Contrary to common belief, people who work towards a Free (Libre) Software world believe that software development should be funded. The most straightforward way to fund software development is to hold the source code hostage, and distribute binary blobs—i.e., the proprietary model—but this is antithetical to freedom. But this is not the only funding model. Red Hat has been making money for many years “selling” Free Software—but in truth, selling support. Snowdrift shows promise for meaningful donation support that avoids the free-rider problem. The Linux Foundation, which develops the Linux kernel and other software, is funded by corporations whose business relies on the kernel. Some software projects have used crowd-funding successfully, and host organizations can solicit donations (the U.S. public radio model).  It’s not easy, but there’s hope.

The shark and the coral

Certain species of shark have to keep moving forward in order to push water past their gills; if they stop, they die. At the other extreme, coral don’t move at all (in their sessile stage). Yet what they build lasts for thousands of years.

Proprietary software is like the shark: it can move fast, but cannot stop, lest the software product is lost. Someone can get an idea, raise money, hire a roomfull of software developers, and crank out spiffy software in a short time. Then they need to sell the binary blobs in order to pay the developers. And then, once the idea has become reality, do they fire the developers? Of course not, they put them to work on Version 2.0, and convince customers that, while Version 1.0 was good, they really can’t live without Version 2.0.

If Version 2.0, or 3.0, or whatever, ever fails, then the software ceases to become available for distribution in the world. This is the shark; it cannot stop moving, lest it die.

Meanwhile, in the Free Software world it’s rare to assemble a roomfull of dedicated developers who crank out something brand new in a short time. Even with corporate support, it’s usually a team of people distributed around the world, across multiple organizations. Development proceeds on its own timetable, sets a firm foundation first, and releases when it’s ready (sometimes a little before!). Once it’s released, however, it’s available to the (Free) world forever. And additional software projects can build on top of this foundation.  This is the coral.

The shark is sleek and moves fast, but in the long run, don’t underestimate the coral.

By the way, when a software product is really an integration of several existing pieces, or wrapping a graphical user interface around a command-line tool, the Free Software world can move very, very quickly, because it has a huge breadth of existing software to draw on. I’m referring here to truly original development, grappling directly with an unsolved problem.

How to enhance your information agency and freedom

What has emerged in this analysis is that, as a non-programmer, one’s agency in managing information is diminished by coercion points in software design. Using Free Software gives you the maximum freedom from coercion, at least within the Free Software world—not freedom within the Proprietary world too.

However, if you’re not ready to install a Free operating system quite yet, you’re not off the hook—there are other measures that can help a lot to limit your coercion.

First, use open standards whenever possible. Consider the JPEG standard: everything that deals with graphics can handle JPEG, and always will. How can we extend this to, say, office documents? Try the OpenDocument format. It’s universally recognized in the Free Software world and widely in the Proprietary world. Use LibreOffice, OpenOffice, or Microsoft Word with a plugin to handle OpenDocument. Use webm for video. And for video, I’ve always preferred Ogg Vorbis, but I have to admit that the Free Software encoder/decoder for mp3 (“lame” which is not at all lame) is excellent, and the patents governing mp3 will expire soon, at which point mp3’s would be an open standard supported by Free Software.

Incidentally, by using open standards, you’ll also be strengthening a network effect that benefits the Free Software world, even if you use proprietary software to handle these formats.

Along similar lines, avoid systems like iTunes that lock files within a system. Avoid lock-in in general. Buy digital music directly musicians’ web sites (maximizing their take), in FLAC format if possible, or, failing that, Amazon mp3.

Finally, poke a toe in the Free Software water. Try out a fully-free GNU/Linux system without commitment by running a “Live CD” such as found here.

A message for Software Freedom Day

I’ve been working on this essay for months. I didn’t realize I was approaching a publishable version on September 17, “Software Freedom Day.” For this occasion, Free Software’s founder, Richard Stallman (“RMS”) produced this video, which says just about everything I’ve mentioned, only more concisely and cleanly.

5 thoughts on “Seek Freedom, not Permission

  1. Good article overall. Your definition of free software is mistaken. You describe what is called “copyleft”. In the free software definition https://www.gnu.org/philosophy/free-sw.en.html even the GNU project makes it clear that while they themselves prefer copyleft, this does not make non-copyleft programs non-free.

    In fact, the Free Software Foundation has several times supported releasing non-copyleft software (such as the primary Vorbis implementation, and its replacement Opus)

    • Thanks for the feedback. Could you clarify where the definition is that you think is mistaken? I pointed to the four freedoms at fsf.org. My thought was to let the FSF handle the details of software freedom definition, which they do eminently well.

      • The article says ““Free Software” grants the user the right to the source code, but also prohibits anyone from hijacking this code by turning it into a proprietary product that competes with the original Open version.” — this is a description of copyleft, not a requirement of Free Software.

      • Ah, I think I see the issue. I was sloppy in my language; Free Software grants nothing, it’s the license that grants rights. My understanding of the term “Copyleft” is that it describes the general strategy of using copyright law to protect software freedom, and the more specific mechanism is the (copyleft) software license. Sound good?

      • p.s. I just read the GNU page and I see your point. However, I think adding an additional term is an unnecessary burden, given a correct description of the use of licenses. They don’t need to know we have a word for this mechanism.

Leave a comment