Historically the software industry has adopted some ill-defined (or not well defined) standards to identify product versions. The need for a version has been particularly important in the software industry because its products have a short (but not super-short) life-cycle, lack of phisical apparence and a continuous revisioning and refining. These factors put together pushed sotware makers to keep track and assign meaningful names to their products.
During the years I saw many different schemas adopted by different companies. The classic version.revision notations has been almost universally adopted to identify major releases and small revisions. Labels such as "alpha", "beta", "gold", "preview" have been added to classify the status of a release. In the mid '90s Microsoft came up with a new versioning schema releasing windows 95. Other smaller software shops followed that approach, but the majority stayed with the well known version.revision system.
The issue with all these schemas is that they really make sense only for the software vendor and they have been used and abused to the point that they make little sense today.
I saw both "alpha" and "beta" being defined as somethinig from a release of a software with missing features and crashing bugs, to the release of a software with all the features and few bugs. The differences are in the eyes of the developer, and sometimes in the eyes of the marketing division. I saw software titles releasing the first version as 2.0 or 3.1, just to give the sense of a mature product.
Even in the WWW context things are confusing today, and standards are becaming even less standard.
Google for example has been providing gmail to the public in "beta" form for years now, creating the concept of the endless beta model.
The question is: are these schemas and names meaningful for anybody today?
Why isn't software is just software?!? I mean, when you go to the grocery store and you buy cereal, do you need to know the version number of the recipe? All you really want is (1) to know what's in it (2) a product that you like and (3) that perhaps improves with time so you don't get too bored with it. If you keep liking it, you keep buying it.
Do we *really* need version numbers in today's software?
In a world where software updates itself automatically while you are sleeping, it seems that software is really mostly a service and not really a product. Often software is free, and what you pay for is the service that comes with it anyway. Sometimes you don't even pay for that and you pay with your attention (conscious or subconscious) on a piece of advertisment that pops up or shows up somewhere.
Today my expectation when I spend money to use a software technology is that I buy something that works, and if there is something that doesn't work... well... one day it will start working magically without me even knowing it. I gladly pay for that "service". If I trust the maker, I'll gladly pay for something that "works enough" now and that I know it will work better later. It never has to be perfect (impossible), it just needs to get better with time and do very well only what I really need. Please do not charge me for a huge amount of features that I never use. Please stop adding stuff that nobody uses! Just make it do well what I use every day!
If for any reason at any point I don't like where the product is evolving, I'll stop paying and I'll buy something else.
Software is a service. Not a product anymore. Version numbers should be berried in some advanced information box and used only in case something is wrong and you have to contact the customer service. In that case the version number is useful to tell the customer service exactly what you are running.