Possible Duplicate:
Why programming open source?

I'm having trouble understanding why people dedicate their time to an open source project that's free as in beer instead of focusing on a closed source, paid project.

Closed source projects seem to be more commercially viable, so why do programmers open source their code and make it free when there are commercial opportunities for it?

  • 2
    You might find "The Magic Cauldron" an interesting read. See a bit down on this page: catb.org/~esr/writings/homesteading
    – user1249
    Commented Nov 26, 2011 at 19:49
  • Hi Kim Jong Woo, Programmers.SE is not a discussion forum: questions here about getting answers, not telling people your ideas. In order to keep it open, I've rewrote your question to focus on getting an answer instead of offering your own opinions and thoughts about the subject.
    – user8
    Commented Nov 27, 2011 at 1:15
  • @ThorbjørnRavnAndersen that article looks great. bookmarked. Commented Nov 27, 2011 at 2:35
  • @KimJongWoo, when you've read it you will have answers to your next questions too.
    – user1249
    Commented Nov 27, 2011 at 14:28

7 Answers 7


Even as a purely economic decision (which it isn't, as several others pointed out), the rational function to optimize is your cumulative future value, not your immediate future value. By working on a non-paid project, you may increase:

  • Your competence
  • Your reputation
  • Your devotion to the profession (i.e, to a hiring manager)
  • Your mastery of a potentially profitable domain (e.g., a new language, hardware platform, or domain)
  • Your association with a product for which people will pay support

All of which may maximize long-term economic benefits.

  • +1 though also worth pointing out that long term benefits as defined in economic theory can and should include things other than money (satisfaction in making the world a better place? fun?). Anything that you would actively choose to obtain in a trade-off against alternatives can count as an economic benefit. And yes, I Am An Economist.
    – mikera
    Commented Jan 6, 2012 at 1:32

This is probably best stated by the Public Domain Manifesto.

Beyond the theory and such, running a business is simply a pain in the butt. Many developers want to build useful software that gets used by people. Selling and supporting software takes an enormous amount of time, energry, and (most likely) skills that most developers simply do not have.

  • +1 this is a plausible explanation for the described behavior of why some programmers do not pursue commercial profit, running a business is a different game on it's own. Commented Nov 26, 2011 at 6:39

There are as many different reasons as there are programmers who make choices. Here are some:

  • You just need the software to get work done.

  • If you open source the software, other people will add features they need and you will likely get them for free.

  • Contributing to open source projects is fun, boosts your ego, and may improve your prospects for a job. (Your resume is verifiable, and companies may well find you.)

  • You hope to make money from donations, paid support, or getting paid to add needed features.

  • The base software that would make your job easier requires you to open source the resulting software. Making a version you could keep proprietary would take more effort.

  • You don't have the ability to support software, and if you are going to charge for it, you pretty much have to do that.

  • Money is just not a big motivator for you.

  • You want your efforts to have as great an effect as possible.

  • You have ulterior motives that will make you money. For example, Google's Android is open source, but promotes Google's search, voice, and location services which are highly profitable.

The last two jobs I've held, both with six-figure salaries, were both offered by companies that found me based on my contributions to open source or free projects.


Here's one list:

  1. Learning
  2. You realize that the free stuff like linux didn't happen without hard work, and you want it happen again
  3. complexity of software is just fun
  4. it's just better alternative than anything else available
  5. you already have a job, and another one is just not worth it, but keeping your skills up-to-date is still important
  6. Ability to choose your own projects and techniques and conventions you use -- if money is involved, this choice is often taken away
  7. no micromanaging managers
  8. money makes it more difficult to distribute the end result, for no good reason
  9. all distribution channels where money moves are closed and not available - and if they are available, they all limit the end user availability(which is more important) -- last time we tried the money distribution channels, the contracts made it impossible to use other distribution channels -- exclusive contracts.

This has been discussed on lots of blogs by many people with different reasons. Here are some of the reasons I can remember:

  • Building up experience
  • Enhancing resume (point to the open source project during interviews)
  • Enhance the free product with an additional monetary offering.
  • Not enough interest to polish it for full commercial release
  • "Moral" reasons as you suggest.

Software is a medium of expression. Some people post photos to the web where anyone can see them. Some people, even professional writers, also write a blog. Some people publish web comics. Some people enjoy answering questions on a programming forum. Some people like to write code.


In my case, I use lots of open-source software (OSS) at work.

When I need something a little better than what's available, then I evaluate commercial software. Sometimes, I find that developing what's missing from OSS packages is cheaper than the commercial offerings, especially when it demands a lot of customization, since these can be charged by man-days.

In that case, it makes sense to contribute to the OSS to benefit from the already-written base.

Not the answer you're looking for? Browse other questions tagged or ask your own question.