This is not a very technical question, but I'm having trouble finding any information about it. I often use CPLEX to solve my power system planning problems. I just noticed that CPLEX suddenly jumped from version 12.10.0 (December 2019) to 20.1.0 (December 2020) (see Wikipedia and IBM's documentation website). Does anyone know why IBM skipped over versions 13-19? Is there something radically different about version 20?
I don't know why the version number jumped. I will say that I found the creeping pace documented in Mark's comment odd from a marketing perspective -- it might lead a consumer to think IBM was just patching the occasional bug while competitors (with faster moving version numbers) were making technological "leaps". Maybe someone at IBM had the same thought?
As for the last question, no, I would not say there is anything radically different about 20.1. There are one or two new features (which I cannot recall offhand), but my use of it has not changed in any fundamental way from what I was doing with 12.10.
This can be one of two things: (i) they changed their versioning system from Semantic Versioning to Calendar Versioning (e.g. they are now following the calendar so CPLEX 20 stands for "2020"), or (ii) the new release is a major release.
Since calendar versioning is self-explanatory, I'll explain what major releases are, since we use the same system at Octeract.
Contrary to intuition, a "major" release does not imply that some new major feature has been introduced.
What it does imply is that there has been a breaking change in the API of the software that is not backwards compatible.
For instance, the bump from Python 2.7 to Python 3 was a major release, which broke existing Python 2.7 code. This was marked by the bump from 2 to 3. This is a convention that nearly all professional developers are familiar with.
Note that introducing a "breaking" change doesn't mean that everything is broken (although in some cases it does, like Python broke
Now, applying Occam's razor here to see what happened with CPLEX, (i) it's highly unlikely that they broke backwards compatibility for an enterprise product, and (ii) it's too much of a coincidence that out of all numbers they chose "20" for the December 2020 release, therefore my money would be on them having changed their versioning to track the calendar year.
Now why did they do that out of the blue? Well, if you have been following some of their staff on Twitter you might connect the dots. From a developer's point of view, my guess is something that I am always a bit sad to see happen in mature software: such a switch often indicates that management has decided that the API is what it is, and they've switched to maintenance mode with no foreseeable plans to improve it.