Having your cake and eating it

What is free software? Should you care and if so, why and what does it have to do with cakes and my mother?

My mother and computers

“Write a complete beginner’s guide to free software”, they said. “It has to be something that your mother would want to get excited about”, they said. The problem is my mother neither knows nor cares what software is. The closest she gets to using a computer is when she uses the timer on her oven. I still need a typical reader in mind when I write this though so, for the purposes of this article, my mother not only uses a computer, she gets annoyed when it doesn’t perform as expected and she knows that there is no such thing as an “Any” key. She is the target audience, she may use computers at home or at work or both but she has not given much thought to the software she uses or the licence under which she received it.

For the purposes of this article, my mother uses a computer and gets annoyed when it doesn’t perform as expected

In this article I’ll be explaining a little about what free software is and why you should care. I expect and hope you’ll have some questions but for the most part I hope you’ll not get confused or lost.

Note: I am not a licencing expert and I’ll be using some simplifications. If you are knowledgeable about the subject and feel the need then please comment but remember this is a beginners guide—simplification is the name of the game here.

What is free software?

Wherever you encounter free software, you’ll find the term free is being used in relation to freedom and not cost. You may also encounter the phrase “Free as in speech, not as in beer” which reinforces this idea. Whilst reading this article I suggest you forget about cost altogether as it might be a distraction.

The fact is that some computer users don’t like to pay for their software (but don’t slip it under their jackets in the store) and some don’t mind paying. When I say “free software” I am talking about software with freedom attached. I’ll explain what that freedom is later but for now remember that cost is not important. Confusingly some free software will cost you money. Much of it doesn’t, but what binds all free software (and much of the surrounding “community”) together is not cash flow—it’s freedom.

Whilst reading this article I suggest you forget about cost altogether as it might be a distraction

Cakes

What do you want to bake today?

Let’s talk about cakes for a minute. Some cakes cost money and some don’t. Similarly some come with the recipe and some don’t. What I’m interested in here is not how much the cake costs to buy or make but what you are allowed to do with the recipe and the cake once you have it.

Imagine this scenario:

  • You receive or buy some cakes from someone and they give you the recipe as well.
  • They allow you to use the recipe to make your own cakes at home.
  • They allow you to change the recipe to leave out the nuts you are allergic to.
  • They allow you to redistribute (even sell) both their original and your nut-less version of the cake.
  • They insist that if you do redistribute you give others the same option.
  • They insist you do not pass the original off as your own work. [1]

It may seem obvious but what they’ve given you (aside from cakes) is freedom: freedom to use, change and redistribute the cakes and the recipe. You might be thinking that people rarely give you recipes with such conditions attached but those conditions are often inherent in the gift. If you gave a recipe to someone and you were happy for them to pass it on, wouldn’t you be angry if they sold it to others but did not allow their customers to pass it on? You gave (or sold) those cakes and/or recipes with certain freedoms attached and you would expect those freedoms to be respected when the cakes and/or recipe is passed on. In short, you want the cakes and recipe to remain as free as when you distributed them.

If you gave a cake recipe to someone ... wouldn’t you be angry if they sold it but did not allow their customers to pass it on?

An additional point to note is that when you have access to the recipe, you know what is in the cake—handy if you have that nut allergy or just don’t like them. If you don’t trust the baker then access to the recipe also means you can make your own cake and be assured of exactly what went in it.

Substitute software for cake and source code [2] for recipe and you can see what the free in “free software” means. I bet you thought the cake analogy wouldn’t work!

The advantages of having source code are similar to those for having recipes—except we’re not talking about allergies here. If you can see the source code, you can check for things you don’t like. You can personally (or have someone else) check the code to ensure it doesn’t contain any untoward bugs, back doors [3] or any other malicious code. You can also check the software’s security and integrity. Furthermore, you can also learn from the source code by seeing what does what and how. Having a recipe means not only can you make that cake but also that you can use the methods and techniques from that recipe in your own ones. If you like the way someone has implemented something in their software you can use it in yours—in accordance with the free licence. Try that with proprietary software and you might be needing a lawyer and a lot of money.

Proprietary cakes can restrict your freedom and you don’t often know until it’s too late

What’s in a licence?

The freedoms we’re talking about are within the licence under which you receive the software. All software has a licence. Public domain software says “Do what you want with it—we don’t care”. Proprietary software often has a licence which says “Use it but don’t pass it on, don’t change it and don’t try to find out what it’s made of”. Free software says “Use it, change it, redistribute it but don’t stop others doing the same”.

Why should you care about the licence?

At first glance you might not care about the licence. When you buy cakes you don’t stop to think if you will be allowed to give them away—you just do it and when you buy software you often don’t think about the licence restrictions.

This is where the analogy breaks down a little. When you buy a cake you own the cake—even the baker cannot take it back, it is legally yours. However, when you buy software, you do not own the software and the software company can take it back or at least stop you using it. That’s because you buy a licence to use the software and not the software itself. It’s like buying permission to eat the cake but never owning the cake itself. Of course, you have to imagine this cake never disappears even if you eat it (work with me here, I told you the analogy breaks down at this point).

Is free software licencing risky?

Some people think free licencing leaves you open to abuse. After all, what is to stop someone abusing the freedom you have given them? One reaction to this potential abuse of trust is to stop giving away the recipe and start policing what people do with the cakes as well, but that brings all sorts of additional costs. You have to stop people analysing the cake to determine the ingredients, you have to stop people reproducing the cake and passing it off as their own. You have to start with the assumption that every customer wants to abuse your trust. All this costs money and time and these costs have to be recovered—so guess where they are recovered from? That’s right, the customer, you and me.

Now you can see how much simpler (and better) life is with free cakes

Now you can see how simple (and better) life is with free cakes! The baker need not worry about whether her customers will give her recipe to their neighbours in fact she actively encourages them to do so! For the customer there’s no worrying that sharing the cakes with their colleagues will land anyone in trouble. They are freely allowed to pass the cake to others. The baker may well receive feedback and additions to the recipe, including why certain ingredients are a bad idea in certain markets.

If an individual customer wants the cake baked specifically to their needs they can change the recipe or have another baker change it for them. They can even (but don’t have to) redistribute the new version as long as they adhere to the licence and pass on the freedom.

The recipe can now reach markets that a single baker could not possibly reach and each person who uses it is referenced back to the original baker’s work. Even if you’re the type who just likes to buy cakes off the shelf and doesn’t care about the recipe you should be able to see the advantage of free licencing.

Again substitute software for cakes and you can see why we should all care more about our software licences. With cake recipes we expect this kind of freedom—why not with software? An important point to note is that (like cake recipes) free software licences do not insist you redistribute any changes you have made. If you make changes to the source code for your own (or your company’s) purposes, then you do not have to distribute them. But, if you do distribute the changes, then you must do so within the terms of the licence.

Does producing free cakes mean you can’t make money?

At first glance, it would seem that giving away your recipe is a fast way to go out of business. Why would people buy from you when they can make their own or buy from a competitor?

Again this is where the analogy breaks down a little but there are still a number of ways to make money through free licencing. For a start, not everyone wants to bake their own cakes—some of us are happy to buy them. The days of buying software in boxes at the store may be numbered but people are quite happy paying over the net. Additionally, some customers will need help with understanding or modifying the recipe; and where better to get help than from the original baker? Perhaps you could include free software in your hardware product—there are a number of broadband modem/routers on the market which do this.

Some companies use free software in their own products and have been successful in making money (Google anyone?)—but if you want to do this pay attention to the licence. Other companies have two models: one for non-profits and individuals and one for businesses. The former coming at zero cost and the latter costing money but coming with additional services and/or features that business customers require.

Finally, don’t forget you are not having to pay for all that additional security we mentioned above. You may not be passing that cost onto the customer but that will mean your product is better value. A free licence—on a good quality product—will assist in getting your software known as people will start recommending it to each other. As said, some of those will pay for it. In the end—as with anything—people will pay if the product is worth it. Nobody will buy a cake that tastes awful and makes you sick regardless of the licence!

The importance of free software

How often do you click “I agree” without reading the licence?

I can’t understate how important freedom is in a software licence. That’s because like every other freedom, once you give it up it’s very nigh-on impossible to get it back. You may not have paid attention to the licence before but ignoring it means software companies will own your computer. You’ll own the hardware but they will (and often do) decide what you can and can’t do with it, and when you need to replace it.

I should have mentioned that my mother is a diabetic. She (and anyone baking for her) has to substitute the sugar in most cake recipes. My father doesn’t bake and yet enjoys the same cakes baked for my mother—cakes baked from recipes my family passes around freely. Free software does not dictate that you have to be a developer to enjoy its benefits and developers are not forced to operate outside of copyright law or good business sense to use it. Now, anyone got any cake?

Notes and acknowledgements

[1] Actually, not passing work off as your own is part of copyright law but I included it to show that free software licences are not outside of copyright they actually permit greater freedom within it.

[2] The source code is like a recipe from which you make software. It is used should you wish to build the software yourself (rather than use a pre-built version). It also means you (or someone on your behalf) can examine in detail what the software does.

[3] A back-door is where the person who writes the software deliberately leaves a way to access the software remotely. In this way, they can potentially manipulate your computer, read your data or monitor your computer usage, and usually without your consent.

The chocolate cake image used within figures 1 and 3 is adapted from an original work released under a Creative Commons Acknowledgement licence. The original can be found at http://flickr.com/photos/ktlindsay/.

License

This work is licensed under a Creative Commons Attribution 3.0 Unported License.