Ok to drag this debate out of my thread on software versioning.
My Technical Background
I have a B.Sc in Computer Science from the University of Manchester (UK), I've been working as a professional programmer since graduating. I've worked in a variety of industries on a variety of types of software. I've written freeware, shareware and Open Source code outside my Commercial software development. This includes MikroAMP, Skinmaster, shoutcASP, PHPNuke Modules, Geeklog modules, little windows apps etc etc.
About Version Numbers
Version numbers are typicaly of a form similar to major.minor.point.build Some software doesn't go that far, some goes further, depending on the needs. Some companies combine minor and point. Different companies and developers increment different things based on different reasoning. Typicaly if the Major digit is incremented, it's a pretty major change to the software.
In the case of Commercial Software (office, oracle etc) an increment in the Major number will equate to "We've changed it so much you need to pay again". Shareware often follows this too, making people re-register for a new major change but providing minor changes F.O.C.
Of course, this is all just 'typicaly' often the general system is bent around for commercial reasons, marketting reasons, random reasons. Take Notmad Explorer, they crank up the Major version all the time, and I don't see that much change. Winamp jumped from 2.95 to 5.0 for 'Marketing' reasons and because Winamp 3 was a bit of a muff job.
Microsoft piss all over this by going to Office 2000 and then Office XP.
No company ever releases pay software with a 0.x version number and expects people to pay for it. The public perception is that before 1.0 "it's not ready" (Queue grolsch adverts), people expect it to have bugs, missing functionality, to be in a state of flux. People want the finished product. Saying "we're not even at version one! But pay $29.99 for it" isn't getting you anywhere.
0.x versions in the commercial world are internal releases to show progress, for testing. For public betas even. But they aren't what you charge the users for. They want 1.0 (actualy, generaly they want what your team can't get ready until 2.5 or something because the company didn't give you enough time, because the bid had to be low to be competitive and they plan on making money by having you work 12 hour days or more for free, but even that's enough so functionality has to be de-scoped and the client managed...)
Open Source is Different
Of course, when we get into the Open Source community, things change totaly. We rarely see a Major version increment. A major version increment generaly means most of the code was re-written. See PHPBB2, Apache2, Geeklog2. Even minor updates are rare (see apache) so it's mostly point or lower updates.
With Open Source, the code is usualy out there from the very, very beginning. Stable builds of programs are released in the 0.x line. But they don't claim to be finished. Often they are far better than 1.0 releases of corporate software, but the developers will usualy say it's far from complete, things may well be totaly re-designed. Core features might not be there yet, bugs might be there.
Until it gets to 1.0, it's still generaly not finished. Take emule, you have a pretty damn good client there, but the team wouldn't say it's finished.
The great 1.0 in the sky may not be reached for a long time, they don't have the commercial pressure to get a stable 1.0 build to the clients to get cash in. It's open source.
Anyone care to discuss any flaws in my argument there?