There's an adage in software engineering: Shipping is a feature.
That means it counts more to finish a product in some form and get it out to people, instead of promising them several moons and never actually delivering.
Then there are the folks who ship software without actually finishing it. No, I'm not talking about Microsoft here -- although for a while they deserved a lambasting for doing precisely that. But they grew out of it, and the last few versions of all their major products, from Windows and Office to their server offerings, have been really solid.
The biggest offender for a long time now has been Google. For ages they seemed to have more of their product line in beta than out of it. But they seem to be wising up a bit, thank goodness. They've been better at segregating the more experimental features of their products (via Google Labs until this summer). For example, the Chrome browser comes in three "channels," each branded by what level of code stability you want. We'll have to wait and see how long they keep Google+ in "field test" mode.
But the bad habit of keeping software in near-perpetual beta seems to have spread far and wide. I can't count the number of programs I'm using now -- as opposed to five or six years ago -- that have 0.x revision designations. Like TweetDeck. Many such applications are open source, but some are not, so I doubt it has anything to do with a particular development or licensing philosophy.
It's been said that software revision numbers are arbitrary anyway, so why make a stink about "0.x" or "beta" designations? Because they send messages to both users and developers about the state of the software. A program with a 0.x designation shouldn't be pushed to the general public, and a public service which sports a beta label for years on end doesn't inspire confidence in the service. The most common question that comes to my mind when I see either of those things -- or, worse, both of them -- is "Will this still be around in six months?"
I'm just as guilty of variations of these things myself. I've put together software that never made it past the 0.x revision point, because I had no idea when, or even if, I would be able to make it into anything remotely resembling a finished product. I can see why independent developers often fall back on the 0.x designation: it means "Use at your own risk."
But for big-budget, well-funded services or apps, there's no excuse. Go 1.0 or go home.