views:

137

answers:

5

Possible Duplicates:
Best way to find open-source project partners for non-software tasks
Arguments for going open source

For me the main goal of open sourcing something is collaboration. If the most that other developers are going to do is take it and use it and report bugs to me, then I might as well close source it. Closed source provides me with all that.

I was recently looking at a small javascript library (or more like a plugin, 1000 lines of code) that's actually quite popular. There were some bugs in it because new browser versions get released everyday and these bugs just pop up as a result. What bothered me is that these bugs would actually be quite easy to fix by even intermediate javascript developers, but for an entire month no one stepped up to fix the bug and submit the fixed version. The original author was apparently busy for that month, but that's the point of open sourcing your code: so that others can use it and help themselves AND the project if they can.

So this makes me doubt the promise of open source. If people aren't working on it too, I might as well close source my new projects. And how do you get people involved so that open sourcing is worth it?

Edit For those who wondered why I didn't fix it myself. I didn't because I'm not even that intermediate javascript developer. One remote blog suggested a possible fix, but how do I actually use that fix into the code? You'd think the author of that remote blog would (instead of doing it on his own blog to get street credit) take it one step further and actually bake the fix into the code as he can, so that it does become beneficial to others. His solution on an unrelated blog didn't help me. It should have been taken to the end as open sourcing allows him to do that. Basically he says: ""I"" have a solution. Why not bake it already?

+7  A: 

Open source should be the default stance, not the other way round. What benefits do you have from close-sourcing your project?

At the very least, open-sourcing the project gives other people the chance to adapt it, change it or correct it – and learn from it. Withholding the source withholds all these possibilities.

Konrad Rudolph
Keep in mind that close source and intellectual property rights are the default under Federal laws, and should continue to be to respect the rights of authors. Whether to open source is solely the right of the author of the intellectual property to make. Basically I wouldn't want to entertain the illusion that this guy who's spent 100 hours or 1000 hours on his code owes me anything. The truth is it's his code after all. I think most reasonable people would disagree with you and say that the DEFAULT should be freedom of choice for the creator (as currently is), not the default you suggest.
donpal
You're begging the question: your premise presumes you believe in software patents and that the current law in the US reflects some sort of Natural Law.
Tom
@Tom, I guess yes I'm on the side of the law on this one. If I choose to open source a project, that's my choice. No? But let's stay away from the legal questions please now. None of us are judges or Supreme Court Justices anyway. The real question is all in the title. Also a small correction to you, software patents are not the same as software copyright. It's a whole different ballgame. But let's stick to the question, if I open source, how do I get real involvement so it's worth it to everyone. For example, do you have open source projects of your own and can share your experience?
donpal
@donpal: Apparently I was not sufficiently clear: what I *wanted* to say is that *if you are trying to decide how to release a software*, the default stance should be to open-source it. I didn’t say that this is legally the case, nor even that it should be *expected* (I don’t want to bully anyone in giving up their intellectual rights – although I *do* believe in the moral obligation of that in some cases, particularly if you’re doing research). I wanted to comment on what’s reasonable and moral, not what’s the status quo.
Konrad Rudolph
+2  A: 

The chances, that someone fixes it for you, if you don't release the source, are very very close to zero. If you open source it, however, it is at least bigger than that. And as Red-nosed unicorn said, if you don't actually benefit from close-sourcing it, you will suffer from it instead.

dominikh
+4  A: 

Open Source isn't about making other people whitewash fences for you. Whether you believe in the "no ego, beginner's mind" stance of programming, you need to approach open-sourcing your projects that way. You may think your project is the best thing ever, but until it's useful to someone else, no one needs to contribute to it.

For me, open-sourcing a project has a couple of benefits above other people fixing your bugs.

  1. The chance that someone might take my poor germ of an idea and just okay code and see a better idea in it and help me turn it into that better thing
  2. If my project is useful to someone, if I get hit by a bus tomorrow, they can still use it and expand it without me.
Tom
+2  A: 

Obligatory reference to The Cathedral and the Bazaar and Homesteading the Noosphere, by Eric Raymond, both readable online.

Daniel Vassallo
+3  A: 

The vast majority of Open source projects probably get few if any code submissions for a number of reasons, among them:

  • the project is frankly not much good
  • the code is impenetrable
  • the project addresses a tiny specialised area
  • the intersection of the set of users and the set of possible programmers is small

This last is certainly the case for one of my own FOSS projects http://code.google.com/p/csvfix (the others may apply too, of course), which is a tool for messing with CSV data files, written in C++. Very probably, the number of C++ programmers who want to do this is small, so I wasn't expecting to be deluged with fixes and improvements, and haven't been. I have however received a number of bug report and improvement requests, which I have incorporated where possible, improving the product.

But just because most CSV fiddlers are not C++ programmers dos not mean that the project should not have been open source. People have reported moving and compiling the code successfully on platforms I have no access to (impossible for closed source), and if I drop off the perch tomorrow, someone else can pick it up in the future.

anon
Very good answer Neil. Lots of insights.
donpal
I forgot to ask, what do you by the "the code is impenetrable"? You mean not documented enough for people to actually understand it and improve upon it?
donpal
@donpal Badly designed, badly written, uncommented, etc.
anon