Should Rockets Have Only Free Software? Free Software and Appliances
by Richard StallmanCould there be a rocket that is totally free software? Should we demand that SpaceX liberate the software in its satellite launching rockets? I don't think the person who asked me this was serious, but answering that question may illuminate similar issues about the sorts of products people really buy today.
As far as I know, software as such is not capable of generating thrust. A rocket is necessarily principally a physical device, so it can't literally be free software. But it may include computerized control and telemetry systems, and thus software.
If someone offered to sell me a rocket, I would treat it like any other appliance. Consider, for instance, a thermostat. If it contains software to be modified, all the software in it needs to be free, and I alone should have the authority to decide whether to install some change. If, however, the software in it is not meant ever to be altered, and it communicates only through some limited interface, such as buttons on the control panel, a TV remote control, or a USB interface with a fixed set of commands, I would not consider it crucial to know what is inside the thermostat: whether it contains a special-purpose chip, or a processor running code, makes no direct difference to me as user. If it does contain code, it might as well have a special chip instead, so I don't need to care which it is.
I would object if that thermostat sent someone data about my activities, regardless of how that was implemented. Once again, special chip or special code makes no direct difference. Free software in it could give me a way to turn off the surveillance, but that is not the only way. Another is by disconnecting its digital communication antennas, or switching them off.
If the rocket contains software, releasing that as free software can be a contribution to the community, and we should appreciate that contribution—but that is a different issue. Such release also makes it possible for people who have bought the rockets to work on improving the software in them, though the irreversible nature of many rocket failures may discourage tinkering.
Readers have pointed out that SpaceX has received important financial support from the US government to develop its rockets. By rights, accepting this support should require SpaceX to release the rocket software under a free license, even if it uses that software only inside its own rockets.
Given the experience of Tesla cars, which are full of surveillance and tracking malware that Tesla can change but the owner can't, I suppose SpaceX rockets have that too. If someday rockets are sold like today's cars and tractors, software in them would be unjust, and it would probably be malware. If the manufacturer could install modified software in it but the owner could not, that too would be unjust. People are starting to recognize this: look at the right-to-repair movement, which demands only the beginning of these freedoms (much less than freeing the car's software) and nonetheless faces a hard fight.
However, I don't think SpaceX sells rockets; I think it provides the service of launching payloads in its own rockets. That makes the issue totally different: if you are a customer, you're not operating the rocket; SpaceX is doing that.
The rocket that SpaceX uses is not like your own car or van, or even a car or van leased to you. Rather, it's comparable to a moving company's van that is, for the moment, transporting your books and furniture to your specified destination. It is the moving company that deserves control over the software in that van—not the customer of the moment.
It makes sense to treat the job of transporting your things to Outer Mongolia, or to outer space, as a service because the job is mostly self-contained and mostly independent of the customer (“mostly” does not mean “absolutely” or “100%”), so the instructions for the job are simple (take these boxes to address A by date D).
If SpaceX has released the rocket software under a free license, that would give you the right to make, use and distribute modified versions, but would not give you the right to modify the code running in SpaceX's rocket.
But there is a kind of activity which a hypothetical future spaceship might do, which should never be treated as a service: private computational activity. That's because a private computational activity is exactly what you could do on your own computer in freedom, given suitable free software.
When a program's task is to do computing for you, you are entitled to demand control over what it does and how, not just that it obey your orders as it interprets them. You are entitled, in other words, to use your own copy of a free program, running on a computer you control.
No wonder there are companies that would like you to cede control over your computing activities to them, by labeling those activities as “services” to be done on their servers with programs that they control. Even things as minutely directed by the user as text editing! This is a scheme to get you to substitute their power for your freedom. We call that “Service as a Software Substitute,” SaaSS for short (see “Who does that server really serve?”), and we reject it.
For instance, imagine a hypothetical SpaceX Smart Spaceship, which as a “service” wants to know all about your business so SpaceX servers can decide for you what cargoes to buy and sell on which planets. That planning service would be SaaSS—therefore a dis-service. Instead of using that dis-service, you should do that planning with your copy of free software on your own computer.
SpaceX and others could then legitimately offer you the non-computational service of transporting cargoes, and you could use it sometimes; or you could choose some other method, perhaps to buy a spaceship and operate it yourself.