There have been a variety of articles written on why copyright sharing/assignment arrangements (or even project contributor agreements) are evil. For the most part, in the end what is concluded is that someone might (gasp) make a commercial product out of an open source project – with the implication that commercial software is evil and only the purest of copyleft arrangements are acceptable. As though somehow copyleft licensing is defeated by offering the software commercially.
But the truth is, that projects can go directions that disappoint contributors even without these kinds of arrangements, and the world is a complicated and interesting place. In this complicated and interesting world, things can get messy, and are rarely one-dimensional or black-and-white.
Because the Assimilation Project depends heavily on the Neo4j graph database, which has such a copyright assignment arrangement, I've spent some time thinking about this. I've also talked to some of the people involved (although these are only my own opinions, and not theirs or my employer's).
What exactly is Neo4j doing?
They offer exactly the same software under two license models – commercial and open source. They offer some of their software under the GPL and some of it under the AGPL, and they offer these same versions under more conventional commercial licenses. They don't offer an enhanced version only as commercial software, and a less-capable version as open source. They have built a vibrant and active open source community around this model, and are making progress on their commercial endeavors.
Why would they do such a thing?
Licenses like Apache2 are much more “business-friendly” - but they invite companies who are not major contributors to provide commercial support. Given that there are some voracious competitors in the database space, this seems a very legitimate concern.
Why not just GPL or AGPL?
Many companies have concerns about the GPL and how to manage it in their organizations correctly. The more enterprise-ready versions of their products are AGPL which causes even more concerns about how to manage that correctly. The worst-case downside of the GPL is that your product might need to fall under the GPL. The worst-case of accidentally violating a commercial license is that you write someone a check, and go on your way. Companies are much more used to this latter risk, and the worst-case outcome is rather less scary.
Why not just provide proprietary add-ons with the GPL?
The problem with this approach is that the company typically views that they are only making money from the add-ons, and it becomes more difficult over time to continue to contribute to the base (GPL) project. This is one of the scenarios opponents of contributor agreements are concerned about – at least if the add-ons would not be permissible under the GPL. The company has essentially broken faith with the community. This creates friction with the community who often wants to develop similar capabilities to the commercial version, but the company resists. This often leads to a fork, where both parties lose.
What's the best that could happen?
The company will be able to attract more commercial customers, yet be protected by the GPL's reputation from predatory competitors and create a vibrant and active community. These profits are then poured back into the product, and both its investors and all its users benefit. In addition, it is easier for the commercial entity to offer indemnity to its customers and protect its contributors from lawsuits for things like patent infringement.
What's the worst that could happen?
A well-intentioned company like Neo Technologies might falter and get bought out by Evil Technology, Inc. (ETI). At some later date ETI could decide to stop providing any GPLed versions at all. This is really the core fear in the hearts of many who criticize assignment agreements – and again it breaks faith with the community. One thing that open source communities know how to deal with is breaking of faith. If the community hasn't been actively contributing to the project, then they still have their last GPLed version to create a fork from. The community in turn still has the significant value of this product – which they didn't have to pay for. If the community is strong and active, then a fork will likely become even stronger and leave the commercial version in the dust – with the commercial company being the loser. We saw this kind of thing happen with OpenOffice/StarOffice. When Oracle bought Sun, they refused to work with the community – and broke faith with it. The community rose to the challenge and created LibreOffice – which is now the overwhelming favorite over Open/Star Office.
All in all, it's my personal judgment that the GPL and the community development model does work. Open source software is not harmed by the fact that someone can offer the same software commercially, and any abuses which might occur are limited by the right to fork that is guaranteed by most open source licenses.