What is "Open Source"?
Originally written for an Education Blog, one which no longer exists.
How to go about telling parents about software freedom, commonly also known as “open source.”
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 or 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 creates work and play space, unlocks the tools of learning and encourages 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 a good thing, too. Proprietary recipes can eventually become too expensive to keep up with the desires 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 have available 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.
Free Software vs. "Open Source"
While it is a technical distinction for many, "open source" is really just a programming method. True software freedom produces "Free Software" which has rules to prevent work from being made a secret sauce even when it started out as open software.
There are four "essential freedoms" we celebrate and need for real "Free 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.
Producers of software, the programmers, make a special effort to select a license to use. The GNU Public License or "GPL" as it is usually written, is a license designed to ensure that what starts free/open will always remain free/open. Some other so called "permissive" licenses allow corporations to start with open source software, modify it and then require that the hardware use only the corporate/modified version (Tivoization). If you wish to explore further, start with this article by Richard Stallman, founder of the Free Software Foundation.
** Thanks to my learning network on Twitter and StatusNet for their suggestions, even the blunt ones.