Thoughts about backwards compatibility

Hi All,

I thought to quickly write about my thoughts regarding backwards 
compatibility.
These are just my thoughts and I am just providing them for discussion.

My feelings on the matter are that there are two kinds of backwards 
compatibility.
The first is "formally" not backwards compatible, i.e spec A says a 
certain kind of query should return a specific result and spec A+ 
defines a second different result, then it is not formally backwards 
compatible.

Second is the "marketplace" backwards compatible.
Same situation as above, but no one ever implemented A as specified or 
no-one ever send that kind of query.
Then while there is a formal change in behaviour no one is impacted 
because no one used the behaviour.

I am OK with breaking "formal" backwards compatibility but I am not at 
all keen on breaking "marketplace" backwards compatibility.
In that regards I see as an example to follow the Java language stewards 
whom have the same kind of problem.
There is a lot of code in the wild, doing even wilder stuff, making 
money and solving problems.
Breaking such code should only be done in extremis and after careful 
evaluation.

Being a very small community I think we can't afford splits like python2 
to 3 or even worse Perl5 to 6.

Regards,
Jerven

-- 
Jerven Tjalling Bolleman
SIB | Swiss Institute of Bioinformatics
CMU - 1, rue Michel Servet - 1211 Geneva 4
t: +41 22 379 58 85 - f: +41 22 379 58 58
Jerven.Bolleman@sib.swiss - http://www.sib.swiss

Received on Wednesday, 24 April 2019 10:15:15 UTC