As a software developer I think of version numbers in terms of semantic versioning. In short this means that a new major version breaks the existing API, a new minor version is compatible with the previous version. This also means that just adding new features merely is a minor version increase.
Then you have applications like Firefox and Chrome which increase the major version in a fixed schedule. It might be cool to have Chrome 71 and Firefox 64, but these numbers are actually pretty useless in terms of software development. If these version numbers were taken seriously, a plugin developer would have to assume that the plugins will not work with the next major version as APIs will have changed. The changes in the plugin API just happen at some point, but due to major version inflation they do not signal much any more.
Windows at least has a sensible version number internally. "Windows XP" was 5.0, and "Windows Vista" has broken a lot of stuff (say renaming Settings and Documents to Users, introducing UAC and so on) and it got versioned as 6.0. "Windows 7" on the other hand was from API point of view just a minor release, therefore it is 6.1, "Windows 8" is 6.2 and "Windows 10" is 6.3 internally.
I get that it makes sense to publish your software with some marketing name when you have a marketing driven release schedule. Like calling it "Office 2019". But please use something sensible internally.
With hardware I find it even worse. In contrast to software there will always be tiers of the same product. Take for instance laptops. Lenovo built the ThinkPad in the X, T, W lines. For the last years they have version model names like the "X220" that work like this:
This is the model line which are portable ("X"), regular ("T") and performance ("W").
This 2 give the screen size, "2" meaning 12", "4" means 14" and "5" then 15".
This 2 is the generation number, which coincides with the Intel Core-i generation number.
Just a useless zero.
From this you can quickly figure out the general performance of the laptop as well as its size and generation. The X230 is the successor of the X220, the T420 is the smaller version of the T520.
But to stay with the 12" X-series, you have this chronology: X200, X201, X220, X230, ..., X280. So what happened with the "X201"? To me it seems sensible to have a two-digit generation code, but apparently somebody in marketing decided to just make it single-digit and add a useless zero.
Also they currently have the X280. The next one is going to be the X290. But then what? We will see how Lenovo does it.
From NVIDIA I have seen four epochs of GPUs so far. I happened to have one from each epoch:
- GeForce 2 MX
- GeForce 9500 GT
- GeForce 9800 GTX
- GeForce GTX 670M
At the beginning they did not seem to plan for coming generations, but that might have been early on. Then in the next one they had four-digit numbers, but the generation was single-digit, then the tier was one-digit and two useless zeros. Okay, they brought out cards like "xx50" as intermediate ones but that was rare. Eventually the cranked out nine generations of GPUs and started to become a problem. They could just have continued and shipped the "10xxx" cards, but they did not.
They started from scratch with three-digit numbers. Again a one-digit generation, a one-digit tier and a useless zero. Then, as if it came by surprise that NVIDIA as a company survived another nine (actually eight as they skipped "8xx") generations. They brought out the "GTX 1080" and I thought that finally we have a two-digit generation code! But then the "RTX 2080" came out and it is just going to be a couple of years until they have the "9080" and realize that they painted themselves into a corner again.
This is incredibly annoying if you try to figure out the generation and tier of a given card. So if the number is like "xy00", it is second epoch. If it is "xy0", third epoch. And "x0y0" is the fourth epoch. I once played around with parsing GPU names, and it did not end so well.
Why not just call them "GGT", where "GG" is the two-digit generation and "T" is the tier? The "RTX 2080" would then be the "428".
Intel with its Core-i series is similarly funny. They started with three-digit numbers and then brought out the second generation, just prefixing a 2 to them. So you have CPUs like the 2520M, which is a second-generation ("2") mid-tier ("520") mobile ("M") CPU. Now they ship the eight generation, and in a few years they will have to ship the tenth generation. I really wonder what they do then. Pull an NVIDIA-like thing and go back to three-digit numbers? Make them five digits long?