Many of the arguments that turn up in the Free and Open Source Software movement(s) – between people who apparently should agree – are because of a difference of view over the appropriate degree of causality that applies to the situation. This conflict between degrees of causality actually powers many other human disagreements too.
Cause and Effect
There are two views of the place of “cause and effect” in the world. One believes in direct causality, the other in systemic causality. Both are correct much of the time, so the difference between them rests beneath the surface of most realities. Both are tools in guiding behaviour and predicting consequences and have value as a “lens” to bring decision-making into focus; neither is inherently deprecated.
In most circumstances, direct causality seems the obvious interpretative lens for the past and predictive lens for the future. We are most comfortable when we can draw clear circles around causes and thick lines between them and their consequences. We admire the “chess players” of society who can draw long chains of clear circles and thick lines; for most of us the ability to mentally calculate chains of cause and effect is limited to only a few steps.
But certain systems involve a longer chain of differently-weighted lesser causes and effects that makes a focus on the individual steps unhelpful or even harmful. Things like evolution, national economics, global warming and terrorist motivations all need a systemic view if they are to be properly understood. A focus on what the individual can prove directly themselves in these cases may well lead to bad choices. These systems are especially difficult for people with “just do it” attitudes, who find it hard to take “on faith” that they should act in a contrarian way because of a larger system which can’t be seen and computed in its entirety.
When our outlook is dominated by direct causality, we seek control over causes. When our outlook is dominated by systemic causality, we seek influence over the network of causes and effects. In many simpler cases, both outlooks lead to the same decision. But as we have moved to a meshed society, the importance of systemic causality has risen. Every cause has an immediate effect, but to believe that effect is the only consequence is increasingly a risk.
If the distance to the effect we seek is short, and that effect is the only outcome that matters, control is obviously desirable. But if the distance to the desired effect is large and filled with many connections, it’s better to collaborate and co-operate with other participants and prioritise influence over control.
Two Views of Freedom
The tension between direct and systemic causality lies at the heart of the endless debate between whether minimalist approaches to open source software licensing (typified by the BSD License) are better or worse than reciprocal ones (typified by the GPL). The reciprocal approach takes a systemic-causal view, believing that the whole software ecosystem will be a place with more freedom for software users if there is a compulsion on every user to share improvements they make to code. The GPL enforces this outlook by extending a requirement for publication of source beyond the files directly inherited from an earlier project (as MPL does) to every part of the source corresponding to a distributed binary program that extends it.
If it holds any view on the subject at all, the minimalist approach is direct-causal, believing that the freedom of the individual is paramount and reciprocal compulsion is anathemic. In this worldview, the consequences of use of your code by others are out of scope for discussion – only your uses matter.
This is the view the Apache Software Foundation best expresses through the Apache License, and it clearly works well for them. They have large numbers of participants in a large number of successful projects, and there is no “tragedy of the commons” at work (even if such a thing exists, which I doubt) – self-interest does not imply or require selfishness.
It is in the self-interest of every participant to contribute their work to the commons upon which the fragment of their interests relates. Doing so reduces their own costs, increases the surface upon which the community innovates and gives the maximum return. People who don’t add their work to the commons are condemned to maintain their own work, alone, for ever. There's no need for compulsion; in fact, almost inherent in this view is a laissez-faire-ism that claims the whole subject is unimportant.
Which is Right?
Ah, and that’s the question! The fact it is still an open question after nearly 40 years of free and open source software experience suggests both outlooks have merits, and we’ll not resolve the question here! I am a firm believer in the concept and philosophy of software freedom, but that doesn’t mean I believe the only way to achieve it is through directly-causal compulsion.
Ultimately, which approach works best pragmatically will depend on many contextual factors. I tend to believe that the key to a successful open source project and community is to studiously maintain equality among all the participants so that no one participant can become “more equal” than the others. In some projects that's achieved by reciprocal licensing (with no inequality-inducing CLA) while in others it's achieved by a governance structure and/or market accompanied by an attribution-focused license.