
Why do programmers write apps and then make them free - awa
http://programmers.stackexchange.com/questions/3233/why-do-programmers-write-apps-and-then-make-them-free
======
ComputerGuru
Both this question and many of the answers really, _really_ pissed me off as a
free software developer (free, not open source). What's written below is
referring to my chief app which has tens of millions of free downloads [0].

I write free software for the same reason people help old ladies cross the
street, crying mothers find their kids, etc. I write software that saves
people in time of need, that makes them sigh in relief and say a silent prayer
of thanks to whoever it was that wrote this application that made their day so
much easier.

I write free software for the karma, the brownie points, the feel-good
feeling.

I don't write free software so people can buy my paid software (of which I
have none). I don't write free software to avoid responsibility or support (I
provide free support in forums, with tens of thousands of posts). I don't
write free software to "experiment" or to learn (I'm a professional developer
with 7 years of commercial systems engineering under my belt).

That said, the open source zealots piss me off just as much, if not more. I'm
always being asked "if it's free, why not make it open source and give back to
the community?" [1] What about the word "FREE" doesn't include giving back to
the community? Why should I release my years of hard work, research, and
effort to people who will take it apart, line by line, take from it what they
want, repackage it, or take away the little attribution I get from the
software itself? Sure, if I were a bigger man with a bigger heart, maybe I
would... but I'm not and you shouldn't look a gift horse in the mouth.

Just because I choose not to charge for it doesn't mean I'm going to give away
the source code for free, especially for software as complex, critical, and
well-researched as mine.

0: <http://neosmart.net/dl.php?id=1> 1:
[http://www.reddit.com/r/software/comments/cp84s/the_new_vers...](http://www.reddit.com/r/software/comments/cp84s/the_new_version_of_easybcd_the_free_bootloader/c0u9d9q)

~~~
contravert
I have written free, non-open source software for a non-profit organisation
(the software was meant for clients and not a website or a custom
application). Your comment got me thinking: what is the point of the secrecy?

I've never really understood not sharing ideas (source code in this case) if
it doesn't harm you in any way. It reminds me of classmates who refuse to
discuss an assignment or share their ideas. It always seems there is a certain
fear that their ideas will be "stolen" or that others are not worthy of them.

I can somewhat understand long-term cost-benefit analysis. My classmates might
be right in thinking that others might cheat off them or exploit their ideas.
More cynically, allowing others to fail might give you better job prospects.
However, it doesn't seem that releasing your source code would have harmed
you.

Correct me if I'm wrong, but I'm going to make some assumptions about what you
just said. You say that you don't write the software for profit(presumably,
you don't plan doing so in the future either). Your main objection is that
other people will have access to your "years of hard work, [and] research".
Consequently, you fear that others will develop other software based on your
work.

You appear to be a generous and helpful person by providing the program, and
if you really have no commercial interest in your project, I have troubles
understanding why you would care. Is it because you want acknowledgement?

Please forgive me if I angered you (based on your post, you really don't seem
to like this question). However, I just can't understand your philosophy.

~~~
ComputerGuru
I don't mind the question at all. What angers me is the attitude where people
are convinced I'm wrong to withhold the code, regardless of my reasons.

As I explain in the sister post, my software contains years of research. It's
not the code that I'm keeping secret, it's my hundreds of hours of testing and
researching and experimenting to find out how certain inner-system mechanics
work. I want to help people achieve these, but I like being the reference for
this.

There are already people that have stolen (early versions of) my source code
(and I mean that literally) and are selling it for profit:
<http://www.vistabootpro.org/>

I don't want people to be able to do anything like this. I love the _control_
that I have, and yes, it is a great responsibility. I could abuse this control
and charge exorbitant rates for the software and technology, but I don't.
While I'm not looking to make money off of my knowledge and prefer to
distribute these tools for free, it doesn't mean I don't mind others making
money off of _MY_ hard work and research. Whether it's a big company or a
small-time get-rich-quick jerk doing the capitalization on my efforts, I
really don't want it.

I guess it also does have to do with acknowledgement: I want people to know
that someone worked hard and is giving this away for free. The minute I give
up the source code, the ideas are let loose and anyone can monetize/abuse
them. In a way, giving up this measure of control would dilute the value of
it.

tl;dr I don't want anyone getting rewarded (money or attribution) for _my_
hard work and research. Yes, it is a selfish principle, but I think I'm
allowed that much given that everything else I'm doing is selfless...

~~~
robryan
I think what your doing will probably be saving people money. As you have
pointed out there wil be people taking your source, renaming it and putting it
up for sale. I think this type of software there would be a lot of people that
would find the alternative first and pay for it.

It's weird I guess that charging for the software would get people off your
back but giving it away for free draws this extra criticism rather than
thanks.

~~~
seabee
The amount of entitlement some people feel from the authors of free software
is quite surprising.

It's twice as bad when those people are _pirates_. Honestly, I don't have a
big problem with people pirating our software, especially when they probably
can't afford it (young teens etc.) but they certainly don't deserve to get our
time and support for free as well.

~~~
derleth
_The amount of entitlement some people feel_

Stop right there. As a practical matter, you're misinterpreting comments. As a
philosophical matter, there's no way you can know what others feel. This whole
train of thought is _ensuring_ that people misunderstand you and, worse, take
you for the worst kind of sniveling martyr.

------
edw519
_It's bad for the business of programming because now customers expect to be
able to find a free solution to every problem._

Here's the dirty little secret about B2B software:

It's not about the money.

It's about the risk.

I tell my customers that if they can find a free generic horizontal piece of
software that provides them value without risk, then by all means, use it.

Then I ask them to consider questions like these:

    
    
      - Is the website up?
      - Is the fulfillment system up?
      - Is the phone system up?
      - Did we get that order?
      - Did that order ship?
      - Did the customer pay?
      - Did the bank get the money?
      - Did the material get received?
      - Did we make payroll?
      - Did we get the best price?
      - Where are our revenues below plan?
      - Where are our margins below plan?
      - What are our numbers for the day? Week? Month? Quarter?
      

Then the killer question: "If we don't know the answer to any of the above
because of our free software then who are you going to call?"

If you have a good answer to that question, then you may want to consider a
free software alternative. Otherwise, paying for legitimate software and
support is simply the price of doing business. The risk to your business and
its stakeholders is simply not worth the couple of bucks saved on free
software.

~~~
praptak
Yes, but there are also some risks associated with commercial apps. What if
the company folds? What if they decide to stop supporting my platform? Are
slow to fix bugs?

Having no rights to the source code leaves you in the cold if any of the above
happens.

~~~
unoti
You're absolutely right, but this is well covered ground when dealing with
smaller software vendors in a B2B environment. Source code escrow
(<http://en.wikipedia.org/wiki/Source_code_escrow>) is something we would
often do when I worked for a company that sold ERP software. The basics of the
idea are to give good answers to all the questions you put at the top of your
post about what happens if the worst happens. A source escrow agreement makes
it so that if the company you're buying the software from disappears, you at
least have access to the source and will have a shot at not being completely
screwed.

Thing is, though, that the source code license isn't really the thing that
you're betting on. It's your relationship with the vendor. Your business can
be screwed a lot by a business long before the escrow agreement kicks in, and
long before they fold.

Being heavily dependent on a software company, at least in ERP type business
software, is a lot like marriage. You definitely want to pick the right one,
and it's all about the relationship. If the marriage goes bad, it can make
your life hellish, even if you do have a pre-nup.

~~~
etherealG
possibly 1 good argument for open source software is that this kind of
depedance on 1 other business generally isn't there. most bigger open source
projects have people from various companies working on them, so relying on
that software is safer cause it doesn't depend on just 1 other company.

having said that, this isn't always the case, but in many situations bigger
open source projects that are widey used it is.

~~~
thomaslee
I spoke about exactly this at a recent conference in Brisbane, Australia:

<http://linuxconfau.blip.tv/file/4697493>

Beyond various companies working on an open source solution you have the more
important benefit of being able to choose your support vendor.

------
wheels
Because it's fun. I love writing software. I've been programming for nigh-on
20 years, but it's only been in the last 3 or so of those that _selling_
software has even remotely interested me.

I could go on and on about what _I've_ gotten out of doing open source stuff –
it's made me a much better programmer, it's opened up doors to jobs that I'd
not have had by other means, but really, at the end of the day, I've written a
bunch of this stuff because I liked doing it. Also, for those who are working
a day-job in addition to the stuff they're doing on the side, there's
something freeing about being able to write OSS stuff outside of business
constraints, what your boss told you to do, what the market thinks it wants
... you get to simply write software the way you think it should be written.

~~~
_delirium
_Also, for those who are working a day-job in addition to the stuff they're
doing on the side, there's something freeing about being able to write OSS
stuff outside of business constraints_

That's a big part of my reason. If I'm already working a day job, there's
something freeing about not having to worry about whether my side project
makes any money or not. Just do what I think is a good idea, release it, done.

Actually I do that for writing also. I spend a bunch of time writing Wikipedia
articles, writing answers on various question forums, posting on HN and
Slashdot, etc., when in theory I could probably find some way to monetize my
writing. But writing a Wikipedia article on something I find interesting is an
enjoyable hobby, while figuring out how to start a website with similar
content that I could monetize feels like it'd be more of a job.

------
hasenj
I'm at a point where I'm actually afraid to use any infrastructure that's not
open source, and I think many developers/hackers feel the same.

If I were to write a library/tool that lies more on the "infrastructure" side
than the "product" side, I would open source it because I would be scared to
depend on infrastructure that's not open source. Also, because I will get much
better value out of it if people more talented than me took part in its
development.

If node.js wasn't open source, I wouldn't even bother looking at it. If I
looked at it, I wouldn't use it, just because it's not open source. I wouldn't
trust one company to do it right. But I trust the hacker community to make it
rock.

~~~
robryan
Definitely for infrastructure, but usually if a project is valuable to many
businesses/ individuals there will be many contributors so the burden falls
less on a few people to dedicate their lives to something everyone else is
drawing benefit.

The dynamics are quiet different I think for small single person OSS.

------
jasonkester
Read the top answers on that page and it's easy to distill down the underlying
motivation behind a lot of developers:

Fear.

"All these angry customers will demand support", "Nobody will buy it", "It's
not good enough to charge money for." It's all just fear of the unknown, and
if they'd take the leap, they'd find that none of those things are true.

The 3rd answer comes closest to explaining why I put some of my stuff out
there for free:

[http://programmers.stackexchange.com/questions/3233/why-
do-p...](http://programmers.stackexchange.com/questions/3233/why-do-
programmers-write-applications-and-then-make-them-free/3243#3243)

A good web application with a base of happy people using it, that was clearly
built by you and only you, goes a long way towards proving your value for
people who might want to do business with you in the future.

------
agentultra
I write free software because I can.

If I had to pay for every line of source code that was written to make my
computer useful, I'd be very poor.

I actually open source my code as well. I believe innovation can only happen
when people share ideas. I probably wouldn't have the career I do without open
source software. So I like to give back and share what I've learned.

I'm not really in the business of policing people. If they want to plagiarize
my software or whatever I don't really waste my time trying to stop them. Or
tell them off. Their dishonesty will eventually reveal itself to others. It's
hard hiding that sort of behaviour from people forever.

That all being said, I don't have a problem with charging money for software.
I just won't charge for the upgrades. Whatever price I set just ensures that I
can continue to work on it and release new features, bug fixes, etc.

------
chaosmachine
_"Releasing free apps and working on open source programs are great
advertisements for selling a product, namely you. (Alternatively phrased: free
apps are a loss leader for selling your time.)"_

This seems like a really backwards approach. If you can code, create a few
good paid apps and start generating passive income. Then you'll no longer need
to sell your time at all.

~~~
chc
This sounds like Underpants Gnome planning.

    
    
      1. Create a few good paid apps
    
      2. ????
    
      3. Get enough passive income that you'll no longer need to work
    

How is merely creating a good app and charging money for it a solid plan for
making more than a few bucks? Unless my understanding of the software industry
is very far off the mark, the app has to target a good market, fit that market
well, be sold effectively to that market _and_ have a good support system in
place that works without you participating — and if you're missing one
element, the others have to be hit _a lot_ stronger. Am I wrong in your
experience?

Contrariwise, free software has no barrier to entry at all. Just being free is
a marketing campaign in itself. You're much more likely to get wide adoption
with free software, so if you don't feel capable of marketing and supporting a
_product_ , it at least is good advertising for your _skills_.

~~~
jasonkester
Why do you assume that it's easier to get wide adoption of a product if it's
free, but not if it has a price tag?

If you want your free thing to take off, you still need to market it and do
all the other things you describe. The barrier to entry is almost exactly the
same, except that with a paid product you need to figure out a way to accept
payments.

~~~
chc
I assume it's easier because most people's experience has shown that it's far
easier to get people to take something for free than to part with even a
dollar for it.

For a real-world example, free app downloads on the iPhone positively dominate
paid apps — that's why they have separate "Top Downloaded" lists.

------
patio11
Some people like writing it, and gain value out of it being used. Some people
believe an OSS portfolio is a strong asset for advancing their career.

Some people are pressured into giving away for free what could be sold by
savvy businesses who like getting free things from people with poor business
soft skills. Some people succumb to peer pressure because they think having
business soft skills is frowned upon in their community.

~~~
chc
I think rather than feeling pressured by peers into hiding their "business
soft skills," probably more people just don't believe they have those skills
at all.

------
thristian
I think there's a distinction between "apps" and "tools"; I doubt anyone would
spend years of their life and thousands of dollars in UI testing trying to
make, say, an accounting package, and then give it away. On the other hand,
many people write useful tools — even business-critical things like rsync and
ssh — and give them away freely.

As somebody who has contributed to a few open-source projects, and even put up
some code of his own (that nobody else is ever likely to look at or use - but
at least it's out there), the main reason I do it is because I like to master
skills and concepts - the code is just a reside, a side-effect that proves to
other people that I've understood the topic at hand. It makes much more sense
to advertise my skills to as many people as possible than to try and make
people pay to see how good I am.

A second reason is that nobody should ever have to re-solve a problem with
known solution (unless they really want to). When I can see somebody
struggling with a problem I know how to solve, keeping the answer to myself,
or (worse!) extorting the other person is jerkish behaviour; I hate when it's
done to me and I won't do it to others.

Finally, actually making a product and selling it involves a whole bunch of
skills and responsibilities that are largely alien - sales, market research,
management, etc. I _could_ go out and learn all those things, but that's time
I'd much rather spend on helping people out, and becoming a better programmer.

~~~
steveklabnik
> I doubt anyone would spend years of their life and thousands of dollars in
> UI testing trying to make, say, an accounting package,

<http://en.wikipedia.org/wiki/GnuCash>

... oh wait, you said 'thousands of dollars in UI testing.' :)

~~~
shadowfox
> ... oh wait, you said 'thousands of dollars in UI testing.' :)

Or in the case of GnuCash, any UI testing at all :P (Ok. That is not really
true. The UI is not that bad)

------
KedarMhaswade
All the "infrastructure" code should be open source. It is better for
everyone. I can't imagine a world where such code that enables others to write
code (that may not be infrastructure) is not FOSS.

Paid services made available using that infrastructure code is also loosely
called software (because programming is involved). But it involves other
things as much as programming and hence making a business out of it makes
sense if one has energy, passion and talent for it.

As a programmer, if you are in a position to do both, a balance is achieved.

If you are producing software that does not involve other things that a
service has to offer, then it is better to just open source it right from the
beginning or once you realize the force of open source.

And "free" in FOSS has an interesting connotation that Jamie Zawinkie said to
have captured -- "Linux is only free if your time has no value".

------
reynolds
It seems obvious that the person asking this question is a troll.

~~~
Vivtek
It was a good troll, then - look at the vehemence of the resulting discussion,
even here.

------
ylem
Sometimes because people want help? Look at some libraries like matplotlib, or
numpy. They're extremely useful, but they benefit because you have a team of
developers working on it. Now, imagine that you're a company that sells
services (data analysis, made to order applications, etc.)--it makes sense to
open source the core (which is built from commonly known algorithms) and have
that rock solid, because it is not your core competency.

Another example might be language translation. While there are open source
(and even non gpl) libraries for western languages, unless ocrpus has advanced
a lot recently, I didn't find much out their for Chinese (at least on English
web sites). Writing a good online OCR library for Chinese is nontrivial and
more than I'm likely to be able to do in my spare time--but, I might be able
to get one started and open source it with a permissive license (so businesses
can also contribute developer time) and have a community of people who might
work on it if the groundwork is good. Now, people might use this for a variety
of other applications (scanning, so-so machine translation, etc.) which might
be profitable.

Otherwise--for some people we simply happen to have a "hobby" that could be
profitable....

------
zaidf
_It's bad for the business of programming because now customers expect to be
able to find a free solution to every problem._

Isn't this suggesting border-line price fixing?

------
momotomo
Skimmed the thread and it doesn't seem to move away from the assumption of one
programmer, one product. Open source is always at it's most impressive (imho)
when you have a mass of individuals contributing to an application or system.
It combines community, professional development, experience, peer review, etc.
to produce some impressive products.

------
guptaneil
"If you’re good at something, never do it for free.” - The Joker

There's a difference between free and $0. A developer's goal may be to just
build his portfolio, in which case giving away the software is more valuable
than the cash he could make selling it. Nobody gives anything for free, the
pricing just depends on the person's motivations. Another example is Google
giving away Chrome because it wants user data more than it needs cash. I could
go on, there are plenty of things more valuable than cash, depending on your
situation.

------
mnwcsult
Years ago I wrote a significant C++ GUI library for just pure FYI. It was
available to anyone. I had answered the questions I was interested in.

------
nhangen
There are merits to owning a portion of the marketplace and being ubiquitous,
just as there are merits to making a profit.

My new little project: iconswitch.me is free, but because it would be easier
to monetize the traffic than to monetize the user.

There are a lot of reasons, but the key ingredient to free is having a
strategy rather than trying to figure it out later.

------
jarin
While I've been known for being anti-GPL, I'm totally for open-source
software. My philosophy is to open-source anything that a) is too simple to be
sellable, b) is an extension of something already open-source (like a
Moonshine plugin), or c) I don't want to take the time or energy to sell.

A lot of stuff falls under c).

------
warwick
I have one free app. It's a loss leader for another app. I know that the
popular wisdom is that if you want to get your name out you should blog a lot,
but my specialty is creating software, and it gets my name out to my potential
customers extremely well.

------
enneff
I feel great satisfaction when people find value in the things that I do.

------
njharman
i cant believe people are still beating this dead horse

------
hackermom
Out of love and benevolence.

