Why is it that people write free software, such as openoffice, spybot etc?
views:
1523answers:
24There are a variety of reasons, one being that a noteworthy piece of software can presumably help someone get notoriety, jobs, money. And I suppose some do it just for fun. Whatever the reason, bless 'em.
I once heard someone from Sun say that it was cheaper to buy Star Office and open source it than buy Microsoft Office licenses for all their staff.
The Cathedral and the Bazaar explains a lot about why and how people write and contribute to open-source software (such as OpenOffice).
I'm reading between the lines here: Why would anyone want to write programs without being paid for it? You see programming as just another job, right? (I'm just guessing, so don't be offended if I'm wrong...)
Some people contributing to free software do it as a hobby. Some people like to go golfing on their spare time, some people like to code. Some people also like to do some work-related stuff when they're at home: carpenters are likely to use some of their skills at home as well.
However, there is an ideological side as well: Some people hold the opinion (very strongly) that software should be free. Not free as in "free beer", but free as in "free speech".
If you want to read more on the subject, this Wikipedia article may be interesting.
- To do something nice.
- There is a sense of siblinghood when you release a piece of code and others join you for the fun of it.
- Some are socialists/communists.
- Keeping the ideas of the counter-culture movement (60s) alive even after it has been turned into a fashion statment.
- To feel the joy of your users thanking you.
- Making your own spec.
- RMS is cool. So you want to do what the cool kids do.
I write code because i like to solve problems and also, I think that it helps me learn the skills i need as a coder, thus helping my job. I'm sure that the people who write opensource code also feel similarly - they get to fix things to improve their skills.
I'm very selfish. My best stuff came about because I needed it and nothing did what I need. Then I want my tool to gain from everyone else's experience and feedback, so I make it available to the world.
IMO the best Open Source software springs not from altruism but enlightened selfishness. Write what you need, share it with the world. Most of Open Source is finding this balance between sharing and selfishness. Too selfish and the tool is only useful for you, nobody uses it and you get no help. Too magnanimous and the tool is not useful to you, you have no reason to use it, you have no good insights to improving it, you burn out.
(I'm also highly addicted to programming, so I get to tap that release lever and get that food pellet.)
People write Open-Source-Software for different reasons. Here are some:
- If you wrote a software for your own use and you have not the resources/skills/time/will to market it yourself. Why waste the effort you did in writing the software by using it alone and not giving it to the public?
- Because Open-Source-Software can be an invitation to join the development and you don't want to do all the work on your own.
- For appreciation. See ohloh.
- To learn in programming. Open-Source-projects are a good place to strengthen your skills or to learn new skills.
- For reference: If you look for a new job, you can say 'I did this and that. Take a look at the source.' At your old job the software you wrote may not even public, but some internal software, so you may have no reference.
- Companies can tease the competition.
- You use Open-Source-software and want to give back.
- All software of a domain miss a feature you want. You can code it, but you don't want to start from scratch with the full application. So you can choose an OSS and implement the feature you need for it.
- For money: Some companies pay developers to create open-source-software, and they have a plan to get money from it.
There may be more reasons.
Because boredom can sometimes be the greatest motivator. At least, it is for me. Some of my neatest (Read: Interesting to me, useless in large) programs came from boredom. And why not express your boredom to the world?
As I usually say, "We'd do it for free if they wouldn't pay us."
I do not believe in the "religous" aspects of open source, but I enjoy coding, and when I get comments like Great, exactly what I was looking for! or a real timesaver, I am happy.
In a way, lots of todays commercial software development wouldn't be sustainable if it wasn't for free contributions. Things are easier if we share. I understand that many people will use that to solely their own advantage, but leeches won't stop me from doing what I think is right.
I worked on Amarok for 3 years. I don't think it's likely I'll ever work on such a product again. I was the second person to join the project, we took it from being unknown to having millions of passionate users.
Currently I work on the Last.fm streaming client, we have millions of users too. But it is not as fun. There is something about working on a project where you make the rules, where money is not a motivating factor, where your users are eager with patches and suggestions and where there is a massive and vibrant community. The feeling of really giving something of value to so many people. Giving them the source code is the real value. I've seen a few bits of my code turn up in several other applications.
I'd give up my salary to get that back, honestly.
There are lots of reasons to create software. Personally I create software because I need it, not to sell it. In that case, there's really no downside to give it away. But you gain a lot of testers, and some of them are "above user-level", and will send you bug-reports with juicy details. or even patches.
Example A:
You have developed a piece of software, and choose to give it away as open source. I download software, see that it fits my needs. This i discover a bug. I download the software, make a patch and send it to you. You include the patch in the next version.
Example B:
You have developed a piece of software, and choose to sell it. I don't get near it.
This isn't a direct answer... but I find that once a project is open source you effectively open it up to every programmer in the world. This has a massive benefit of being able to be worked on by some of the best talent available.
Closed source projects can't do this. Would I like to improve Internet Explorer? sure, it drives me nuts, but I can't contribute. Firefox on the other hand, I can report bugs, contribute test cases and sample code and finally patches.
Since I like open source projects for the above reason, I'm happy to contribute back to the community when and where I can.
The reason I chose an open source license for my current project is simple: most of the knowledge I have about software development was available for free to begin with. The net result is that the application is basically a sum of that knowledge in a more condensed and central form.
Note that quite a lot of developers are working on free/open source software because they are getting paid for it. Many companies have a strategic interest in the availablity of free/open sorurce software, eg. Sun is financing development of OpenOffice because they want to undermine the MS Office marketshare.
I write free software because I am lazy. Yes, my motivation is lazyness. If I am able to spend 4 hours writing a tool for something I could have done by hand in an hour, I feel accomplished, because now I can run that tool over and over and have it only take a few seconds, and not have to do any work.
The fact that I release it as open source is just to help some other poor soul out there, and maybe they find it useful as well, I really don't care about other people. I care about me. There is a nice side effect of other people enjoying it as well.
For me, software is a craft. Yes, I know there are people that believe that software is engineering and the 'craft' side of it is for 'cowboys' and 'hackers'. To me, these people have no soul for software. Software is one of the very few things that is created completely out of a person's mind - like music, math and art.
I would argue that the best developers love writing software, like a musician loves making music, an artist loves their art, or mathematician loves what they do.
Of course, technical excellence and personal discipline apply to software development, just as they do to these other discipline, but the craft element is key.
At the end of the day - craftsmen* do what they do for the joy of it. It brings us more joy when others find use our work.
- this included women..
There were a lot of good answers here, already, but I would like to answer this with a question:
Why is it that people take the time to write answers (with code) for Stack Overflow or write extensive articles on the CodeProject? :)
There's always the feel good factor. Being satisfied that you've solved a problem. Practising / improving your coding skills. For some professional (paid) programmers it is also their hobby. Plus if you can build a good reputation as a quality programmer on open source projects you may be worth more to an employer ?
yes but what if i make a script that someone uses right and they create a website that ends up making millions but at first it started with open source scripts and i dont get any money from it
thats pretty stupid
A lot of open source developers are paid - Joel explains it well. I dare say they're idealistic too, but they are earning a living.
There are many reasons. Some people like to get their foot in the door somewhere, and put it on their resume. Others like to code to gain experience and learn from others, as programming is constantly a learning experience. Some people just consider it a hobby and like to give back to the open source world. There are also many people who believe all software should be free and enjoy contributing purely because of this. The list goes on.
I think the whole point of some people making open-source software is because they want free information to everyone, which they probably didn't have. Yes, we can go with torrents, but thats illegal and doesn't have a source. And, as Hutch said, its simply the ability to feel good about what you have done. I, myself, code for fun, and have tonnes of software I would like to sell. And, the whole point of the word Open-source means you can change it! If only Windows was Open-source...