Blah. There’s another round of lies being spread about AGPL, and the culprit is the same as last time. Let’s deal with them one by one, starting with the claim that using AGPL’ed code will force someone to open-source their own code. This is clearly and explicitly contradicted by the text of the license itself. The first part of this contradiction is the definition of “convey” as follow (emphasis mine).

To “convey” a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

That last sentence renders all provisions of section 5, on which most claims of “virality” are based, completely irrelevant. If you’re using modified AGPL code to provide services over a network, the actually relevant section is not 5 but 13.

if you modify the
Program, your modified version must prominently offer all users
interacting with it remotely through a computer network (if your version
supports such interaction) an opportunity to receive the Corresponding
Source of your version

That’s really pretty darn clear. Anybody who tries to interpret it as meaning that AGPL requires them to open-source their own code is just desperate for a way to rationalize using AGPLed code without honoring its license. OK, that takes care of the Big Lie; on to some of the smaller ones.

First, releasing open-source code is not “outsourcing labor”. That would imply some expectation or requirement that labor be provided, but neither AGPL nor any other open-source license has that expectation or requirement. People are completely free to use the software without returning anything at all to the authors. They’re completely free to distribute it to others, likewise. That’s nothing like outsourcing, nor are most people who release open-source software bragging about how open and free they are, so both elements of the supposed hypocrisy Joe talks about are completely made up.

Second, dual licensing is not “bait and switch”. That refers to offering one thing to attract interest, then withdrawing that offer and replacing it with something less appealing. You want real bait and switch? That would be offering a web service that’s initially free but whose provider’s business plan clearly calls for making it non-free (including freemium) at some point. Offer X, then provide Y. Bait, then switch. The term does not apply to something that remains available in its exact original form and under its exact original terms indefinitely. It’s just another term abused for emotive effect as part of a campaign to promote captruism. Gee, it sure would be nice to be the only person allowed to act selfishly while everyone else is handicapped by a requirement to act altruistically, but only someone afraid of competing symmetrically would desire such status. To use your own words, Joe: grow a pair. Capitalism is supposed to be about voluntary exchange. If you want a different license, go negotiate for one. Don’t whine like a baby about how the license on code you got for free isn’t the one you wanted.

I’m not a license zealot, BTW. I don’t think everything should be under any form of GPL. If people want to use BSD or Apache licenses instead, or even keep their code proprietary, that’s fine with me. As authors, they have that right. They also have the right, when they offer their work as a gift, to ensure that the “service loophole” is not used to implement data lock-in or other kinds of bait-and-switch contrary to the original spirit of the gift. Users have the right to use some other software instead, or write their own, but not to force their own moral compromises on any author of code they want to use. If I don’t want my code used to screw people, or to kill them, or to invade their privacy, then the license is my only way to have any influence on that. Licenses and contracts are a core part of a free-market system, and by their nature can contain whatever arbitrary provisions their authors wish (so long as they’re legal and legally enforceable). Denying others the right to define those provisions is tantamount to promoting a fiat system in which exchange can only occur under certain mandated conditions. I very much doubt whether the authors of the code Joe uses, even the Apache/BSD/whatever code, would ever support such a system.

P.S. Would someone who lacks the courage to allow comments on their own site be a hypocrite for coming here and leaving comments on mine?