Hacker News new | ask | show | jobs
by mikekchar 3930 days ago
In my opinion, share-alike licenses are important when you want to establish a level playing field for competition. With a share-alike license nobody has more rights than anyone else. The exception is the copyright holder (if there is only one) who can re-license the work.

There are many situations where this level playing field is useful. For example, consider it like a consortium. If you have many groups in the consortium, you want each group to contribute equally. The only way they are likely to do that is if one group doesn't get an unfair advantage.

So the downside of permissive licenses (like MIT) is that it can (in some cases) discourage cooperation. Let's say you have a library that you license with a permissive license. Your competitor may not want to contribute (publicly) to that library because they fear that you will use their changes in your proprietary code to gain advantage over them. In fact, there is an advantage to consuming permissive code and keeping your changes to yourself as long as you don't mind paying the cost of merging upstream changes.

Conversely, there are times when a permissive license is more appropriate/beneficial. In some cases, there is no real risk that others will "horde changes". For example, if you are the author of a programming language, it is in everybody's best interest to continue to develop it. Nobody really gets any advantage by making their own proprietary Ruby implementation, for instance.

People should think very seriously about which free software license they choose, because it makes a difference. Permissive licenses lower the barrier to entry, but potentially create one-sided advantages for some players. Share-alike licenses ensure that everybody is working with from the same place, but makes the barrier to entry higher.

Generally speaking, if you look at the free software ecosystem, you will see natural divisions. Software that creates an entire application (like a word processor, or image editor, etc) tends to use a share-alike license. They do not want someone to take their work, add some proprietary icing to it and take mind-share from their project. On the other side are development tools and libraries which tend to use permissive licenses. Nobody benefits from making proprietary versions of these things. Even if some tries to do so, nobody will be interested in it.

There are people who feel that ensuring everybody has the same opportunities is morally a better choice. Obviously some people disagree, but I often find it surprising that the two sides can't at least understand the other's point of view.

1 comments

Very well thought out. Yes, recommending one type of license for all open source projects is naive. Frameworks and libraries need a different type of license than 'application' type projects. If it's not a MIT/BSD or something similarly permissive, these types of projects will generally not get used as much. I need to be able to modify these things at will, without ever having to think about licenses, especially in the case of bugs or problems that I cannot wait for the community to solve (if they're even going in the direction I am). If I'm going to distribute copies of my app, the license choice becomes one of the definitive criteria points in my choice of framework or library. For 'apps,' it's a much less critical choice and it makes sense to have a license that encourages collaboration.
why do you need anyone to agree with your changes with a copyleft library?
I don't, but I also don't want to release all the code for my app upon distribution simply because it employs a copyleft library.

EDIT: copyleft library that I've modified.