De spronggrootte voelt willekeurig en maakt softwareversies minder menselijk.
Het is niet willekeurig, elke X weken komt een nieuwe versie uit. En "what's done is done" (en features die niet af zijn schuiven door). Uiteindelijk zijn het allemaal kleine incrementele updates. En de "grote" dingen die jij benoemd zijn wellicht helemaal niet zo groot vanuit development perspectief. Iets als Servo zat of al heel lang er in maar werd maar mondjesmaat gebruikt en steeds uitgebreid in "features" dat het kon, of zat wellicht achter een feature flag. Waarbij bv de eerste code voor Servo al een jaar eerder in een release kon zitten, maar bv nog niet user facing was. Waarbij de door jouw aangehaalde versienummer wellicht puur het aanpassen van een feature flag is. Letterlijk een code change van 1 regel. Maakt dat het dan een major release? Vanuit code perspectief in ieder geval niet. En vanuit gebruikers perspectief maakt Servo vs een andere render engine ook niet uit ("render watte?").
En bij grote projecten wordt het ook steeds lastiger om grote features te onderscheiden. Want elke "grote" feature is bv nog steeds maar 5% van het gehele product. Niet erg veel dus. Dus hoe kwalificeer je dan wat "groot" is?
Zie ook iets als de Linux kernel. Dat was ook jarenlang in een <very major>.<major>.<minor>.<patch>. Totdat er na 2.4 een 2.6 kwam, en er vervolgens geen echt grote wijzigingen meer kwamen die een major version bump verantwoordde. Waardoor 2.6 in december 2003 uit kwam en de laatste, 2.6.39, in mei 2011. Dat is dus 7,5 jaar zonder echt major changes waarbij iemand zoiets had van "dit moet een nieuwe major zijn". Terwijl 2.6 vs 2.6.39 totaal anders zullen zijn, zowel in code onherkenbaar zal zijn. Maar als je ondersteuning voor honderden als niet 1000 apparaten hebt, en nog tich andere kernel features "bestaan" en ontwikkeld worden. Dan is elke X maanden een nieuwe release met bv 10 nieuwe "features" (/drivers of andere zaken) maar een druppel op een gloeiende plaat en niet interessant voor een "nieuwe major". Maar als je over bv een of twee jaar kijkt zie je wel steeds grote veranderingen, maar het is niet dat de ene release substantieel groter is dan de ander en ineens zoveel zaken beslaat dat je zegt "dit is major". En daarom dat Linux uiteindelijk is overgestapt op semi arbitraire major version bumps (terug bij major.minor.patch). Waarbij gewoon echt gekeken wordt naar "de minor versie is nu wel weer wat hoger en de aanstaande release bevat relatief veel code wijzigingen, dus we doen maar weer een major bump". Waarbij er eigenlijk niet wordt gekeken naar de nieuwe features en hoe groot die zijn. Het grootste criteria is "is het nummertje hoog?", en niet "welke features zijn toegevoegd". Simpelweg omdat elke release wel features toevoegt en zaken verwijderd en je niet kunt vastleggen wat "zo groot is" dat het een nieuwe major zou moeten zijn.