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.”