It is a lot like sharing a recipe. Everybody gets to try it. If they like a recipe, they can use it over and over and pass it along to their relatives and friends. If they want, they can change one or more ingredients. They can pass along their modified version. Nobody will mind if they successfully cook and serve their recipe to paying customers or even publish their version of the recipe. Generally people are happy to tell everybody where they got the original recipe, especially if it was their own grandmother.
Of course, if there’s a secret sauce, then much, or even most of this sharing cannot happen. If the recipe just doesn’t work without the secret, then it is more like the other kind of software that is common today, “proprietary”, closed, commercial software. It is generally only available from one producer.
It does need to be noted that access to the recipe does not guarantee a yummy dinner. Owning a stove, pots, and a cupboard of ingredients doesn’t mean a poor cook will serve a satisfying meal. Of course, this is still true when you have to buy the secret sauce. Your guests may not be satisfied by your dinner.
Extending the recipe idea into computer terms, the hardware (screen, keyboard, mouse, all the electronics in the box) are like your cupboard, kitchen counter, bowls, mixer, pots and stove. Software is the recipe you use to make the movie, write the novel, prepare a term paper or any product. Those products are like the food served on the plates for your family and guests. Let us hope you have used the recipe well and created a result that pleases everybody.
Children like to control what they can. Children like to explore. Children like to learn from their experience.
Computers and software together create work and play space, unlock the tools of learning and encourage creative endeavor.
Providing your children “open source” software won’t matter much at first. Your children don’t really care if you pay only for the cost of the install CD or pay $250 for the software “recipe” that lets them type their short stories, draw their pictures of cartoon mice and ducks, teen idols or ninja turtles. They just want to be able to play, explore, learn and grow. And a wide variety of recipes is good, too. Proprietary recipes can eventually become too expensive to keep up with the desire for variety.
Just as you are glad to see your children play in your own open space, the back yard, you do not want the yard to be the limit of their life space. Gradually, your children expand their horizons. They want wider experience. The limitations of your yard become one of the early boundaries your kids want to cross. You get your children a bicycle. They ride to the library, the park. They play with friends. Their world grows.
When your children get the chance to dig deeper into their computer experience, they may want to learn how to modify the recipes. That is often called “coding” or “programming.” They won’t start by coding their own word processors. They will begin with animating their ninja turtles or their kitten characters. Tools like Scratch will help them take those first steps to modifying and making computer coding recipes. The further they get, the more complex their code recipes will become. The more they can examine the code of others, the more quickly they will learn. If the only code they can examine is locked as “secret sauce” then their progress will be slowed or stopped. Sharing code recipes back and forth builds a supportive community of mentors and students. One of the side benefits for all of us, of course, is that there will be better and better recipes which we can use ourselves to make our own projects (“dinners”). Innovation is encouraged by sharing.
Software freedom helps accomplish all those things.
There are four “essential freedoms” we celebrate for this kind of software.
- The freedom to run the program, for any purpose.
- The freedom to study how the program works, and change it so it does your computing as you wish. Access to the source code is a precondition for this.
- The freedom to redistribute copies so you can help your neighbor.
- The freedom to distribute copies of your modified versions to others. 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.
** Thanks to my learning network on Twitter and StatusNet for their suggestions, even the blunt ones.