Semantic Versioning is a terrible mistake
reprog.wordpress.com
Semantic Versioning is a terrible mistake
1–6 of 6 posts
Re: Semantic Versioning is a terrible mistake
#2But...
> To say it another way: If you need to make a breaking change to your API, it means you screwed up. Don’t screw up.
I'm skeptical that we can always predict the future well enough to get an API perfect from the beginning.
Sometimes the best we can do is do the best we can, learn, and do better.
Re: Semantic Versioning is a terrible mistake
#3I'm amenable to the idea of not making breaking changes if you can help it. But... > To say it another way: If you need to make a breaking change to your API, it means you screwed up. Don’t screw up. I'm skeptical that we can always predict the future well enough to get an API perfect from the beginning. Sometimes the best we can do is do the best we can, learn, and do better.
Re: Semantic Versioning is a terrible mistake
#4I'm amenable to the idea of not making breaking changes if you can help it. But... > To say it another way: If you need to make a breaking change to your API, it means you screwed up. Don’t screw up. I'm skeptical that we can always predict the future well enough to get an API perfect from the beginning. Sometimes the best we can do is do the best we can, learn, and do better.
I did wonder how much to soften this message, because yes, of course, there really ARE times when a breaking change is necessary. But I think those account for maybe 1% of the major releases we see these days. The rest are down to laziness, carelessness, or just not having thought about it at all.
Making a good API is really hard. I think there's plenty of room for discussion about how we should break things, but "just do it right the first time" is not realistic.
Re: Semantic Versioning is a terrible mistake
#5Earlier quoted context omitted.
I did wonder how much to soften this message, because yes, of course, there really ARE times when a breaking change is necessary. But I think those account for maybe 1% of the major releases we see these days. The rest are down to laziness, carelessness, or just not having thought about it at all.
This is an extremely uncharitable way to characterize how our understanding of a problem, our requirements, etc evolve over time and with feedback from users. Making a good API is really hard. I think there's plenty of room for discussion about how we should break things, but "just do it right the first time" is not realistic.