Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As an entrepreneur/programmer who makes a good living from writing and selling software, I'm dumbfounded as to why developers write applications and then put them up on the Internet for free. You've found yourself in one of the most lucrative fields in the world. A business with 99% profit margin, where you have no physical product but can name your price; a business where you can ship a buggy product and the customer will still buy it.

Occasionally some of our software will get a free competitor, and I think, this guy is crazy. He could be making a good living off of this but instead chose to make it free.

  • Do you not like giant piles of money?
  • Are you not confident that people would pay for it?
  • Are you afraid of having to support it?

It's bad for the business of programming because now customers expect to be able to find a free solution to every problem. (I see tweets like "is there any good FREE software for XYZ? or do I need to pay $20 for that".) It's also bad for customers because the free solutions eventually break (because of a new OS or what have you) and since it's free, the developer has no reason to fix it. Customers end up with free but stale software that no longer works and never gets updated. Customer cries. Developer still working day job cries in their cubicle. What gives?

PS: I'm not looking to start an open-source/software should be free kind of debate. I'm talking about when developers make a closed source application and make it free.

share|improve this question

closed as not constructive by Mark Trapp Sep 26 '11 at 8:16

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

73  
"Ship buggy product..." Sigh :( –  user1249 Sep 14 '10 at 7:09
18  
Free software breaks? I'm sorry you choose bad free software. Have you tried something like Ubuntu? So much quality software in one nice package. And, IE or Chrome being free isn't a bigger issue to you? How's a solitary programmer going to compete with that? –  dlamblin Sep 14 '10 at 22:05
57  
I've had plenty of payware apps that have died after an OS upgrade and were not updated. –  mlk Sep 15 '10 at 8:31
16  
Free software breaks more than commercial software? Thats completely false. –  alternative Feb 6 '11 at 13:43
47  
99% Profit margin? Can I take some of the drugs you're on? My time isn't worthless. –  Incognito Feb 6 '11 at 14:32
show 16 more comments

64 Answers

Sharing

Most of us make use of software that has been provided to use free of charge. As a result, it makes sense to share our own software free of charge as well. Basically, we are exchanging our software for the other free software but without the overhead of actually going through a transaction. There will be leaches who do not contribute, but since distribution is so cheap that does not matter.

Selling is Hard

Actually trying to sell software makes the process much more difficult as you have to market, collect money, and worry about the legal ramifications of selling to people. For a lone programmer this takes them away from what they really want to be doing. As a result they may release their program simply so that other people can have benefit even if they cannot.

A New Model

It might be argued that a new model of software development is arriving. The model of selling software is an attempt to take physical-world selling and apply it to software. However, software is not like the physical world. Because distribution is so cheap a couple of issues arise.

  1. Letting someone use your software is basically free for you.
  2. Attempting to prevent people who haven't paid for the software from using it is really expensive.

Under this view, attempting to charge per copy of the software is a losing game. Thus you should attempt to make money on software-related services, not software itself. Thus you might charge for a support contract, hosting services, etc. rather than the right to use the software itself.

Incidentally, this model is used by webcomics, web series, etc. which give the primary product away for free and sell related merchandise.

share|improve this answer
1  
@Yar: Getting apps onto the App Store is not difficult if you pay attention to the rules and guidelines. Getting people to notice it once there, among 150,000 or whatever it is now other apps, is. –  David Thornley Oct 25 '10 at 19:28
7  
+1 for the "New Model" section. –  Svante Feb 6 '11 at 11:25
14  
The "selling is hard" point is something many people overlook but is very true. Most programmers are bad at it and generally hate doing it. +1 –  Eran Galperin Feb 6 '11 at 15:26
show 10 more comments

I think because every programmer has the appetite to program and to satisfy that they make an application but once they made it they want recognition and that's why they make them free :) Just like I have written tutorials for free. :)

share|improve this answer
add comment

Here's another perspective that I did not see in any of the given answers already.

Do you drive a car? I think most people in this country do, and yet the vast majority don't get paid for driving. In fact, they pay quite a bit for it: the car, the fuel, the repairs, the insurance, the registration, and so on.

Everything you said about writing software also applies to driving. I see people on the highway and think, these people are crazy! You can earn money for driving but instead they do it for free.

And I don't just mean you can be a race car driver, though that's obviously a pretty cool way to do it. For under $100 you can register as a commercial vehicle and legally take paying passengers in your car. (Imaging pulling up to a bus stop and offering to take 3 people downtown for $1 each -- they save money, you make money, you were going that direction anyway. In a month you've paid off the license fee.)

Do you not like people paying you money? Are you not confident enough in your driving? Are you afraid they're going to start calling you at home?

The real answer is probably that it's a hassle, and unless you plan to start a taxi company, you won't make that much money off it, so it's not really worth the trouble. Sounds pretty much like software to me.

This isn't unique to driving, either. Every day everybody does a thousand things which somewhere, somebody gets paid to do. Taste coffee? Clean a bathroom? Listen to music and give your opinion of it? Ride a bicycle? Have sex? Yup, every one of these can be a paying occupation, and in every city in the country people (suckers!) are doing these things for free, or even paying to do them. That's crazy. That's life.

share|improve this answer
show 2 more comments

There are several reasons for making software available for free. It could be, that the software is only written to produce something else - making the source free, offers the opportunity to incorporate bug fixes and features by third parties without having to pay them, while you can get money out of what you produce with that software. See "The Cathedral and the Bazaar".

Another reason is that you write the program for fun and/or training and getting comments on your code by peers or even more capable persons than yourself might be more important than earning money - in this case, selling the software for a profit wouldn't be profitable at all.

And there's the third option of high skill linked with high self-esteem, where you take the route of Tarn and Zach Adams and make a living off the donations you get. Dwarf Fortress (programmed by Tarn Adams) is available for free, yet receives thousands of dollars in donations per month.

share|improve this answer
add comment

The customer wants - and pays for - solution, not software. If you want to see your customer satisfied, you should do a lot of customization work for him/her, not just throwing the software install CDs into his/her PO Box.

Even big software companies, who sell licences at horrible prices, provide (I mean: sell) additional services beyond the licences. From a tight angle, open source looks like a co-operation of smaller software companies to minimize development costs and set licence fees to zero. It looks like a win-win situation for the software company and the customer.

share|improve this answer
add comment

I tried my hand at selling a product that made working with Access SQL much easier, fun even...

I have a few dedicated users who love it, but it has not made me "loads of cash". I am now considering setting up a blog and offering it for free. As I no longer work with Access (ASP.NET MVC now), it doesn't hurts me and why not give back to the community that got me going?

Tech support has been hell, writing the installation was not my core skill, so on and so forth. Collecting money was as simple as using PayPal, so don't see that as an issue.

So my motivation is giving back to the community. I write articles for the same reason (for example, 4guysfromrolla.com), but with a lot of these websites getting bought up, it is probably time to set up my own blog. Money? A bit of advertising, maybe. Or selling my collection of short stories on Amazon.co.uk (The Kingfisher and other stories, by Andrew Wrigley)...

And yes, being loved. Money can't buy that, can it?

share|improve this answer
add comment

I'm in love with coding! I really feel excellent when I think of somebody who's using my applications around the world. This was the first reason for my free applications. I should confess that I make a living with programming, besides I love producing free applications.

share|improve this answer
add comment

Start them off with a free version.

Then by version 4 start charging.

If the product is any good, people will continue to buy it.

Alternatively, go the Google route and offer a cut-down version for free, with a pro version costing a small amount extra.

share|improve this answer
show 1 more comment

I can understand giving away segments of code for free to help others. However, fully made systems that compete with small to mid size companies trying to get off of the ground, offering support, where the open source counterpart does not and the 'go f yourself attitude' as stated above, I don't understand.

I could see systems built by these sections of code, snapped together like legos. However, then we're creating the atmosphere of software at your own risk, thus lowering the overall trust of our profession by the consumer.

Personally, the whole 'I make enough money at my job so I don't care' argument baffles me. I make a fair wage but am not well off enough to start my own philanthropic organization.

share|improve this answer
add comment

One word. "Taxes". Our tax system is so bizarre and painful to deal with that any things I do on the side I just throw out there for free. I don't have the time and energy to fight with all the taxation issues that come up from selling. Selling software would become a net loss for me.

share|improve this answer
show 1 more comment

It's because we are hackers and passion is what drives us, not money.

share|improve this answer
1  
Succinct and accurate +1 –  jasonco Feb 7 '11 at 13:31
add comment

FREE is easy, no pressure, no tensions (marketing, legal, support, finances, ..).

I will go with an ad based approach if my app is something server related (hosting content and stuff can cost a lot of money). Ads can fetch some money if not lots but it definitely covers server/maintenance costs.

I don't have to deal with bad bad pirates!

Good Karma!

share|improve this answer
add comment

A theory in psychology: Maslow's hierarchy of needs, money is NOT enough for a human being.

  • Esteem: Programmers need more respect of others out of company, they need to be praised as "wow, It must be a talented programmer!".

  • Self-actualization: They may not write their favorite code as they want in company's project. So they write their code with own styles and design and publish them. During the process, they are project leaders, architects and bosses:)

share|improve this answer
add comment

I remember when Zope first started off, the developers were putting it out there for free. A venture capitalist came in and asked them basically "why you are doing that." The answer that he received started him in a new business model: free software, paid services. This is where a company puts out free software, but "expert" advice and setup of that software would be marketed in the normal fashion. The FSF and Cygnus Solutions are two companies that had a similar relationship early on: FSF published GCC/G++ for free, Cygnus provided extensive, direct customer support.

share|improve this answer
add comment

I want some help in making the thing work. If it's good enough, other people will chip in with their free time to improve my little tool beyond what I'd hope to make of it.

For instance, I wrote a small Mercurial extension, and within two weeks I got two other guys that fixes a bunch of bugs and added some new features, without me doing anything at all. (Well, inspect changes and pull them into my repo.)

Win! :)

share|improve this answer
add comment

I was attracted to writing software for the sheer joy of creativity. Although my contributions have been humble and unimportant, my giving has always been a manifestation of that perspective.

share|improve this answer
add comment

Most of what I have released for free has been tools. Useful tools that I use for multiple clients. Had I written any of those tools for a specific client, and charged them for the development, I would not be able to use those tools at other clients.

I am able to charge for the time to implement those tools at other clients, and in doing so I have made back multiple times over what I would have made just writing those tools as a project for hire.

share|improve this answer
add comment

Two words, Advertising Revenue.

share|improve this answer
add comment

Often when programming I find myself with an idea that I can't get out of my head. Something that I just need to do. So I'll code it - I go into a "state" where I can visualize everything that needs to happen and I wind up creating something. The tool had to be made, but after the initial "burst" I'm a bit exhausted.

In the end though, the tool doesn't really "live" until it has people using it and enjoying it. Like a short story or a play or a move or whatever. So ... give it away and hope it enriches the lives of others.

From there though, maybe another person likes the tool and adds something to it. Then the tool takes on a life of its own.

I can speak for everyone, but a lot of the big open source / free projects seem to have that going on.

There's also the fact that there can be a lot of money made by giving away a free product. Google, Facebook and Zynga are prime examples of "free" software that finds money somehow. If you'd prefer a more concrete example (actual software) look at a company like "Red Hat" - Linux is free, they make money teaching people how to use it.

share|improve this answer
add comment

There's also the fact that you get a sort of gratification knowing you're helping people do something that they themselves couldn't. By making it free, you're also making it obtainable and easy to share; essentially, you're building a name for yourself, with people who trust you. Lastly, it could be a sort of belief thing. You could be programming because you believe things should "be" a certain way. Take the jailbreaking community, for example. The programmers and hackers in the iPhone Dev Team spend a good bit of time looking for exploits and creating programs that use them. They could make tons of money by charging a few bucks for the jailbreaking programs they've created, but they don't.

There's also the threat that if you don't make it free, someone else will.

share|improve this answer
add comment

Most of the software that I release for free has been written because I either couldn't find a better solution, or couldn't find a solution that was licensed in such a way that I could both contribute to it in an OSS manner, and use it in commercial apps (i.e., I was looking for a BSD or MIT licensed solution.)

Yes, I like to have my cake and eat it, too. :D

share|improve this answer
add comment

The free software movement insures, basically, innovation on it's most competitive scale.

Things change every day in the programming world and there needs to be a checks and balances system to make sure that everyone is up to par. Otherwise, we would be stuck with a lot of crappy programs just because people made a "Standard"(Microsoft Anyone?).

The fact of the matter is that YOU don't feel like you have the time or the resources to keep up with a free competitor. You have this complaint because it actually forces you to work to MAKE YOUR PROGRAM WORTH THE MONEY. You have to innovate and improve your program(Insert Takei "OH MY!").

Sorry, your vanilla version you planned on riding on for the next five years just isn't going to cut it. You have to constantly develop. That is what it takes.

Don't be upset because you are too lazy to work to make your product decent while people who work harder than you give it up for free.

share|improve this answer
add comment

Software is free, because it's information. The expression is that "Information wants to be free."

Why is that? Why does information want to be free? Consider Stack Exchange. Do you see how Stack Exchange crushed ExpertSexChange? Why? Because the user interface is superior. What's the biggest way in which the user interface is superior? You can ask a question and get an answer without a credit card.

Money adds friction to the flow of information. Everything about charging money requires you to try to get a monopoly on information and then erect some sort of obstacle or barrier to the smooth flow of that information. It's the same with downloading a movie from the Internet. The movie is worth something, but charging for the movie adds friction to the flow of the movie's bits, and frictionless always beats friction.

Free software isn't about cheap bastards trying to ruin your business. It's about a fundamental law of information flow inexorably crushing the payware software business model. You can try to ascribe motivations to people, we can talk about joy and pain and morality if it amuses us, but the deep reason is that we have a system where information that is frictionless beats information that has friction, and inexorably the frictionless information wins.

Frictionless software beats software with friction. Sure it may be deficient in other terms, but the power of frictionless is so great that entire markets will reorganize around frictionless. If they don't, they shrink and frictionless markets beat the markets with friction.

All is not lost for you. These things take a long time to happen. Windows is still with us, Linux hasn't driven it from the face of the Earth, and iOS is very successful even though it is fighting a difficult battle against Android. But if you want slow down your losses such that you can enjoy a good living or get rich in your lifetime, I advise you to think of yourself as being in the business of information, and see friction as being an obstacle to your success. If you must charge for software, try to think of ways to do it with the least friction possible.

p.s. http://github.com/raganwald

share|improve this answer
show 4 more comments

Intrinsic Motivation.

I make things based on ideas that are worth a lot of money, laser projectors, custom-programmable lighting products for homes, modified video game systems which is a business in itself (windows, JTAGs, lights, painting, repairs, etc), and I give away my designs and detail my methods for all to see. I don't care about money, I care about creating, and hope that others can gain something from my creations.

When programming, I don't care if people want to buy my product and I can make millions of dollars. If they are able to encode a better video through a plugin in meGUI, or Open Office allows a person in a third-world nation to type a paper for a better education, I'm happy.

http://en.wikipedia.org/wiki/Intrinsic_motivation

share|improve this answer
add comment

As an entrepreneur/programmer who makes a good living from writing and selling software,

You are not a programmer, at least not one sharing the scientific and engineering that makes most programmers choose their field. You are an entrepreneur who uses programming to make a living (not a bad thing by the way.)

I'm dumbfounded as to why developers write applications and then put them up on the Internet for free.

Sense of charity? Sharing? Common good will? Scientific and engineering desire to advance technology and knowledge?

You've found yourself in one of the most lucrative fields in the world.

Inconsequential, even for industries outside of software. How many companies, profitable in other fields, actively engage in charity and community support?

A business with 99% profit margin,

Only if you are working on the small, playing tax games or doing something under the table. The idea of a business that is that profitable, continuously and in a manner that is sustainable is not supported by the laws of economics.

where you have no physical product but can name your price;

You can only name your price when you

  1. are dealing with a very desperate (and uninformed) client,
  2. you are a technical ace (say a MSEE specialized in RF and MW circuit design or FPGA programming or a very experienced software architect.)

Otherwise, no, you don't get to name your price because there are a lot of very capable people competing with you for contracts.

a business where you can ship a buggy product and the customer will still buy it.

And that's why you will never understand why programmers, scientists and engineering alikes (as opposed to money whores), do contribute to open source.

I would actually state that I doubt what it entails to have a successful, sustainable company, independently of the industry.

You ask Nike and they'll tell you they are in the business of making good shoes. They are not in the business of shipping a shitty product.

You ask Apple and they'll tell you they are in the business of combining the best technology with the most exquisite of user-experience aesthetics. They are not in the business of shipping shitty products.

You ask AstraZeneca and they'll tell you they are in the business of medical advancement, not on shipping a shitty product.

And those are not examples of empty rhetoric.

And so on and so on. And though it is always possible for defective products to be put on the market, all successful companies define themselves by a particular goal of excellence. Profit is a side-effect of it, and certainly the primary objective. But it is certainly not their primary drive that get things moving.

There is nothing greater than working in an environment like that. And there is nothing shittier than working with people who see profit as their main drive. Quality takes a dive completely.

You should do some reading on Warren Buffet's work or on Henry Ford's drive for quality and work ideology. Then you'll understand not only what open source is all about, but you might learn a bit or two about sustainable, successful businesses.

Entrepreneurs that don't understand that aren't really entrepreneurs. They are just peddlers riding a for-the-moment speculative wave.

share|improve this answer
2  
I like everything about this post. –  sevenseacat Feb 7 '11 at 12:01
add comment

A good example for distributing a software free and open source: The Kinect for XBox stuff.

Some programmers started to use it as a device on their PC's and programmed some code, many other programmers were able to use that code and develop it further with many other ideas. If the initial programmer would closed the code and put it on for sale, it would have NEVER grown that fast.

share|improve this answer
add comment

Because we simply want to. If you spent hours making a 3d game of tetris in OpenGL, you probably did it as a labour of love and had a lot of fun doing it. You didn't do it for money, that didn't even enter into the thought process. The challenge and accomplishment was it's own reward, something more challenging and fun.

I didn't want to make money off of this. It's like saying why should I share my thoughts on SO when I can sell them in a book?

share|improve this answer
add comment

What are your best memories in life? are they receiving a paycheck? buying a new car? If they are I really feel bad for you. My favorite moments in life have to do with accomplishing something I set out to do, hitting a home-run, meeting a romantic interest. None of these things have a price tag on them or could.

To answer your question why would I spend my time developing software and releasing it for free? because maybe someone sees it and they think of a use for it I never could have imagined, then they integrate it in their system and produce an entirely new use for it. Discovering something new is priceless , think of the first time you saw a computer. incredible. You would want to be a part of this.

If you put a price on everything , then not everyone can use it, people wont use what they don't know in their designing of a new concept, nothing new is ever created, or does so extremely slow.

Think of software as information, in a way that's really all that it is, 1's and 0's. Information is free, broadcast on televisions, radios, websites, etc. Why do we do this? so everyone knows whats going on, so we can all decide what to do next. if we aren't on the same page, we can't come up with the right solution. Nobody ever made anything that was truly great with a paycheck in mind. People do things to improve life, because they want to challenge themselves and create something they can be proud of.

share|improve this answer
add comment

Your question has several assumptions I'd challenge:

  • The existence of free software diminishes the ability to make money.
  • The existence of free software inures customers to the cost of programming time.
  • Creators of free software invest their time and energy into these projects with no thought of later commercial gain.
  • Creators of free software have no reason to support their work; conversely, commercial software has an assumed high level of support for the very reasons you state (new OS, in your example).

However, to directly answer your question, I think it'd be safe to say the motivation for some is they simply wish to create a thing. Actually /selling/ the project is an exercise outside of programming and creation, and a work unto its own; sometimes programmers just wanna program. That statement doesn't mean that the quality of software or community support will be any better or worse than commercial software, but it does instill in me a greater instinctual regard for the product.

share|improve this answer
show 4 more comments

Programming can also be a hobby

Many people treat programming as a hobby, writing programs for fun when they get home, and sharing them on the net, or participate in open source projects.

This is just like photographers like to take pictures and share them with the world on sites like picasa or flickr, and musicians that like to create music and share it with the world on sites like myspace.com or mp3.com, then some programmers also like to share their work with the world.

share|improve this answer
show 1 more comment

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