Hacker News new | past | comments | ask | show | jobs | submit login
Why do programmers write apps and then make them free (programmers.stackexchange.com)
168 points by awa on Feb 6, 2011 | hide | past | favorite | 111 comments



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...


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.


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...


If you charged money, that's something people can relate to. People understand the need to put food on the table. People even understand that jet skis are a lot of fun but they're not cheap. Money makes the world go around. So you could charge away with the full approval of every capitalist in the room.

But it's disappointing to see people hoarding knowledge in order to feel important. Guess what: there are nearly seven billion other people out there. A lot of them are smarter than you, at least in some way, no matter who you are. I'll bet that somewhere in those seven billion people, there is someone who could take your research and produce a product better than yours. (No insult intended -- the numbers are just against you.) If you only released the source. So you're holding the world back in order to feel good about yourself. It's still a relatable concept, but now it's a low, dark thing, and no longer morally defensible.


You know, you guys have really opened my eyes here. I'm beginning to think I was mistaken, and am considering making money off of my software.

It's something people respect, compared to giving away this stuff for free which just can't seem to make anyone happy.


Perhaps the best compromise would be to sell it very cheaply. As a practical matter, a buck or two isn't much of a barrier to people who want to use your software, and if you spread a useful product far and wide, that still benefits humanity.

It seems like being misunderstood is what makes you angry and unhappy here - so switching to a model that people understand might be a relief! Remember why you started the project. Is your goal to prove people wrong about the value of free-but-not-open-source software, or is your goal to improve people's lives at a low cost? After all, there was already a cost to your software - the time cost of finding, evaluating, and installing it. That time cost, plus a buck or two, would not be a big increase in the real cost for end users.

And you could keep it your little secret if your 'business' runs in the red because you charge pennies on the dollar compared to what it's really worth.


Thanks, James. I think you're hitting the nail squarely on the head here.... You've given me much to think about!


Mahmoud, you're beginning to see the problem of bias, but there's a good deal more to it. People like to believe they are secure, and hence, the supposedly "technical" users like to believe they somehow vet their software.

The truth of the matter is vastly different.

Can you name anyone who as actually done a security audit on every single binary and source file they use?

In other words, the assurances people seek by paying for software are fictitious from the start. The very same is true for open source software.


When I was in school, I once needed to get a note from my parents to give to my gym teacher. My gym teacher asked if I had the note, and I said sure, and started to get it out. He told me not to bother, and trusted that it existed and was genuine.


You do have to remember that you are dealing with a very specific subset of the population here on this forum. I have lots of free but not open source software on my system (along side the paid and open source stuff).

I will say that technical users, such as myself and people here, are wary of installing random software on their computers. Most of the time, I'm not worried about malware or nagware but about wasting my time on product that doesn't work. But I've seen low quality paid software, low quality open source software, and low quality free software in equal measure.


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.


I think the real problem you could face going open source, isn't just that someone will rip you off and sell it for money. It's that the person selling it for money can now afford to advertise and spam google, which means your free software is going to rock-bottom out of the search rankings and only a committed person will be able to find your free software.

Also I never got that bizarre entitlement that comes from free software users. I almost feel bad for asking about problems when it comes to free software, just because I know the effort that goes into it.


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.


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.


You can release source without giving up all rights. For example, to prevent all the stuff you said you didn't want happening, there's a Creative Commons license that requires attribution for any uses of the work and disallows commercial use. (Not trying to talk you into anything. I'm just not sure if you're aware of that kind of license, since it didn't sound like it and those licenses get less attention than the more radical GPL.)


Not really. While companies do stick to the rules when it comes to copying source code or using open source libraries, when it comes to ideas and discoveries once the cat's out of the bag, it's out for good.

It doesn't even need to be done intentionally or maliciously. All it takes is one blog post detailing how something works (as discovered by reading through my code), then another person summarizes that discovery, and the next thing you know, it's all over the web and anyone can & will use it.


I really like your point here, all the disucussion about open source license always makes me wonder how applicable that is in the real world. What it comes down to is that a lone software developer doesn't generally have the resources available to enforce his license, making it rather pointless.


He has. There are projects like http://www.gpl-violations.org/ and people like Harald Welte (and many more) who do have the resources and who will help you (for free).


True, but that mainly helps when it's the body of code that provides the key value, like in a large engineering project of the Linux-kernel variety. If it's the idea and algorithms that are valuable, and the code is a fairly straightforward implementation, then someone can just reimplement it and there's no GPL violation (subject to some gray areas). The only thing that could really keep that from happening is: 1) keep your methods secret; or 2) some variety of software patent.


While I don't hold your personal philosophy, after reading several of your posts I can see where you come from. I'm inclined to be an OSS zealot but you know what they say, give an inch and they'll want a mile!

It does make me want to rant about scientists who hold this philosophy though...

I know a professor or two who do the same thing and it bothers me to no end. It stands directly against scientific principles, where you are supposed to share your research with the community. On top of that without the source, an experiment involving software isn't fundamentally repeatable.


I've seen several cases where free or even paid software is pirated, rebranded and then re-sold, giving the original author no credit at all. Having the source code or not seems to make little difference in these cases, but it's certainly very simple to re-release a product using source code. Not everyone in the software business is full of ethics, morals or even a shred of respect for the work of others. It's a valid fear of being ripped off, even if you don't receive money for the software - not all value delivered to authors is monetary, as the vast bulk of people who write books will tell you.

The other thing with releasing open-source versions of software is that sometime, underskilled consultants build versions of your software with code hacks in it, and pass it off to unsuspecting clients. The clients then contact you for support, and you chase your tail trying to work out what is wrong, only to work out eventually that it's a rogue build of the software. This is somewhat ameliorated with a true open source project, but is always a risk if you are supporting versions of your software.


So, you release software for free but do not provide sources for fear of being ripped off.

I understand the reasoning, but I must say your fears are unfounded. The thousands of open source applications out there are the proof of that. There are a number of cases of GPL violations, and BSD licensed software being used in closed source applications without any attribution, but these are not the majority, and it doesn't seem to impact whatever recognition the original authors receive.

If you write anything worth ripping off in such a manner, you will most certainly receive recognition for it.

However, in this day and age I can say that free software without sources raises a flag with me. I won't use any of it because it usually means the author has something to hide, either the suckage of the code or something worse.


>I won't use any of it because it usually means the author has something to hide

And you, good sir, are the very epitome of what I was referring to. Thanks for proving my point. If I were charging money you wouldn't say this, but since I'm not you seem to believe you're entitled to even more than I'm willing to give for free.

I'm not going to bother repeating why I do this, read my other points. But, yes, people have found my software worthy of being ripped off in this fashion.


It's game theory. If you charge money for something, it gives you an incentive to avoid doing sneaky things that will destroy that money stream in the future, like embedding spyware in your app. But if you don't, people wonder what the hell's in it for you. And they figure that since you're not making money off customers, you must have some spyware or adware deal to make it elsewhere.

Game theory's probably the most depressing and cynical academic subject that I've ever studied, but it does do a remarkably good job at describing people's actual behavior.


Hey, thanks for that! I think that's the thread of logic/perception that I was missing in my confused analysis of all this.


I read through this thread a few times before saying anything. No I am not trying to pry your teeth but you seemed to act altruistic yet failed to mention that your site makes the donation action very seamless and evident. What I am saying is that your statements make it out to be like you do this for free and have no interest in receiving monetary compensation for your efforts yet the donation button is awfully evident on your site's page.


I do not think I'm entitled to more that you are willing to give for free. However, I'm entitled to suspect your software may include malware, spyware and/or adware and thus choose not to use it.

It has nothing to do with releasing the source per-se. It has everything to do with the fact that experience shows that there are only two goals for producing software: money or reputation. And free software without sources rarely fits the latter.

I'm not saying that's your case, but I'm saying this is my default stance.


> And free software without sources rarely fits the latter.

Do you have any evidence for that statement?

I've seen a lot of freeware over the last twenty-plus years, and rarely have I heard of anything malicious.


  If I were charging money you wouldn't say this [..]
Because then there would be a contract between you and him, preventing you from doing harm.

  [..] but since I'm not you seem to believe you're entitled to
I didn't gather that from he said at all. He (implicitly) said he doesn't trust you and won't use your software unless he is able to read the code for himself or obtains a contract that protects him from wrongdoing. Those are two ways of obtaining guarantees. You nor your software provide such guarantees and as such he will not use your software. That is not a complaint, but merely an informative statement.


> or obtains a contract that protects him from wrongdoing.

I don't believe I've ever seen a EULA that promises anything like that.


Sorry...

"If I were charging money you wouldn't say this, but since I'm not you seem to believe you're entitled to even more than I'm willing to give for free."

I know a lot of paid, closed source software has had little nasties in it over the years (and that's why I only use open source software). And if someone isn't getting an income from their software, the incentive to include everything from nag-screens to spyware only increases.


There is an awful lot of "free software" that is free because of the crap/malicious code bundled in.

At least if I'm paying someone money -- they have an incentive not to screw me over. Or if it is open-source then I can hope that someone might have seen the cdoe... But Free/Closed-Source often means something dodgy.

// Please don't think I'm implying anything about you... EasyBCD looks quite interesting and I'll be checking it out on the next system I build.. But I've helped enough relatives with their computers to know that "free" software often means trouble.


The question was pretty annoying. But why are you getting mad with the OSS guys? Rather than flat-out dismissal of the open source guys, I think you'd find a lot more understanding and less whining if you made it clear that in the event of your death, or loss of interest in the software, or an upgrade to a system where most of the potential users would have such a need for the software that you don't feel like moving your software to, then you would in such cases have a mechanism to release the source. Free is useless if it doesn't work, raw source always has a use. I'm also sure you're aware that OSS doesn't take away any attribution so I don't understand that complaint.

As two other datapoints, the Minecraft dev has stated he will open source his game when sales die down, i.e. he has no use for keeping it closed anymore. It's similar with the Wolfire group who have open sourced Lugaru and will probably open source Overgrowth some time after it's finished.


Open source protects the code, not the concepts. People are free to use my years of research to understand how certain mysterious super-low-level stuff work. Big companies (and there are many who want this tech), would be able to find out how I automate dual-boots of Windows XP and Windows Vista, etc.

I have thought of what would happen to the company in case I disappeared off the face of the earth, and I'm definitely not averse to making concessions to ensure that my software will remain useful in case of my death or whatnot.

Again, there's a difference between open source where what you're open sourcing is the CODE and open source where what you're open sourcing is the TECH and research. I'm not saying one shouldn't open source the tech, but I'm just saying I'm not that generous.


Again, there's a difference between open source where what you're open sourcing is the CODE and open source where what you're open sourcing is the TECH and research. I'm not saying one shouldn't open source the tech, but I'm just saying I'm not that generous.

If I can download your program, I can learn your tech and your research if I'm willing to put in the effort. Don't naively think that "keeping it closed-source" keeps anything away from prying eyes except possibly your code comments. Most likely, if nobody steals your ideas, it's because they don't care, not because they can't.

I work on the ffmpeg project, which contains literally dozens of video and audio decoders for proprietary formats, many of which were based on nothing but symbol-less closed-source binaries. Not releasing code simply makes the job take an extra week or two.

The skill of the developers who have this expertise is staggering and should never be underestimated. One of them, for example, reverse-engineered a neural-network adaptive image resizer and created his own implementation -- generating bit-identical output -- in a mere 11 hours. He then spent 2 weeks optimizing it to make it 4 times faster than the original, and published it -- which led to the original author (of the closed-source version) releasing his source.

I also work on the x264 project, which is literally covered in "tech" and "research" that's been open-sourced. Curiously none of our (usually much-inferior) proprietary competitors have ripped off our algorithms (and yes, I actively check for this). My guess, from talking from people in the business, is that they're so deathly afraid of the GPL that they aren't even allowed by their managers to look at our code.


The effort it would take to reverse engineer my code is the same as the effort it took me to reverse engineer the Windows code in the first place, to allow me to extend it in the way that I have. not against people putting in the effort and learning for themselves. I'm against people making a quick buck by downloading my source code and getting a ready-to-use framework to build on.

I have been approached by backup companies (for "universal restore"/"bare-metal restore") who wanted to license this tech for free and have had source code stolen and being resold by "competitors."

I think that should clear up my concerns.

EDIT:

Read your update, and completely concur. There are people in the open source world that can do crazy, impressive, and amazing things. People like that, I can and do respect. I've shared my code with a few others before, and someone like that I wouldn't hesitate to say yes to. But to let it out in the wild..... it's just too hard for me.


You raise an intresting point. Perhaps a new model for libre software would be useful, one that let you distribute customizable software whilst protecting the discoveries that make your work valuable. Black boxing certain parts of the code and publishing others.


Ahh, thanks for clarifying, I get your position a lot better now. Of course, to play devil's advocate a bit more, unless you're worried about the patent system falling down soon you could always patent your tech and release the code under a restrictive "here, you can look at the source only" license. ;)


That's a lot of expense and hassle as compared to saying "no"


You are, of course, fully entitled to decide whether you open-source your code or not.

That being said, as an open-source developer (SumatraPDF reader) I have perfectly rational reasons to open-source my code.

Open-source app is a better marketing tool for my professional skills than just a free app. When I apply for a job, a potential employer can not only look at the final product but also at the quality of my code and that counts.

I also write free and open-source for the karma, I just get more of it than you because I provide more value to the world. People can not only use the final product of my work but I can also help them write their own products. I'm not sure if you thought about it, but your position on "doing it for the good of humanity" is inconsistent. You want brownie points but chose an arbitrary cut off point.

Other people can help me. I started as a solo developer on SumatraPDF and I've gotten significant contributions from others. The software is much better for it and has features that I know I wouldn't implement.

As to the downside you mentioned.

For me, the ability of other people to use my code in their own work is a feature, not a bug, so that boils to the difference of opinion.

I haven't noticed the effect of "diminishing attribution". If anything, the attribution I get increases. First, pretty much every open-source license requires attribution. Second, my software has been improved by other people but since I'm the original developer and host the website for it, I benefit from that (not because I try to hide the fact (quite the contrary) but because most people won't look at svn checkins to see who did what work and will naturally associate most of the credit with the guy who's the face of the project).


Linus Torvalds usually gets all the credit for Linux.


I think your position is much easier to understand when broadened beyond the software field to any creative endeavor: An artist or musician may choose not to pursue a career or specific genre, yet make reproductions available for free. This doesn't mean they would be comfortable with someone profiting from their work (or a plagiarized version of it). They may even take on a free commission or perform a free concert. In the end, it's a labor of love driven by the passion to create. In the arts, ego and control are merely contributing factors to individual expression, which is highly valued. It should be no surprise when this type of motivation appears in software development.


I never understood this kind of position. It's hard to say this without sounding obnoxious, but this kind of position sounds inconsistent.

It's not about what you should or shouldn't do, you're free to do what you want; it's just about being consistent with yourself. It's like helping the old lady cross the street because "it's a good thing to do", but then refusing to help the old man cross the street because "why should I give my services for free?".


Perhaps he is willing to give only part of his work for free. I don't see much inconsistency there.

I guess analogies doesn't always map to reality.


Hey ComputerGuru, just so you know: I get it.

On behalf of your millions of users who don't say very much but rely on it daily, I'd like to say a heartfelt thank you and reaffirm that you're perfectly entitled to do exactly as you please with your own software.

Bear in mind this is an entrepeneurial forum, so many here are focussed on trying to monetising something that delivers value (nothing wrong with that). You've done the hard part and they can't see why you don't take it further.


I enjoyed your post and could relate with some of your points until the last paragraph. I thought you were talking about free software [1] as in libre software, not free software as in gratis software or freeware. Just pointing that out, because it's a completely different perspective then.

[1] http://en.wikipedia.org/wiki/Free_software


Hi, I find your situation intriguing. I am sure that you can use some sort of license that will prevent others from using your code in a commercial product, yet still allow you to share your algorithms and code with other curious coders.

However, in doing this, you'll have to protect your code from the unscrupulous by investigating all other commercial competitors projects, and if you find someone "stealing" your code, you'll have to employ a lawyer. Both are expensive propositions.

So basically what I understand is that you don't release your code because you don't have the resources to protect it from thieves.

Thus my question: if my assumption is true in that you are reluctant to share code because you lack to resources to protect it from thieves, would you be willing to share your code if someone explicitly asked you and signed the equivalent of an NDA?


Depending on who it is and what for, yes.. I've done it before, too.


I don't get bent out of shape if people use my code for commercial purpose, don't brother to attribute it to me, and so on.

In fact, it's the default that I make everything open source. I only not do open source when my client tell me not to.

Well, I do it because I follow the golden rule. Other than that, I don't care less unless it is taking material wealth from me. There's no evidence that I can account for that actually said I am losing money.


I used to write free software, because I like programming. It was fun to write little utilities, and the fact that people actually used them as well was a bonus. Lots of times I would write software because I did not want to pay for software, so I wrote my own version.

Apple made it to easy for me to make money doing this, now I write iPhone apps, have just as much fun, and made quite a bit of money at one stage.


Just out of curiosity, have you thought about going the academic route and publishing your research in a journal, or presenting it at a conference? You're likely to get more attribution for it that way, I would have thought.


I'm curious how you make a living from giving out free software?


I don't. :)

I basically work two full-time jobs, one that pays and one that doesn't.


Right, but the important thing is that you're much more valuable to your paying job because of your experience writing free software.

In most other fields, if you ask for someone with experience, that means they must have had a job in the field. With software, you can get all the experience you need in your spare time.


People who think like you understand without explanation. People who can't think like you won't understand no matter how much explaining you do. Like you said, they are so sure they are right. That kind of 'certainty' doesn't allow for others to be correct, also.


I don't see why you think that a 3rd option is not possible: someone who understands someone's opinion and accepts as a valid choice but has a different opinion.

The issue boils down to opinion and personal preference. As such, it's not a matter of who's "correct".

Clearly there are people in both camps (although I would say that "open source" camp is much bigger than "no-cost but not open source" camp).

There are valid reasons for both options and I don't see why you assume than someone in "open source" camp is utterly incapable of accepting that being in "no-cost but no open source" camp is also a valid choice.

I for one see no point in not releasing the source code if the app is free but if you want to keep your code secret, all the power to you.


Hey thanks for easybcd - it's awesome!


You're welcome. Thanks for using it. :)


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.


These are all great questions to ask about any software that powers a business. Of course, if you are "selling" software on the basis of the question "who are you going to call?", then you have to embrace the fact that you are not in the software business, you're in the "You can call me" business. You're really in the software support business.

Everything about your pricing model is really a kind of fiction. The charge up front, the license, everything. It's really a support business, pure and simple. Oracle and IBM know this, and so do their customers.

And thus the business proposition as a developer comes down to:

1. If I'm in the support business, writing and selling my own software places my customers in thrall to me. I have a monopoly on support. Of course, that means they have a certain risk since I'm the sole vendor. And I have to develop the software and compete with other vendors just to get a customer for my support business, which has a certain risk.

2. If I'm in the support business, supporting free software outsources the part of my business that isn't my core value proposition, and lets me focus on the value I charge for.


> 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.

No software is risk-free, regardless of the licensing terms. One big risk is you'll find out, after weeks or months using the thing, that it doesn't do all that you want it to do, and getting it to do the rest is costly and time-consuming.

> Then the killer question: If the answer to any of the above is "no" because of our free software, "Who are you going to call?"

Literally millions of businesses do well using Linux, Apache, PHP, Perl, Python, Django, Ruby, Rails, MySQL, etc without having problems. (My answer to that question is "do a Google search on the problem and find the solution thast way).

> The risk to your business and its stakeholders is simply not worth the couple of bucks saved on free software.

If you want personal support for your software, you're going to pay a good deal more than $2 for it. And paid-for technical support is available for open source software too, if that's what you want.


It is not really about risk - it's about blame. If you choose the "professional" (whatever that means in your business) alternative, it's not your fault when it fails. It also helps when there is a business behind the product that you can point your finger at and say, "It's their fault, their fault!"


The insidious side. When you begin to smell this with any regularity, it's time to check out.

(On the other side, I've worked with some people in Big Co. who role up their sleeves, diagnose the problem, and then tell and/or work with the vendor to get it fixed. Those kind of actions make it enjoyable to stick around.)


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.


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.


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.


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.


Can't these risks can be guarded against by including relevant conditions and punishments in the support contract?


What if the software supplier goes out of business?

I am going to pay for support for any software open or closed source. However, with open source, I can almost always get some support.


However, with open source, I can almost always get some support.

One bad side effect of the FOSS movement is that customers are now conditioned to expect that open source software literally means free software including free support, free updates, and free bugfixes. So when you do try to build a company around offering support and timely bugfixes people don't think they need it.


One bad side effect of the FOSS movement is that customers are now conditioned to expect that open source software literally means free software including free support

Really? The people I know expect free message boards, possibly peopled with the people who wrote the software (why is this not the case in the closed-source world?), and message-board-level technical help. This may well be good enough to fix problems, but you obviously can't build the classic business "Blame Avoidance Contract" on message boards.


The risk point is a good one. Free but closed-source software seems like the worst of two worlds, noone has any obligation to make it work and unlike if it was open-source, I can't do it myself either.

But does anyone really use free, closed-source software for core business functions?


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.


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.


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.


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.


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...

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.


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.


"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.


"create a few good paid apps and start generating passive income"

I think we need look no further than patio11 to see just how hard it is to make "good paid apps" for a living. We love seeing the Angry Birds runaway successes, but it can be a slog and really slow going. People just starting out can work on free apps as a learning exercise during or just after college and get picked up by a big name company doing great stuff.

Alot of mobile development companies recruit people based on existing experience making apps. Some app makers push their app development services more aggressively than their released apps (alot of them give their apps away to show off their skills to potential clients).

Perhaps the free app maker's ideas aren't polished or just not good enough to stand alone, but the functionality may wow someone looking to take on a technical co-founder or hire a lead developer to produce a bankable product.


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.


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.


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.


[deleted]


I don't mean to be disagreeable, but my experience really doesn't bear that out. People want a Web browser, but selling one is a loser's game — even Opera has given up. Ditto for word processors and media players.

Your second point is exactly what I was getting at — what you need for a successful product is product-marketing and SEO skills. But that's totally orthogonal to making good software and charging money for it.

(Edited thanks to beoba's correction.)


Nitpick: Even opera is free (not Free) these days.


Isn't the mobile version still a paid application?


It's a lot less work, with fewer ongoing demands on your time, to write a mildly popular open-source library and then get a job at Google than it is to support a micro-ISV.


My first paid app has only got a few hundred people using it. I've gotten a lot of work from people stumbling across my free web apps, which have been used by millions of people. I'm very glad I released free software.


Nothing wrong with releasing free software, but if you're going to use it as a promotional vehicle, promote stuff that makes you money while you sleep (paid software), not stuff that eats your free time (consulting).


I think this point (about it being good to promote yourself) is aimed at people who aren't yet in a position to get a lot of work (I made most of my free stuff when I was still in school). If someone already can fill their whole week consulting then it's a no-brainer (in which case free software is more for filling a hobbyist desire or whatnot).


If you can code, create a few good paid apps and start generating passive income.

This is certainly one way (and a valid way), to do it. But not everyone wants to/can sell. Its a completely different skillset and not everyone is good at it.

Writing good (free) apps, is good for one's portfolio, which helps in freelancing/job market.


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.


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.


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.


> 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.' :)


> ... 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)


Your right that no one probably would, but I could see a group of companies/ single people that have a vested interest having a specialised accounting package contribute to an open source accounting software project.


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".


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


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


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....


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?


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.


"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.


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.


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.


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).


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.


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


i cant believe people are still beating this dead horse


Out of love and benevolence.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: