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.