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.
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.
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.
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).
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.
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?".
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.
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?
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.
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.
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!"
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.
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:
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.
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.
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.
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.
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".
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....
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.
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.
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.
[+] [-] ComputerGuru|15 years ago|reply
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...
[+] [-] contravert|15 years ago|reply
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.
[+] [-] CrLf|15 years ago|reply
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.
[+] [-] kkowalczyk|15 years ago|reply
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).
[+] [-] Jach|15 years ago|reply
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.
[+] [-] qjz|15 years ago|reply
[+] [-] hasenj|15 years ago|reply
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?".
[+] [-] unknown|15 years ago|reply
[deleted]
[+] [-] usedtolurk|15 years ago|reply
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.
[+] [-] reledi|15 years ago|reply
[1] http://en.wikipedia.org/wiki/Free_software
[+] [-] masmullin|15 years ago|reply
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?
[+] [-] kiba|15 years ago|reply
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.
[+] [-] megablast|15 years ago|reply
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.
[+] [-] vilya|15 years ago|reply
[+] [-] lachyg|15 years ago|reply
[+] [-] wccrawford|15 years ago|reply
[+] [-] eli_s|15 years ago|reply
[+] [-] edw519|15 years ago|reply
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:
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.
[+] [-] raganwald|15 years ago|reply
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.
[+] [-] cabalamat|15 years ago|reply
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.
[+] [-] billswift|15 years ago|reply
[+] [-] praptak|15 years ago|reply
Having no rights to the source code leaves you in the cold if any of the above happens.
[+] [-] suraj|15 years ago|reply
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.
[+] [-] lutorm|15 years ago|reply
But does anyone really use free, closed-source software for core business functions?
[+] [-] wheels|15 years ago|reply
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|15 years ago|reply
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|15 years ago|reply
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|15 years ago|reply
The dynamics are quiet different I think for small single person OSS.
[+] [-] jasonkester|15 years ago|reply
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.
[+] [-] agentultra|15 years ago|reply
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|15 years ago|reply
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.
[+] [-] muhfuhkuh|15 years ago|reply
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.
[+] [-] chc|15 years ago|reply
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.
[+] [-] patio11|15 years ago|reply
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|15 years ago|reply
[+] [-] thristian|15 years ago|reply
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|15 years ago|reply
http://en.wikipedia.org/wiki/GnuCash
... oh wait, you said 'thousands of dollars in UI testing.' :)
[+] [-] robryan|15 years ago|reply
[+] [-] KedarMhaswade|15 years ago|reply
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|15 years ago|reply
[+] [-] Vivtek|15 years ago|reply
[+] [-] ylem|15 years ago|reply
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|15 years ago|reply
Isn't this suggesting border-line price fixing?
[+] [-] momotomo|15 years ago|reply
[+] [-] guptaneil|15 years ago|reply
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|15 years ago|reply
[+] [-] nhangen|15 years ago|reply
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|15 years ago|reply
A lot of stuff falls under c).
[+] [-] warwick|15 years ago|reply
[+] [-] enneff|15 years ago|reply