Software Freedom Day? What’s that I hear you ask!
Software Freedom Day, or “SFD” as it is sometimes referred to, is a day of celebration that there is some computer software that is not encumbered by copyrights and Patents which place limitations on the software.
Did you know that with most proprietary software you purchase a licence to use the software but you never actually own it? If you read the Terms and Conditions of sale, more commonly referred to as End User Licence Agreement (EULA), you’ll see the clause that states that the author (usually a company or corporation) retains ownership of the software. In fact, the hint is in the name “End User LICENCE Agreement”.
For example in the Microsoft Windows XP Home Edition EULA, paragraph 3 states that:
3. RESERVATION OF RIGHTS AND OWNERSHIP. Microsoft reserves all rights not expressly granted to you in this EULA. The Software is protected by copyright and other intellectual property laws and treaties. Microsoft or its suppliers own the title, copyright, and other intellectual property rights in the Software. The Software is licensed, not sold.
This, and other clauses in the End User Licence Agreements (EULA) place many, many, many restrictions on what you can and can’t do with the software. Seriously, how many people have actually read an EULA all the way through and understand it? Then think…I have how many pieces of proprietary software on my computer, all with EULAs? Have I read and understood all of them, or did I just hit the “Accept” button? What if the EULA stated:
“You agree to send your firstborn child to the company and they will be an indentured servant of the company for a term no less than 10 years, after which time you will be required to collect them, in person, from the Antarctic”.
Sounds (and is) ridiculous, but how may other contracts do you enter into without fully reading them and understanding them? Why is the EULA on a computer any different to say the warranty on your fridge or the contact of sale of a car or house?
Imagine that you have bought the use of a piece of software (you are licenced to use it), but you now find that you need it to do something slightly different with that software: maybe you have a payroll system that now needs to apply a different tax rate. You have one choice. You can wait for the manufacturer to come out with an update which fixes the issue. But how long will that take? And how will that delay affect your business? Will your employees begin to get annoyed that their pay is either wrong or being delayed? If the software company is responsive to your request, maybe not long, but what happens if they are no longer in business? Or their software company is based in Norway and they don’t get the Australian Tax updates and it takes them a while to get around to making the necessary change? What happens to your business reputation then? If you don’t think this will happen to you, think again, this has happened to many companies around the world!
Imagine again…if you had access to the code that made up the system, the code that made it run and function (that’s the “source code”, the human readable programming that makes the system work) and you could go into this code and change that tax rate and get your system functioning within minutes of knowing about the problem. Your employees would never know and you don’t have to wait on someone else to help you. With your proprietary system you don’t have the ability, or more importantly, the right to have a look at the source code and see if you can get it changed, with Free and Open Source Software, you do have those rights.
I have used the example of a company’s payroll system, but extend this out to all walks of life:
- students having the ability to change software functionality to suit their assignment needs, quickly learning much needed skills. A friend of mine, during his PhD, extended an existing open programming language to layout his thesis exactly the way he required
- artists being able to change a system to suit their artistic intent and creating new works, rather than being limited to the functionality that a software programmer thinks they might need
Use you imagination to think of other ways that someone could extend a piece of software or its functionality to achieve that little bit extra.
There are few things that stand in the way of this kind of innovation. Ironically these things were originally designed to promote innovation, but now they do the opposite. They are copyright and (software) Patents.
Copyright is the concept that once you have authored something you have ownership over it and you may decide to whom it gets distributed. This often involves a monetary transaction. This stifles innovation very simply: if the idea or work is a good, or even great, one and someone wants to extend upon it, for example use it on their own project to make that project truly spectacular, then they are not able to do so without permission or monetary exchange. This may sound fair, and often is, but in some cases, the original author is not the one who decides if their creation can be used for this purpose. This is especially the case when the author has been dead for a while, and their estate is “looking after their interests”. Requests to use something that has been created a while ago can take time and sometimes the impetus may be lost in the delay. Think of cases where a satirical artist wishes to use a substantial part of a literary work to highlight the comedic value of a political situation, but has to get permission to use the literary work before the artist can publish the satirical work. If there is a lengthy delay, the comedic situation may have moved on and the artist is stymied, potentially affecting their ability to generate revenue from their own good idea.
Copyright, as embodied in the “Statute of Anne”, was originally effective for fourteen years. Authors had that amount of time to make the most of their work. Say, for instance, a playwright had written a play, they had fourteen years of earnings from the performances and then the play went into the public domain. There was the ability, provided the author was still living, to extend the copyright for another 14 years. The general idea was that the artist could create something and have enough to survive on. But they’d have to keep creating every now and again in order to keep alive! It was a good incentive scheme for creation – they could earn a good living if the work was good, but they’d have to keep doing it.
Copyright in this day and age is almost endless (70 years in Australia), and even if the copyright has expired, there are other forces at work to prevent the “general public” being able to freely use a work. For example, Beethoven has been dead for 350+ years (so there’s no incentive for him to keep creating!) but there are no publicly available, freely playable copies of his symphonies. If I wanted to create a TV show and put in a Beethoven symphony I’d have to pay someone the privilege of using their recording. Why? Because each recording is “created” by an orchestra and that orchestra retains the right of distribution of the work. But, they didn’t create the original work, they just performed it! According to the original tenets of copyright, if they want to go on eating, they need to go on playing, rather than living off a 70 year old recording, where most of those players are probably well and truly retired (sometimes rather permanently!). Musopen is a group aiming to raise enough money to pay an orchestra to perform on an “all rights” basis and make their music freely available.
Patents in the software industry are even worse. Each country has a Patent Office where people and companies can register patents. These were originally set up to register inventions. Someone invented a new way of getting something done and they went to the Patent Office, registered it, and then sold the invention. An example is something like a toaster: when that was first thought up, someone may have put in a Patent application to say something like “the use of small electrical elements to create heat to toast bread”. This is a good system, as it ensures that the person who thought up a useful widget gets paid.
However, the Patent Office doesn’t really understand software; they don’t usually have the technical expertise. So when a large corporation goes to the Patent office and says “the use of a graphical user interface to manage a desktop” they tend to get these Patents. Once they have these Patents they can then sue every other company who uses a system that is even remotely similar, depending on how vague the Patent application was in the first place. This does nothing to promote innovation, in fact putting other companies under financial strain is generally regarded as being anti-innovation. If you want to know more about vague patent applications, you only have to look at the case of John Keogh, an Australian who successfully patented a “circular transportation facilitation device“, more commonly referred to as a wheel!
In it’s simplest form, say a company Patents “2 + 2” (yes, I know they can’t do this, but humour me and use this as an example). Now, no other company can use this in their software for fear that they’ll get sued. They now have to do something like “6 – 4” or “8 / 2” to generate the same result. Extend this out to slightly more complex things that really only have one way of calculation, such as the area of a square (length * width) and you begin to understand the massive headaches that can happen for computer programmers to find their way around. How would you calculate the area of a square if you are not able to use “length * width”? And extending on the example in the paragraph above, how do you make a computer system interactive with the user if you can’t use a Graphical User Interface (GUI)?
There are some computer programmers in the world who believe that software should be freely available to all users. They should have the freedom to:
- The freedom to run the program, for any purpose (freedom 0)
- The freedom to study how the program works, and change it to make it do what you wish (freedom 1). Access to the source code is a precondition for this
- The freedom to redistribute copies so you can help your neighbour (freedom 2)
- The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this
The idea is that with the ability to run, see and change the source code and freely distribute the original and your changes around, innovation will truly be able to occur, and with innovation comes improvement to people’s lives.
Interestingly, Free and Open Source Software does not necessarily mean no cost. Sometimes companies do charge for their software and that’s OK as long as they give you the four freedoms above. More often, FOSS companies give their software away for free (no cost, “gratis” or “free as in beer”) and then, as most people or organisations don’t have the programming expertise to make alterations, and really, the company that wrote it knows it best anyway, they charge for installation, customisations and extensions of functionality. This business model has been highly successful for companies such as (but by no means limited to) Red Hat.
I’d like to highlight one use of free software that has, in my opinion, achieved these aims every effectively: the Ushahidi project. I have recently found out about this project and I am very impressed that so much has been done so quickly. Set up to track violence during the 2008 Kenyan democratic elections, the project used many Free and Open Source Software (FOSS) components and hacked them together to create something that was greater than the sum of its parts.
This is only possible using Free and Open Source Software. Imagine trying to do something similar with proprietary software! Every time they came across a situation where they said “we want the project to do this function”, with FOSS they could just do it themselves, but with proprietary software they would have had to wait potentially for a long time, putting people’s lives at risk, for the proprietary software company to create the new function.
And that’s why Software Freedom is important.
Come to Software Freedom Day 2010 in your area. There are events being held all over the world. Have a look at the map here and find the closest one to you: http://cgi.softwarefreedomday.org/2010/map.shtml
I’ll be volunteering at the Melbourne event, which has some fantastic speakers, presentations and interactive displays for your enjoyment. Come along and if you go, leave and comment and let me know what you thought.