Many of the arguments that turn up in the Free and Open Source Software (FOSS) movement – 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 lesser causes and effects that makes a focus on the individual steps unhelpful. 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 BSD-ish (permissive) approaches to open source software licensing are better or worse than GNU-ish (copyleft-based) ones. The GNU-ish view takes a directly causal view, believing that the freedoms of software users are so important that there should be a direct compulsion on every user to share improvements they make to code. The GPL enforces this outlook by extending the requirement for publication of changes not just to the files directly inherited from an earlier project but to every part of the source corresponding to a distributed binary program.
If it holds any view on the subject at all, the BSD-ish view is systemic, believing that any innovative user of the code will want to add their improvements to the commons so that the community around the commons will maintain them collectively, freeing the innovator to spend time elsewhere. In this view, proprietary uses of software will eventually result in contribution to the commons since to behave otherwise is less effective. Inherent in this view is a laissez-faire-ism that claims the whole subject is unimportant; the more vigorous the claim of disinterest, the stronger the view is held!
This is the view the Apache Software Foundation best expresses, 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 – self-interest does not imply or require selfishness. It is in the interests 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…
Which is Right?
Ah, and that’s the question! The fact it is still an open question after nearly 30 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. Indeed, 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, giving systemic effects free rein.
Ultimately, which approach works best pragmatically will depend on many contextual factors, and the only generalisation that’s safe is to assert no generalisation is safe! This is a debate that will run and run.