I guess from my perspective I don't see why I would agree to license my work under the BSD's terms, unless I had already concluded it had negligible monetary value. I own my work. You own your work. But why should I let you use my work to create your work? The traditional answer is the capitalist one: because you paid me a license fee. An alternative hippie-ish idealist answer is the "commons" idea: because we both agree to dedicate our work to the commons, and everyone gets each other's work for free.
But if you don't reciprocate by also dedicating your work to the commons, why should I give your proprietary product a free license to use my product? Being a blue-blooded capitalist, you aren't going to let me use your product for free; why do you expect better terms from me than you yourself are offering? If you expect me to buy a license for your product, it seems perfectly fair that I also expect you to buy a license for my product. The GPL in a sense formalizes that expectation.
(It's worth noting that this line of argument is on quite different grounds than what RMS argues, though. RMS is primarily interested in the right of downstream users to modify their own computer systems, not in game-theoretic choices of software developers.)
> I guess from my perspective I don't see why I would agree to license my work under the BSD's terms, unless I had already concluded it had negligible monetary value.
Because you want contributions from others and want to work in a vibrant community. And if you are modifying a BSD-licensed project, you probably want to encourage others to maintain your code (what this means is you will, if you want to have a successful proprietary fork, contribute almost everything back, so as to cut your maintenance costs).
> The traditional answer is the capitalist one: because you paid me a license fee. An alternative hippie-ish idealist answer is the "commons" idea: because we both agree to dedicate our work to the commons, and everyone gets each other's work for free.
I think that misunderstands the purpose of the commons. Commons exist because there is value in pooling resources. Commons of course, only work when there are benefits and contributions are aligned. Here, maintenance costs are reduced by contributions, and you get access to the works of others.
Let's look at how this works with regard to PostgreSQL. There have been a number of proprietary forks in the past, including Illustra, Mammoth, Green Plum, EnterpriseDB, and more. In general these have all prospered when they contributed back significant work to the community, but when they didn't they found themselves cut off from community resources. Of these 4, only two are alive today, and one of those is facing renewed competition from free a free alternative (Postgres-XC).
So you have a carrot and a stick. The carrot is that you can make marginal changes around the edges for your target market, particularly if the community doesn't want those changes, and you can release a proprietary product with that, using the work of everyone else. The stick is that if you don't contribute back, you will find yourself cut off from that free labor and in competition with it, and that competition is not one you can win.
> (It's worth noting that this line of argument is on quite different grounds than what RMS argues, though. RMS is primarily interested in the right of downstream users to modify their own computer systems, not in game-theoretic choices of software developers.)
Right, but I am talking about the right of software developers to largely work as they see fit, which strikes me as the best definition I can find. To do this, you have to have decentralized control and a movement away from a corporate-centered model. In this regard, the BSD license is a better and more radical alternative regarding freedom than the GPL is, because it insists that freedom serve practice rather than the other way around.
> Right, but I am talking about the right of software developers to largely work as they see fit
I guess overall I'd see this as actively harmful. What's important is the rights of users; the rights of software developers to harm users are not rights worth saving. But furthermore as a developer who is not a large corporation, I don't even see the advantage of letting my code be incorporated into the next version of Windows or Matlab or whatever without payment or reciprocity, as semi-frequently happens to BSD-licensed code (there is a ton of it in both Windows and Matlab). Whereas at least a portion of the people who held out for payment have gotten paid (both Windows and Matlab also include quite a bit of licensed and acquired code). If I was a large company open-sourcing a codebase where I wanted to foster a community of other vendors around it, maybe, but I'm not. I'm a person who writes moderate-sized bits of stuff (mostly AI-related) that someone might incorporate into various applications. And if they want to do so, I'd like them to either: 1) reciprocate; or 2) pay me.
But as for the rights of software developers to work unhindered: Pragmatically, I do not think that software developers are, overall, well-intentioned, especially if you consider the overall profit-driven system they/we work within. Hence maximizing their freedom to screw people over is generally a negative, and certainly not guaranteed to align with the freedom of users to work on open platforms. Look at Apple's walled garden as an example of harm that the FreeBSD project has negligently enabled. If anything I think what the BSD license does is remove any restraints on corporations' power, by providing them with unrestricted raw material that they can exploit using their market power without even having to build a big portion of it themselves.
> I guess overall I'd see this as actively harmful. What's important is the rights of users; the rights of software developers to harm users are not rights worth saving.
Is freedom of economic value? If it is, then a proprietary spinoff must offer enough value to not only make up for the license cost (vs free download) but also to make up for the loss of freedom.
If freedom is of economic value, then end users can protect their own interests.
With the GPL you have a very different danger, which IMO is actually worse regarding loss of freedom. It goes something like this:
1. Company offers GPL software and sells license exceptions.
2. To do this they require code contributions be signed over to them with exclusive rights and ownership.
3. One day they decide that the GPL version isn't benefitting their business anymore, and they go fully proprietary. They release a new and improved version with compelling features under a purely closed source model.
With BSD-licensed software this can't happen because you can't start at #1.
In general, I think it doesn't have any realizable economic value. Large numbers of users have neither enough control over capital, nor enough organization amongst themselves, nor enough knowledge about software, to wield effective market power. They may realize much later that something they wanted to do is now illegal, and retrospectively regret it or even lobby politicians to do something about it, but they probably won't realize up front that by going to walled gardens there are significant problems.
(This is speaking mainly of regular end-users, not users of specialized software that appeals to techies.)
> In general, I think it doesn't have any realizable economic value.
Then this is where our disagreement is.
> Large numbers of users have neither enough control over capital, nor enough organization amongst themselves, to wield effective market power.
Why is organization required? If you were building a new piece of software, would you prefer to start with open components or closed ones? If you had a business and needed a tool, would you prefer one that could be customized to support your unusual business processes or one where you must structure your business around the software?
In some areas, maybe freedom is not that important (consumer entertainment, for example), but I think you greatly underestimate the value that freedom brings to any productive endeavor.
If you were building a new piece of software, would you prefer to start with open components or closed ones? If you had a business and needed a tool, would you prefer one that could be customized to support your unusual business processes or one where you must structure your business around the software?
You still seem to be speaking almost entirely about developers and companies. I care about regular people who use computers, and their freedom to do so. When Apple encumbers OS X, to me that's important, and impacts many people, and to a large extent how society operates. Whether some company building a webapp has a problem with the AGPL, I generally don't care; that goes in the same category of two companies disagreeing over whether a proposed license fee is too high, business details.
As an example of why organization is required: in states which don't ban it, companies are generally able to insert non-compete clauses into employment contracts. This is because individual employees signing employment contracts usually have a mixture of too little individual market power, and too little legal knowledge. The only real way to do away with noncompetes, despite very wide agreement that they're bad, is to either: 1) organize into a union that negotiates better contract terms on your behalf (done in some fields and countries, not in American tech); or 2) pass laws that ban the onerous terms entirely (what California did with noncompetes). Generally, individual contract-signing does not maximize welfare.
> You still seem to be speaking almost entirely about developers and companies.
I am speaking about people making things. It could be someone building computers and combining software, someone developing software, or a company doing things. However I don't really see a difference here between a company and a household.
Besides, what goal is served by the end user for the right to study or modify code which is applicable to those you seem to believe will never be developers?
But if you don't reciprocate by also dedicating your work to the commons, why should I give your proprietary product a free license to use my product? Being a blue-blooded capitalist, you aren't going to let me use your product for free; why do you expect better terms from me than you yourself are offering? If you expect me to buy a license for your product, it seems perfectly fair that I also expect you to buy a license for my product. The GPL in a sense formalizes that expectation.
(It's worth noting that this line of argument is on quite different grounds than what RMS argues, though. RMS is primarily interested in the right of downstream users to modify their own computer systems, not in game-theoretic choices of software developers.)