Dr Richard Stallman — For a Free Digital Society
You know what they say about coming face to face with your heroes. It’s all true; at least in this case.
As a die-hard ultra-liberal by persuasion and a software engineer by trade, it stands to reason that my ideologies lie somewhere in the free software movement. Imagine my delight when I discovered that none other than the movement’s founder, Dr Richard Stallman, was coming to give a lecture to the people of Leeds.
Dr Stallman’s lecture title was “For a Free Digital Society” and the subject matter was about protecting our freedom in a world where things like surveillance and restrictions on ownership of content are easy for governments and megacorps to implement. Great: so far, so good. Those are things I’m worried about too and I’m looking forward to some solutions…
Except what comes out of Dr Stallman’s mouth doesn’t sound like well-reasoned answers to difficult political questions. It sounds like opinionated, poorly-researched, accusatory diatribe.
He begins by convincing us he’s a member of the tinfoil hat brigade (I don’t have a cellular phone because they’re tracking me!) He’s right, of course, but his argument comes across simply as “freedom beats convenience in all cases” with no room for manoeuvrability. One wonders how he got to the UK to deliver this lecture without first giving his fingerprints to the US government in exchange for a passport.
He goes on to attack those of us who make a living from commercial software or SaaS platforms, saying our employers are pure evil and working for them is unethical. His solution to how people should continue making a living is “almost all software development is for individual customers so work for a company that does this.”
I personally believe in software freedom and I’m aware of the questionable practices of commercial software developers but I see my job as a necessary evil in the pre-free world we live in and I like to think I’m making a difference from the inside.
I also respect the rights of other people to hold opposing economic views to me without resorting to tarring them all with the same brush; something Dr Stallman has no trouble doing.
Later, he concludes that, since the music publishing industry is corrupt and restricting freedom, everyone should start breaking their country’s copyright laws instead of challenging them democratically.
The really frustrating thing about all this is that I concur with most, if not all, of Dr Stallman’s fears about restriction of freedom — having read sensible reasoned arguments in the past — but a whole cross-section of his audience (I discover from talking to them afterwards) had not done so and left the lecture completely jaded by the ideas due to Dr Stallman’s “Batshit Messiah” persona.
Dr Stallman is not representative of the movement he created, thankfully, and I’d encourage anyone who attended his lecture to take the time to read more reasonable literature on the subject by the FSF and also wider-reaching groups like the Electronic Frontier Foundation and Liberty.
Great! An honest review! And I thought it was just me…
If you go to a backery and buy a cake, is it unethical if you don’t get the recipe as well?
If you buy a radio, is it unethical if you don’t get the construction plans for it?
If you buy some software, is it unethical if you don’t get the source-code?
If you buy a processor, is it unethical if you don’t get the “hardware description language”-description of the processor?
Stallman sees it as an ethical issue. Maby he is ultimately right. I simply don’t know.
He’s right that sharing is a good thing.
But is it really an ethical issue whether or not you get some recipe, construction plans or source-code??
Tony wrote: “If you go to a backery and buy a cake, is it unethical if you don’t get the recipe as well?”
The analogy between recipe and source code, in the way you present it, is flawed.
Let me explain: the cake is the OUTPUT of the recipe. If a recipe is freedomrespecting (by allowing unrestricted use, modification, and distribution with out without modification), then this does not apply to the OUTPUT, i.e. the cake. Put another way: the cake (output) is not the corresponding source of the recipe-steps performed. (See http://hackerpublicradio.org/eps.php?id=1116 at tracktime 30:58)
To fix the analogy. Here’s an example of a violation of “freedomrespecting recipes”:
Assume a recipe-seller states: “all my recipes are freedomrespecting.” You then decide to purchase from him a recipe-executor-black-box, and a number of recipes on USB-stick. At home you plug in the recipes-USB-stick into the recipe-executor-black-box and select “Grandma’s ultraspecial chocolate cake”. The executor-black-box removes some ingredients from the connected ingredients-containers (flour, sugar, chocolate, etc.). You cannot see what’s going on inside, but after one-and-a-half hours… out comes a cake!
So you tell yourself: well that’s great, but I want to bake this cake with my own hands and change the steps slightly. You connect the recipes-USB-stick to your own computer, expecting to find the steps. But low and behold: you find that the “recipes” are only in a machine-readable binary format, that you cannot decipher them.
This is a freedomrespecting recipe violation!!! If the recipes really were free, you would have received not only the binary format, but the steps of the recipe in human-readable english as well!
Now lets say you have aquired a freedomrespecting recipe for a cake (and here I really mean a free recipe, in that it is not obfuscated or coded; but instead a description of steps). Lets say you have a bakery and sell a customer the cake (baked according to the recipe): do you have to give the customer the recipe?
No, since the cake is the output. You are not selling the customer the steps to produce the cake.
But now you might try and apply this to software and say: “But look here: the binary program is the output of the source code. So if you pass on the binary program, you don’t have to pass on the souce code, right?”
This would be a misunderstanding, since the program is NOT the output of the source code. Instead: the program is merely the output of a compiler. But the binary program is a direct transformation of the source code: The steps in the program, are still the steps in the source code. We say: the source code is the “CORRESPONDING SOURCE” of the program binary.
Thus with free software, the software … in all the forms it is distributed: binary, etc. needs to include the “corresponding source”, that give one the freedom to modify it.
Tony wrote: “If you buy a radio, is it unethical if you don’t get the construction plans for it?”
This analogy between construction plans and souce code is also flawed.
The construction plans can be free (freedomrespecting). But the construction plans are not the corresponding source of the radio: The radio does not perform the construction steps. The radio does not have a corresponding source, since it is the output of the construction steps.
Tony wrote: “If you buy some software, is it unethical if you don’t get the source-code?”
Depends on your view. You can certainly argue: yes. First off: the steps the program runs, are the steps that are described in the source code. Furthermore: if the program runs on a general purpose computer, then you could easily change it (lets say it is not software that is burned into a ROM for an applianc like a toaster.) Then it is only fitting that you should really be able to make use of this possibility (changing the program on your computer), and that requires a form of the program that is best suited to do that job: the corresponding souce.
On the other hand: If you have proprietary software, then – even though you are running the software on a device that easily allows changes – the owner of the propriertary software has deliberately decided to make this difficult or illegal for you to do. Then only the owner controls the program, and you might be called a fool for using it.
If you buy a processor, is it unethical if you don’t get the “hardware description language”-description (HDL) of the processor?
Depends on your intent: do you want to analyze what the processor’s logic is doing, and then have the possiblity to make changes to the processor and create your own (with the guarantee that your logic will be on the chip [and not some fab’s back-door logic])?
If you buy a processor created by a fab with modern photolithography, then you get a chip that you cannot change. In that case you don’t need the HDL-description. BUT: if you buy the whole fab itself (oh: so you have those billions of dollars?!), then you have the possibility to make changes. In that case you’d be a fool, if you don’t insist on getting all steps, and descriptions, etc. for making the processor chip, and being able to change it, for example if the chip happens to have a serious bug! If you cannot fix the chips hardware-bug, you’ll probably be out of business very soon.
If on the other hand you buy a FPGA (not so expensive: say 500 dollars or cheaper), and the processor is synthesized on that FPGA, then you can change the hardware-description (via the HDL) and load the changes onto the FPGA. In that case, you’d be a fool, if you don’t get the freedomrespecting HDL-description (e.g. in Verilog or VHDL code), in order to actually do that.
The free software definition (of Stallman), applies to the source code and to the binary program. The 2 (source and binary) are linked: the steps in the binary program are the steps in the source code: they are just a transformed version of the same thing. Except that one is easy to change (source code) and the other is incredibly difficult to change (binary program).
The source code is the corresponding source of the binary program. Free software gives you the freedom to make changes (that you can realistically realize, since that’s what you can do on general purpose computers), by providing you with the corresponding source.