views:

350

answers:

3

From your perspective as a programmer, what are some of the pros and cons of releasing open-source hobby projects under permissive vs. copyleft licenses?

My personal opinion is that there's nothing fundamentally immoral about improving an open-source project and making the improved version proprietary. This is not free-riding on the open-source version, since you're still competing with it, and therefore, the price of your proprietary version will converge to the amount of value you added, which is perfectly reasonable. Therefore, it is basically a good thing.

However, the problem in practice is that a company that does such things might use embrace, extend, extinguish tactics to avoid competing on a level field with the free version of the program. By adding a few features that are key to some market segment, and crippling interoperability with the free version, either intentionally or through indifference, the improved, proprietary version could become a de facto standard. The free version could become essentially unusable simply because of lack of interoperability with the proprietary version. In this case, the company that makes the proprietary version would be able to charge much more due to lack of effective competition with the free version, and would be free-riding on the open-source community.

Overall, I believe that copyleft is justified where substantial fear of embrace, extend, extinguish is warranted, and that otherwise, permissive licenses are better for open-source software. What are some other perspectives on this issue?

+5  A: 

As a hobbyist developer, I view copyleft not as a moral issue, but one of pragmatics. To me, it's an alternative to making my application shareware or something similar--I still want something out of the code I write. In the case of shareware, that's money. In the case of copyleft, that's code. If you take the code that I've developed, I get access to your changes--and that's something that's beneficial to me. (I realize there are some edge cases where private modification is possible without redistribution, but practically speaking, most people who make changes will be exposing their changes.)

If you simply want to be a philanthropist and give away stuff for free, then I think your logic is sound--use a permissive license generally speaking, and copyleft when embrace and extend is feared.

But if the code itself is valuable to you, and receiving the source to any derivative works feels like a reasonable payment, then copyleft may be a better choice for you.

Ross
+1  A: 

Where is the moral if a company makes money by dual licensing a GPL project and sucks in contributions for free. I am personally on the Apache, BSD, MIT side of things. For me it's the real freedom in open source. Someone can only make money off my code if he can add substantial value to it anyway. And then I am OK with it.

I guess you really have to ask yourself why you want to open source the code in the first place. What is your definition of freedom. Can a free rider really provide the same value you can provide? Why would people go with the commercial choice?

tcurdt
Er, the question is about picking a license for *your* code. A company can't dual-license code they don't own (unless you assign copyright to them) , and for what they do own, they can dual-license even with Apache/BSD/MIT. How does the dual-license issue come in?
ShreevatsaR
Not sure I understand your comment. But my point is that the Apache/BSD/MIT is so much more free that no one can hide behind the license. It's the additional value that will distinguish and protect you. I always question the reasons for releasing the source code of commercial software under GPL.
tcurdt
+1  A: 

For me, the distinction between hobby and work is a bit blurry: my hobby projects tend to draw on my entire software portfolio, some of which has been developed as part of work projects. Since my work projects are partly supported by American taxpayers, I feel a moral obligation to make my stuff useful to as many people as possible. Because some people in industry are still afraid of copyleft, I tend to put most of my stuff in the public domain. One of my oldest projects, noweb, is released under an open-source license just so that if other people change it they can't call the result noweb without my consent. And when I collaborate, I use the license my collaborators prefer.

Pros of copyleft:

  • Good karma from Free Software movement; may attract more collaborators

Cons of copyleft:

  • Loss of potential users who fear copyleft

  • Less clear what rights the original author retains over the name of the software and what may be called by that name

Norman Ramsey
Cool, thanks for noweb :) Can you explain what "Less clear what rights the original author retains..." means? How is it different with a non-copyleft license? Is the "change the name if you change it" restriction part of Apache/BSD/MIT?
ShreevatsaR
@ShreevatsaR: sorry, I have not kept up with the terms of all those licenses. My experience with copyleft is that the original developer retains few rights of control.
Norman Ramsey
Ok... AFAIK "copyleft" is just the *additional* restriction that "derivatives of this program must also be free", so it should be possible to add the "please change the name" restriction to any copyleft license too. [Although this would make it incompatible with GPL; probably that's what you mean.]
ShreevatsaR