How can the source code be free?

One common question I hear is how the source code in open-source programs can be free.

To be honest, there isn't really any one good answer. The various reasons are nearly as vast as the number of people who write open-source software. I will try to scratch the surface.

Businesses sometimes release their software (or variations there of) for testing purposes and to gain ideas on what to do with their commercial software. Mozilla (a spin-off of Netscape) and OpenOffice.org (a spin-off of Sun StarOffice) are good examples of this. Improvements made by the open source community get integrated into the commercial software.

Other businesses will sometimes release old or obsolete software as open source because they know that some people still use it or they don't want to see the programs die but don't want to maintain it anymore.

Also, some software companies that are going out of business will sometimes make their software open-source so that their software won't die out completely. They don't get any money from their software, but they won't get any money anyway because the company is gone.

Open-source is also a good learning experience. Some programming classes will set up an assignment to modify an existing software in a certain way. Some people just want to learn how to code, and some people just want to stay in practice. A lot of professional programmers will work on open-source projects just to do something different than what they do during the day.

For some, they just like to be able to customize programs to their own needs. The only limitation is, if they customize an open-source program and then release their changes, they have to released their changed source code as well.

Some programs are written by people who see the need for a program, at least for themselves, but they can only take it so far either because they don't know how to take it farther or they don't have time to work on it, so they release it in order for others to pick up where they left off.

The people who work on open source software are often described as a community. People have different areas of expertise, and you combine the talents of several people together to make a program. Of course, that requires communication, which isn't limited to information about the program, so a lot of close friendships can be formed through these "communities".

Finally (at least, of what I am going to cover), a person or organization may have a need for a type of software that doesn't exist, but is similar to some other software. Why reinvent the wheel when all you need is a different system of spokes?

As for making money off the software, there are ways, some better than others. First off, you can ask for donations from the people who use it (if you liked this software, or if you want to continue to see improvements to this software, send some money to me), a lot of companies charge for tech support (here is the program, but if you have problems and want to talk to someone from our company about it, it will cost you), and there are a few other models that are out there that aren't coming to mind at the moment. But for the most part, most people don't get rich making open-source software. But usually, getting rich isn't the motivation.