There are two terms that brings a heavy controversy in the Open Source world: support and stable. Both of them have their roots in the “old days” of Open Source, where its commercial impact was low and very few companies made business with it.
You probably have read a lot about maintenance vs support. This controversy is older. I first heard of it in the context of Linux based distributions. Commercial distribution had to put effort in differentiating among the two because in Open SOurce they were used indistictly, but not in business. But this post is about the adjective stable…
Stable as adjective has several meanings in English:
- According to the Cambridge dictionary stable is, among others: firmly fixed or not likely to move or change. I am used to this meaning because of my backgroun in Physics.
- One of the definitions provided by the Oxford dictionary is slightly different: not likely to change or fail; firmly established.
Can you see the confusion between…?
- It is hard to move… or move slow.
- It does not fail… it is hard to break.
I am not an English native speaker. Maybe because of my latin root (I am Spanish) or maybe eacuase I studied Physics, I do not provide to the adjective stable the second meaning. It has always called my attention how many people provide both meanings to the word, specially when referring to software releases. Looking at the definitions provided by English dictionaries, I can guess why.
I read today on Twitter another example highlighting this confusion/controversy. The comment has its roots on a different topic but it is a victim of this confusion, I think.
Open Source projects used to have as the main testing strategy the collaboration with a group of beta testers and power users. This strategy helped to create this relation between “not moving” and “not failing” that has become so popular. But this relation is not direct if you have a different release/deploy strategy. The way to increase stability (as hard to break) is by detecting and fixing bugs and that can be done moving fast (constantly updating), or moving slow (backporting). I will not get into which one is better. Both are possible and popular.
I think the word stable should be avoided. Many system and application developers or integrators refer to it as “move slow” as “it will not change much“. But what many users hear is “it will not break” which is why “it moves slow“.
Which adjective can we use to label a release that “moves slow“, so it is not mistaken with “it is not expected to break“?
Is this controversy present in other languages as strong as I perceive it in English? Is it just me who see this controversy?