This blog post is part of my contribution to the open online course Introduction to Openness in Education.
Ok, so the last post was a bit long. Like essay long. I started writing and then I kept on writing til I’d got it all out. I’m pretty happy with the content, but it took too long to write and it takes too long to read.
So here’s my pithy(ish) introduction to Open Source.
‘Open’, as you might expect, refers to the free sharing of stuff. The ‘Source’ part refers to source code: the human-readable form in which computer software is written. So we’re talking about software distributed in human-modifiable form, not the compiled, click-to-run executable most people are used to.
There are two key arguments in favour of Open Source: the moral one and the economic one.
The moral argument goes like this. In the beginning only a few dedicated hackers had computers. They put their craft first, worked together well and shared their developments with each other. They were able to learn from and build on each other’s code, and everyone was happy.
As the computer industry grew, the business types who started up companies to exploit new developments realised that they could make money by keeping the source code secret and only releasing the executable code to customers. So they made non-free software the norm and the world a poorer place for it.
But there are many people who feel this is naive and unrealistic. To convince them, you also need the economic argument.
Conventional wisdom has it that if you try to build software with a team that’s too large, you get bogged down in communication between team-members and the whole enterprise becomes unmanageable.
This is fairly accurate for closed-source software: the nature of commercial companies is that everything has to be managed in a certain way and everyone has to be in communication with everyone else.
Mathematicians may recognise this as a complete graph — in which every node in connected to every other node — and the problem is that the number of links grows much quicker than the number of people.
Open source projects, like Linux, involve huge numbers of people, so on paper they shouldn’t work. But on a large open source project, most people contribute only to a small part of the whole, only communicating with a few others. Only a small number, by dint of personality type or happenstance, coordinate with many others to keep the whole thing together.
And because these projects don’t suffer from the communication difficulties, they can capitalise on the much larger group of minds working on a problem.
Thanks to this effect, hobbyist programmers really can built high quality software and that’s why OS projects Linux and Apache dominate the modern web between them.
But why should we use open source software?
As Cory Doctorow points out in his recent talk “The coming war on general computation”, the computer is fully general: there’s no program that they can’t in theory run.
That scares a lot of people: it means you can run whatever you like, even software that (shock horror!) makes it possible to break the law. So should governments or corporations be restricting what we can run?
Cars can be used to commit crime, but only a police state would try to restrict where you can drive to, or insist on low-jacking each one. Open source software is controlled by the community, and so is naturally resistant this type of centralised control — you may not agree but I think that’s worth defending.
And as Benjamin Franklin once wrote, “Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety.”