Hacker News new | ask | show | jobs
by earhart 2037 days ago
So, I'm seeing a lot of dislike for the GPL in these threads.

Just curious, as a side question... suppose one really does believe that users should be able to improve and modify the software on devices they own and share those improvements with others; is there a better license out there?

(The current situation reminds me a lot of a Prisoner's Dilemma problem -- if the open-source community typically used the GPL, there'd be significant economic pressure on companies to work with GPL'd software, but in our current world, the individual developer has to choose between giving their code away as non-GPL open-source or toiling in complete obscurity, and it's no surprise that individuals choose to at least get the cred of seeing their code used.)

4 comments

The AGPL goes further than GPL in the requirement of providing source code, so in a way its more GPL than GPL itself and thus maybe "better".

On the prisoner's dilemma – I see two major dimensions in BSD/MIT vs GPL:

* Should a license enforce the giving back of code or should one be free to do so out of ones own will? Which is the most "free"? Enforced freedom or freedom to be free? (Which one is best really depends on how one defines and values "free")

* Does a long and complex license like the GPL help a project or is the simplicity and shortness of BSD/MIT better?

(Then there's the third type of license which is Apache, which is basically as open as BSD/MIT, but still as long and complex as GPL, to cover eg. patents in addition to intellectual property)

It depends on how you feel about the word "should."

At core, there are two different philosophies at play here.

On one side, you see copyleft licenses. These licenses impose a requirement on anyone who uses/modifies the source code. This requirement is for the purpose of ensuring that all versions of the source code are available for all potential users of the code. They do this by requiring source modifications to be licensed similarly and made available.

On the other side, you see permissive licenses, such as BSD or MIT licenses. These impose no requirement upon users/modifiers of the code, other than preserving the copyright notice on the copyrighted code. Derived works need not share a similar license, nor do modifications need to be made available.

Both categories of license allow downstream users of the code to do whatever they wish with it in that neither restricts usage of the code. Copyleft licenses include a requirement to share and share alike. This imposes additional legal burdens on some usages of the code - it doesn't prevent it outright, but it forces certain actions as a condition for certain usages of the code. Permissive open source licenses impose no such burden.

Both allow users to improve and modify the software on their devices. Neither prevents sharing those improvements with others. One requires sharing those improvements with others.

So, I'll conclude by restating my initial point: it depends on what your definition of "should" is. One interpretation of should is normative - you believe in this thing and you believe that it is well and good that requirements to act in accordance with this belief are imposed upon others. The other interpretation is that an acceptable license does not restrict such behavior, but also does not enforce it either.

No, the problem is not really a prisoner's dilemma here. Rather, there's a philosophical difference between two parts of the community. Many people don't want to do work for large companies for free, and dislike their work being used without compensation. So, they license it under copyleft licenses. Others (like me) don't really care and mostly write stuff because it's fun and interesting. We publish things under permissive licenses. Even were GPL the standard, I'd probably still use permissive licenses because I don't care where the code is used.
Except... big companies can use GPLd code for free -- they just have to provide their modifications somewhere, and make it possible for users to replace the GPLd part (which is where things typically fall down).

So... if you genuinely don't care, why wouldn't you release software as GPL instead, so that you're not enabling companies to more cheaply provide software that prevents people from making modifications?

(And to be clear, I'm asking as devil's advocate here -- for myself, I have a few personal projects I haven't released, but I've sometimes thought about what license I'd choose if I did; I haven't been able to decide.)

Because I also value developer freedom. In fact, as a developer, I might value it even higher than user freedom. I've had the irritating experience of finding a good library that's GPL'ed and that I therefore cannot use. Copyleft is great for users and awful for developers. As much as some people hate to hear it, there are industries in which it is not viable to release the source to one's product and remain competitive.
Sure there is. It's free if your income is less than $1000000 per year. It's $1000 per year otherwise. This is no joke, I know a company that does that.