The philosophy of free software
28th Dec 2012 | 10:00
The place for open source in the wider ethical, economic and religious world
People love a good debate. We asked (with tongues in our cheeks) whether Linux was best understood as being Marxist or capitalist.
The comments that followed were a lot of fun, but most were also well thought out and got us thinking about how Linux and the free software movement fit in to some of the wider philosophical, economic, religious and ethical debates that have pre-occupied human beings over the centuries.
Seeing as even Linus Torvalds has been engaging in such idle speculation, as was shown in his summertime interview with the BBC, we thought it would be fun to continue the conversation.
We're going to take a sideways look at Linux and free software by exploring it through the guise of several of these ongoing debates, taking a look at a few theories and seeing how they might be applied to our favourite operating system.
Raspberry Pi: Everything you need to know
A warning first: to us, the most important thing about Linux and free software is that it's a practical reality. It's simply cool that this stuff works, it's free and people can have great fun using and making it - and some can even make a bit of money at the same time. Everything else is just gravy, so don't get too upset by anything you read!
Having mentioned Linus Torvalds' interview with the BBC, let's start there. In it, he said "…open source only really works if everybody is doing it for their own selfish reasons… the fundamental property of the GPL v2 is a very simple 'tit-for-tat' model: I'll give you my improvements, if you promise to give your improvements back."
What makes Torvalds' observation interesting is that it links in with discussions in philosophy, ethics, biology, psychology and even mathematics dating all the way back to Plato (at least!). In The Republic, Plato is discussing justice and morality, and wondering whether these are a social construction or some abstract good.
In doing so, Glaucon, one of the characters, proposes the idea of a magic ring that makes the wearer invisible. He suspects that both a just and an unjust person wearing the ring would act in the same way: taking what they like from the market, going into houses and "lying" with anyone they fancy, or killing their enemies.
He says: "If you could imagine any one obtaining this power of becoming invisible, and never doing any wrong or touching what was another's, he would be thought by the lookers-on to be a most wretched idiot…" since "... injustice is far more profitable than justice." What a depressing take on people!
The history of Linux
Whether you agree with Glaucon or not, it's obvious this is the same point that Torvalds was making: without social constraints, such as the GPL v2, I wouldn't be able to trust that if I give you my code improvements, you'll give me yours back.
Why would you? After all, if you just took my code and continued to improve your software, you'd have an advantage over me, having to do less work for a better result - and people are selfish!
It seems that even Plato at least speculated, as did Torvalds, that the world doesn't work by everyone saying: "let's all sing Kumbaya around the campfire and make the world a better place."
Free riders and security
Bruce Schneier addresses the same problem in his latest book, Liars and Outliers, making it clear just how current this conversation is, both inside and outside the world of technology. In the book, he describes something called the hawk-dove game, from game theory.
The concept is that in a wild population of birds, all competing to share a limited amount of food, some birds are hawks and some doves. Hawks are aggressive and will fight for their food: when they meet another hawk, the two will fight, with one getting the food and the other being injured and possibly dying. Doves are passive, and when two meet over some food, opt to share it between one another instead. If a hawk and a dove meet, then the hawk will always get the food, as the dove will choose to retreat.
Although you can draw many conclusions from a study of this game, the most important observation Schneier makes is that, whatever scenario you consider, there will always be at least a few hawks in the mix.
If the population started with 100% doves, a few would quickly work out that they could get a lot of extra food for themselves, by acting like hawks, with very little risk since they'd be unlikely to bump in to others acting like hawks, mostly doves. Of course, as the population of hawks grows, there'll come a time when this has bad consequences for the population as a whole. There won't be enough food around for the doves, who will slowly die out after retreating from so many conflicts without food, and hawks will come in to conflict with one another far more frequently and run a greater risk of being killed.
OK, enough talk of hawks and doves. What's this got to do with free software and the GPL? Well, one might conclude that without the GPL "letting us be selfish," as Torvalds puts it, we might find ourselves in a situation with too many hawks stealing code, not contributing back, and gradually eroding trust and participation, which would eventually destroy our population of open source programmers.
In the remainder of the book, Schneier proposes various "security mechanisms" that help us to trust the actions of other people, enabling us to work co-operatively even if we can't necessarily trust the (selfish) motives of the others. While Schneier points to things such as the law, the evolution of mirror neurons, etc, the GPL could also be understood in this sense; that is, as a security mechanism designed to enforce trust and collaboration. And very clever it is too.
Free software and economics
As well as being an interesting case study for those who are interested in co-operation, free software has received a lot of attention for its similarities with various economic systems. A good example of this is Bill Gates, who in 2005 said: "There are some modern-day sort of communists who want to get rid of the incentive for… software makers under various guises."
Now, of course, it's possible that Gates was less concerned with making a serious economic point than scaring free-market loving, capitalist American firms away from using free software; it's an observation that comes up frequently enough that it's worth considering.
The first point to note is that free software has little to do with Soviet communism, in which central planning and a huge police state, complete with prison camps and forced labour, were key features. Those who have followed free software for long enough will know central planning rarely, if ever, happens: the proliferation of packaging formats, distributions, office suites, desktop environments, web and mail servers is evidence enough for this.
What's more, no one is forced to work on free software or to use it. In fact, since all our data formats are implemented in open code, anybody could re-implement them in a competing program without batting an eyelid. Many have seized on these arguments to suggest that - much to Gates' frustration, we should imagine - free software has less in common with Soviet communism than do many proprietary companies.
Businesses such as Apple and Microsoft are renowned for their top-down planning, even praised for it; they're also infamous for the way they lock people in to their software and hardware packages by defaulting to closed, proprietary data formats that competing programs aren't able to implement easily themselves.
If free software has little to do with Soviet communism, perhaps it has more in common with Marxism.
One of the central ideas of this world view is that, by owning the means of production, whether that's machinery, knowledge or anything else, the upper classes are able to exploit the lower; without owning the means of production, workers must 'voluntarily' work for a wage in order to buy all the things needed to survive: shelter, clothes, food and entertainment. They can't really choose to work, and they can never have much of a say over their wages or the distribution of the profits.
One of the most enduring ideas of Marx was his hope that this situation could be fixed, with workers gaining their freedom, in a classless society in which the means of production are held in common.
Since, in the modern world, one of the key means of production is computer software, free software fits in to Marx's system quite nicely. The code is effectively held in common. All are free to read it, to study it, to share it and to rebuild and alter it. As such, it's impossible for workers to be locked in by those above them in the class system, since at any time they can choose to put the means of production, the code, to use for their own ends.
Freedom of thought
Eben Moglen argues for the impact that common ownership of code can have on our society in a keynote speech at the Wizards of OS 3, called "Die gedenken sind frei: free software and the struggle for freedom of thought".
In the speech, he argued that "the perpetuation of ignorance is the perpetuation of slavery" (he really knows how to turn a phrase!). His point is that without knowledge of economics, without knowledge of engineering, of culture and science - all the things that make the world turn - the lower classes can never hope to improve their situation, can never hope to take possession of the means of production.
What free software has done, along with free hardware, free culture and free spectrum, is unleash the means by which freedom of thought, of information, is near, if not already achieved.
Web servers aren't restricted only to those who own the means of production, because the code is free, and so anyone can share any cultural artefact they wish. Maybe it's just a song, but maybe its the means to create a global, decentralised currency, as in Bitcoin, or the plans for all the machines necessary to build your own small town, as in the Global Village Construction Set.
What matters is that all this has been enabled by common ownership of code.
Free software does feel like something that Marx might be able to get behind, then, so you might be surprised to learn that you can make a strong argument that it's a pretty good model for the free market, that thing so loved by capitalists and detested by Marxists and anti-globalisation protesters the world over. Well, maybe not free markets, but at least for one of the driving ideas behind them, spontaneous order.
One of the key ideas of the free market is that, as if guided by some invisible hand, price movements co-ordinate individual efforts in a manner that promotes the public good. As an idea, it's closely associated with Adam Smith and Freidrich von Hayek, who used the term "spontaneous order" to describe this, but it actually originates with David Hume, one of the great philosophers of the Scottish Enlightenment.
Hume believed that in the absence of a central authority, conventions and traditions emerge to minimise and resolve conflicts, and to organise social activities. Unlike Smith and Hayek, however, Hume believed humans have more passions than just profit, and that order and conventions could arise out of love for other things.
8 of the best tiny Linux distros
How to dual-boot Linux and Windows
24 things we'd change about Linux
Beginner's guide to Linux
How does this relate to free software? Well, it's obvious, isn't it? Free software is an example of spontaneous order, in the way Hume understood it. While there's little profit for many people who work on it, and since it's given away for free, there aren't really any price signals, in free software communities of people freely associate and work together to create software that society as a whole finds valuable.
There are some signals that likely influence what projects developers decide to work on, however. For instance, if the users of a piece of free software find a better equivalent, they'll probably move on. The developers, not wanting to write software that's not going to be used by anyone, may well also look elsewhere for new projects to work on that people will find more useful.
In this way, and without price signals, free software developers actually target their efforts on those areas that will be of most use to the greatest number of people, that is of the greatest good to society as a whole.