Slashdot videos: Now with more Slashdot!

View

Discuss

Share

We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).

snydeq writes "Galen Gruman writes about the dark side of the recent flood of Android smartphones: versions run amok. 'That flood of options should be a good thing — but it's not. In fact, it's a self-destruction derby in action, as phones come out with different versions of the Android OS, with no clear upgrade strategy for either the operating system or the applications users have installed, and with inconsistent deployment of core features. In short, the Android platform is turning out not to be a platform at all, but merely a starting point for a universe of incompatible devices,' Gruman writes. 'This mess leaves developers and users in an unstable position, as each new Android device adds another variation and compatibility question.' In the end, Google's naive approach to open sourcing Android may in fact be precipitating this free-for-all — one that might ultimately turn off both end-users and developers alike."
As reader donberryman points out, you can even put Android onto some Windows Mobile phones, now.

I think Android is a lot closer to Windows than Linux in this regard. Windows has to run on different screens, with different processors and peripherals made by all sorts of different people, and it really needs to "just work" most of the time, since average users are generally driving things. It's the same with Android. This is really just Mac vs Windows all over again, with iPhone being the Mac, and Android being Windows. Like Macs, the iPhone will be more stable and "just work" more often, and like Windows, Android will find itself in lower cost hardware, and probably a lot more handsets in the end.

BTW, I keep reading rants about all the different handsets Android has to work with, and I've had two myself (G1 and Nexus One). Pretty much, the popular apps just work, so I don't know what the hubbub is all about. The poster's rant about the various cell phone vendors not upgrading their version of Android is valid. Does it surprise anyone that most cell-phone manufacturers continue to be huge dorks? If you buy directly from either Apple or Google, I think you'll find that you are able to run the latest OS. If you buy from the guys who invented 2-year contracts to sucker you for more money and vendor-locking of cell phones... well, then you'll get what you deserve.

For older vehicles, you can change the mounts out to squeeze in a new engine. My old Ford truck has mounts available to at least be able to put in GM engines (which use the same mounts for all their lines, IIRC, with perhaps some changes over the years); I bet I can find one to put in a Toyota or Honda motor too. More interesting would be seeing if the transmission would work with the new motor.

No, but it's a problem if your Honda engine can't accept the Honda after market kit you bought that fits that engine, just not in your car's model, and when there's no documentation either way that's the case, and a strict no refund policy.

i also understand there's some basic marketplace function that doesn't list apps you don't have API support because it requires a version newer than your installed version, but again, this is limited by the Dev's actually including that logic in their app (or tags, or something), and is also only limited to Google's marketplace, not all marketplaces. I also have no guarantee that when Verizon updates the OS on my device, without my ability to refuse it since app

You mean that desktop linux has several packaging systems you can choose from? Or that (zomg) there are different desktop managers with special feature sets, whose programs you can still run while using a different manager as long as you install needed libraries/prerequisites? Oh wait, this sounds like no problem at all!

And how do apps get in the app store? I would assume they will need to test against these varying OS versions and "tweaks" to ensure that they will indeed run in different end-user environments, and if so, that means developers now have to test against a myriad of targets.

The idea that MacOS will magically banish all of your problems forever is just mindless nonsense.

If you start responding to what people actually said, you might have a meaningful conversation, rather than tilting at windmills.

As it is, your statement that:

This is in stark contrast to a Mac where you will first download your app and then be told to manually sort out dependencies.

Is laughably incorrect for anyone who has used OS X - if you have a mac or three you really should know that by now. Dependencies are either bundled with the OS, bundled inside the app, or (in very rare cases like Adobe) bundled inside an installer. Typically installation means drag the app to Applications, and typical users of OS X have no idea what 'dependency' means; because they don't need to.

That's not to say that Linux is necessarily worse, just different - there you use package managers to handle such things.

The real problem with computers of any variety is that they require software to run. So as soon as you've purchased some computing hardware you have a 'problem' to deal with. No matter what choice you make for an OS, you now have a multitude of problems. Oh, so you want applications too? Now you have a larger list of problems.

I fail to see how looking at any small group of that now large list of problems constitutes anything more than complaining that you bought a computing device and it needs effort to mai

> See that's the thing. We don't have dependencies. No need to run after libfoo to run appbar.
> Just open the DMG, drag and drop to wherever (/Applications is nice) and run.

Yes you do. You just won't admit to them.

No. You really don't. Each Mac application is actually a directory (Mail.app is actually/Applications/Mail.app/...), which contains the executable and (assuming the programmer did what they were supposed to) any relevant libraries and so forth that the executable needs to run. Since each.app folder is self-contained, you don't have to worry about what version of libfoo is installed on your system (each app carries a copy of the one it needs). More information on this can be found here [apple.com].

I've never seen a single commercial application that tried to scribble libraries outside of the app bundle or "/Library/Application Support/MyApplication" or "$HOME/Library/Application Support/MyApplication". I can think of several dozen examples off the top of my head where I've seen such dependency problems, but every single one of them was an app ported (badly) to Mac OS X from Linux or other UN*X OSes. Basically, it's the result of trying to hack together a quick po

It's the typical trait found on the Internet today. You find a command line for a Windows problem and people hail it as the second coming awesome/easy solution but look at a command line fix for things in Linux and instantly jump on the "ZOMG! Linux has to use the command line!" bandwagon.

Centralized has some advantages over decentralized, and some disadvantages. If linux were just RedHat, it could never have become Ubuntu. On the other hand, it's frustrating when even copy/paste doesn't always work:)

Perhaps I'm confused, but how are Windows phones locked down? I can download any Windows Mobile application and install it on my phone...there is a little warning that pops up if it is "unsigned", but all you have to do is hit ok or yes and it installs...there is nothing preventing you from installing whatever you want on there.

Yeah, it was my understanding that the Android app store was more locked down than the typical method of distribution for WM phones.

Yes, a warning pops up when something is unsigned. What's nice is that Windows Mobile will REMEMBER your decision and not ask you again unless it detects that the executable file has changed. Just enough protection (This app is unsigned, are you sure you want to install it?) without being annoying ("The Gmail Java applet is unsigned. Are you sure you want to connect to the I

...and just like Series60 (=Symbian) and Windows Mobile to a smaller extent. Nokia is really the saddest example as their "lack of platform" was a strategic choice to let product lines "compete & innovate" between themselves leading to incompatible versions of nearly identical OS & HW. Androids problem is really that it's so "bare bones" that OEM's have to implement many things themselves leading to incompatibilities where they don't have to exist. Apple approach (one OS for all iterations) is clear

Except a Win32 binary will Just Work, pretty much anywhere, on any version since NT4/2000. Look at Putty for a great example. The fact that Android has fragmented this badly in just two years on the market is deeply troubling.

Not only that, in a pinch I can use a friggin' Windows XP video driver in Windows 7, which I needed to do to get 3D to work on a Dell C610 - that's a Pentium III running Windows 7. As easy as it is to knock Windows for its faults, that's pretty damn good compatability.

Now, go on the Linux Kernel Mailing List and suggest that the Linux kernel maintain a consistent binary API and see what happens...

What nonstandard ("alternative" hardware is available on Android devices?

Some may have no keyboard, or a D-Pad instead of a trackball, or a bigger screen, but it's still a limited number of hardware configurations - especially compared to, say, the PC market.

In your example, you'd have to wait for Apple to update their browser as well or use a third party browser (also available in Android from the market.)

When Apple releases a new OS (which includes the browser, in the Android case I was referring to), all of their devices get it... Some may not support all the new functions, but they all get the upgrade.

Except that it isn't. Not at all. The hardware may be different, but Windows is Windows (warts and all). If I buy an application that says it'll run on Windows XP/Vista/7 I can be pretty confident that it'll work. If I want an app for my generic Linux box, I'm jumping head-long down a rabbit hole of trying to figure out which version will work with my particular distro and what other dependencies I might need and often a good few hours of arsing around trying to configure the thing to work properly with some horribly cryptic config files to edit.

Except that it isn't. Not at all. The hardware may be different, but Windows is Windows (warts and all). If I buy an application that says it'll run on Windows XP/Vista/7 I can be pretty confident that it'll work.

Wait a sec - did you just list 3 versions of Windows?

Yes, I did. Please list all distros of Linux and we'll compare the size of the lists shall we?

Ah, but the issue is going and buying, say, the new Xperia x10 (which is about to come out, months/after/ the Droid and Nexus One) and then discovering that some app which works on the Droid does not work on the x10, because while the Droid is on 2.0.1, the x10 is on a heavily-modified 1.6. To use your analogy, this is like someone going to go buy a new gaming computer, and then discovering your new system only has a DirectX 8.0 card in it.

Tech-saavy smartphone buyers will know to look at what version of the OS the phone comes with before purchase. However, part of what people are pushing for lately is smartphone adoption outside of the 'traditional' smartphone market. Most of the people I know who have iPhones are not people who previously had Blackberries or Windows Mobile phones; they had little Samsung candybar phones, or Motorola sliders, or whatever. These are not people who want to look at the tech specs of their phones before buying them; they just want a phone that does what it says on the tin, and where they don't have to worry about compatibility and conflict. To them, the Xperia x10 is a/newer/ phone, thus should/have the newer stuff/.

This is where the fragmentation will hurt Android adoption. Someone can go and say, 'well, a new iPhone just came out. It'll be fancier/newer/faster than last year's model, so it can do everything last year's could and then new stuff.' You cannot do that with Android; someone sees the Droid has Facebook integration in the address book, goes 'cool! I want that!' and goes out to buy some even-newer Android phone, only to discover they cannot do the things their friend's Droid could, because their phone is using an older version of Android. To the average consumer, this doesn't make sense; those are both Android phones, and theirs is NEWER! Shouldn't their phone do MORE, not LESS? Etc.

(And let's be honest, even the tech-saavy gadget-addicted folks get unhappy when they don't have the latest and greatest update for their system. You need only check the irate threads at Phandroid or on the Verizon forums about 'when is the Droid getting 2.1?' 'Screw the Droid, when is the Eris getting 2.x at all?' and so on. It makes them annoyed to see that the Droid was promptly supplanted by the Nexus One two months later, and then people who bought the Nexus One now have/that/ being supplanted by the Desire shortly thereafter, etc.)

The catch is that the Droid and G1 weren't even released a year apart. DirectX8 was released almost 10 years before DirectX11..NET3 was released roughly 6 years after Windows 2000.

That's a huge difference, especially considering how much computers have improved in the intervening years. And DirectX8 is quite outdated but nearly every PC game on the market still supports DX9, which was released in 2002.

The fact that there are compatibility issues already with Android is very concerning. What they should be

No it isn't. The "problem" the author is talking about is no different than the "problem" with developing for Windows, desktop Linux, server Linux, Windows Mobile, BREW, J2ME, BlackBerry, etc... Basically its a "problem" with *every* platform - including the iPhone now that iPhone apps are supposed to work on the iPad (different form factor, screen size, features, etc...)

However, unlike all those other platform, Android supports some *very* powerful tools in resource selection and defining what API you are targeting. Target the 1.5 SDK, and it will work on 1.6, 2.0, and 2.1 because Android *knows* what SDK you are targeting. You can also specify that the "bg_image" resource be different based upon various criteria like screen DPI, whether it is in portrait or landscape mode, etc... and Android will pick the right resource without the developer needing to do anything in code. It is a very powerful system that works very well. You can also define what features your app requires. Require a trackball? You can tell Android that you require one. Require a tilt sensor? Tell Android you require one.

The real problem is that developers go into Android thinking that its development model is the same as every other platform and it just isn't. Google solved so many of the problems that these journalists are writing about and they solved it so elegantly. Spend 10 minutes reading through the Android SDK documentation and you will quickly see how incredibly non-issue many of these "developer complaints" are.

At least on the Apple store, it is clearly defined in the app description the required OS release, and the platform limitations. Apps will say "requires OS 3" and "Requires iPod Gen 2 or higher."

The problem with Android is that with all the disparate hardware configs, one-off versions of the OS, and lack of a true universal central store, there's no guarantee your device has the hardware requirements to support any given app, and no controls store side to check, or even warn you, as even in less than a yea

This is where you make a huge mistake and Google IMHO excels. Google does not display applications in the Market that are not designed for your API in effect giving you a store that should have very close to 100% compatibility. Albeit you can have minor issues if the subversion is different such as 1.50 vs 1.53 but these issues are minor and so uncommon that they are virtually nonexistent.

I completely agree with this statement. Having personally hacked android on to 3 devices that it was never intended to run on, I can say that the Android platform is even more consistent than windows mobile, or the iPhone OS. In fact, its even more consistent than a standard desktop Linux like Ubuntu. Furthermore, Linux (which is of course the pivotally important part of Android) runs on more platforms than any other operating system in existence. Linux itself does more than provide a 'consistent' API, it p

Not only that, it also strengthens Microsoft Windows and to a lesser extent Apple OSX.The end user is not interested in making choices or freedom from restrictions. They want something that will consistently allow them to do whatever it is that they do.

This basic need is the reason McDonald's has such a large presence in the US food service market.It's not the number of stores supporting their bottom line.It's not that they provide fine dining.It's not the taste or quality of their products.It's not even the price.

It is simply that the user of the service knows with better than 98% certainty WHAT the experience will be. The user knows the food, the prices, the environment, before they even pull into the parking lot.

The reason I don't try the small unknown diner three blocks from the interstate when traveling through a town I'm unfamiliar with is that there are too many variables (including what kind of neighborhood am I getting into) that must align for me to have a positive experience. If I am seeking food adventures I will have done some homework and will also be prepared for a possibly disappointing meal/check/service event. If I'm traveling for non pleasure reasons I want to keep going, not go on safari along the way.

Desktop Linux is not just that unknown diner, I also have to know someone who has been there just to find the parking lot (speaking as a regular retail computer user). I'm probably going to have to cook for myself, and impose on someone for help. If I want my cheeseburger, I don't want to have to learn meat packing first. I don't want to have to cast an iron griddle on which I can cook. Linus gave me a cow, Stallman donated the iron for utensils (I though about reversing that but I get this metal image of RMS as an herbivore), so I could do it all myself. But Apple has a Big Mac and Microsoft has the Whooper any way I want it.

If Android goes the fragmentation route of Linux it can only be good news for the major players.

Sure, but there are Google Nexus One apps that don't work on the Droid, and conversely there are apps that work on the Droid that don't work on many many 1.5 and 1.6 Android phones that are *still* actively being sold.

Sounds like what happened with J2ME. Everyone buggered off and did their own thing with it making it a real arse for developers. For a mobile platform to be useful for developers it really should be standardized in basic capabilities (CPU, memory, libraries and screen sizes).

As somebody who has written an app for both J2ME and Android, that comparison is really far out.

There are some key differences between J2ME and Android:

Android is an implementation, J2ME is a spec. Developing for J2ME is a nightmare because practically every phone has a unique combination of serious bugs. This isn't true of Android because every phone is working off the same core code. If manufacturers want to modify that code, that's OK, there's a test suite they have to pass if they want certain things.

Androids "fragmentation" is actually simply that not everyone has upgraded yet - no different to any other platform (including the iPhone). But Android manufacturers have a history of upgrading versions, and I don't see much reason for them to change this: customers demand it and because Android is open source, doing the upgrade is effectively "free" by mobile development standards, even for things like Sense UI (the APIs are backwards compatible).

Android explicitly supports writing apps that run on multiple platform versions, where as J2ME never really did. For instance you can hide your app from earlier devices (in the market), or you can make your app gracefully degrade on older devices.

Android does actually standardise hardware, it just doesn't standardise on exactly one set. For instance, you can assume all Android devices have a decent touch screen, a display that uses one of a handful of resolutions and so on.

Google only lets manufacturers distribute certain closed source apps (like Market) if they meet certain conditions. Google has every incentive to keep as many people on the latest version of Android as possible. They have the leverage needed.

In short, it's a slow news day and InfoWorld know how to stir up a story.

This is so completely untrue! Android checks for upgrades every 24 hours, and allows you to easily upgrade any of your applications or the entire OS itself. I've owned the Droid since it first came out, and the ease of upgrading is one of the features I've been fairly impressed with.

There in lies the problem though - some smartphones are designed with a very specific Droid OS In mind, so upgrading your droid could be over writing whatever open sourced hack was written to make features work.

While this is true to some extent, does your phone have Android 2.1? Unless you hacked it, the answer is no. So it does small incremental upgrades, but there hasn't been a major version upgrade pushed this way, which is what this article is talking about. There are phones currently being sold with at least 3 version of android (1.6, 2.0. and 2.1), with no current upgrade path to get to the next major version.

This is the big problem with WinMobile phones, and will be a huge issue for Android phones unless they get an upgrade path out there. If the phone can take it, there is no reason not to allow them to upgrade to the newest version of the OS.

Um... I think by "easily upgrade" you mean "easily upgrade to any level sanctioned by your mobile carrier." For example, the Samsung Moment is stuck at version 1.5 right now until Sprint feels like letting its users upgrade to 1.6. The G1 I think is at 1.6 by now, but only after T-Mobile felt like issuing updates. Meanwhile the Droid is at 2.0 until Verizon feels like rolling 2.1, and the Nexus One is at 2.1, which is currently the latest version.

So... yeah, the article raises a good point. It also highlights one of the benefits of rooting your phone- the *real* open source community behind Android is the modders, which try their best to keep your phone at the highest level of Android the hardware can take. I think the Android OS has incredible potential at the end of the day to really be something special, but standardization may be one of its biggest roadblocks. The steadily loosening death-grip of the carriers needs to completely go away, though.

I needed better remote web access than my previous phone provided. I will have to say so far I am happy with it as a phone and mobile web device. I am a little disappointed in the games available (something to kill time while waiting in the drs office), but that is a small part of why I got it.
But the premise of the story does worry me a little. This is one area where a central control point (ie apple or microsoft) has a huge advantage in my opinion. A failure in the android market will confirm this as a

I just got a Samsung Galaxy this month, because my old WinMo 6.0 phone was crap and needed to be put down. It runs Android 1.5. There's no plans to upgrade it to 2.0. I knew this when I got it, and if I could have, I'd have waited until I could have gotten a 2.0 phone. But the platform fragments even within forks just because manufacturers don't bother to update the system. I figure in a year or so, I won't be able to find any new apps that work with my phone because they'll all be written for the newest version. Say what you will about Windows Mobile (it sucks), but at least you can rest assured that you'll be on a level playing field with other phones, app-wise. Hell, I probably could have upgraded my old phone to 6.5, if it wasn't busted. Platform solidarity and longevity are important if you want it to be a success.

For any given device, you could find the 5-6 apps released by the manufacturer, a few old scattered apps by a shareware dev that happened to have the same device as you, and a whole universe of apps for "mobile Windows" platforms, each of which supported only one or two very specific devices in one or two very specific embedded Windows versions.

As a result of this, millions of these were sold in the '90s only to fall into disuse within a year or so

Is it just me or is the smartphone market looking exactly like the computer market did in the transition from minicomputers to personal computers? Blackberry and the old Palms are the minis. Then there's the hot shot closed system in the iPhone and the competing disparate open systems in Android, Web OS, and the new Windows Mobile. I'm hoping for a partial repeat of the PC market: Open wins. But hopefully somebody besides Microsoft comes out on top this time. Maybe Amiga will make a comeback on the smart ph

If I remember right, pundits were predicting the death of android because google was releasing the Nexus One.

Next, Android was going to flail and explode because evil Google wasn't bothering to spend time pushing irrelavent patches all the main Kernel tree (yes, because I want a phone's security model on my desktop linux please).

Now, horors of horors, a _very very very small_ percentage of applications don't work everywhere. I predict complete failure as a platform. No operating system platform in the world has experienced this and managed to suceeed.

I couldn't stand to RTFA; does the author of the article own an Android device? I do, and it's a v1.5 (Samsung Moment). In a few months, it'll be upgraded to v2.1. Till then, I've downloaded exactly _one_ application that isn't compatibile with 1.5. Time to sing about tradgedy, strife and whatever analyst wrote this getting fired.

The idea of Android isn't bad - far from it. From what I've seen, HTC's software was pretty shoddy before Anrdoid, but the hardware was solid, for instance. And while I don't own an Android device, I have used it and heard great feedback from friends.

Google's rules on Android are important, because Google has reached a fork in the road.

Google can continue to keep Android very free in its usage terms. ODMs will continue to like and adapt the OS to their devices, but they may provide custom interfaces, choose not to release upgrades for the phone OS. Inconsistency may drive people away.

Google might do the former now (to spur adoption) and the latter later, once everyone is using the OS. It's tough to say, because if Google tries to tighten control too early, they'll lose their support, while if they're too late, people may have already given up on developing for the platform.

What you think Microsoft just screwed up Windows Mobile on purpose for all those years?

Look at history, Windows Mobile came out swinging strong, kicking butt and taking names, and then it got bogged down in its own ecosytem as it attempted to support an ever wider and wider range and form factors of devices running on more and more different hardware platforms.

Mobile deviecs are far more complicated than desktops, both in terms of the little things (boot loaders!) to the big things (OEM relations!)

Microsoft learned this, I don't see how Google expected to basically copy Microsoft's mobile OS strategy (in every detail except for pricing) and have any less issues.

Technically, Google is just responsible for the core OS. It's supposed to be up to the manufacturers to release and support upgrades. I'm not sure how that is supposed to be any better for the end user as now instead of waiting for upgrades from Google, we get an additional wait until the manufacturer decides to release an update (with almost no incentive to do so for older phones).

It kept MMS off the iPhone, caused the stagnation in Windows Mobile, and is forcing this. Regulatory (or legislative) intervention in the form of forcing carriers to decouple phone provision from the network (following from Carterphone in the wired telco world) is one solution. Perhaps there are others?

As reader donberryman points out, you can even put Android onto some Windows Mobile phones, now.

How is hacking Android onto hardware it wasn't designed for any different from hacking OS X onto hardware Apple doesn't support? I don't think you can count "misuse" as a fault of Google.

The rest of it, yes I can agree. There needs to be more specific handling of hardware and software requirements. But to be fair, RIM has a twisted inconsistency of which of their own devices can run which versions of the Blackberry software and what all of their capabilities are. Even Apple's line of iDevices and Macintosh

This "problem" isn't a problem at all, it is an opportunity for a business. The freedom of the Android platform could use some development house to take the lead. They should pick a platform or 3 that are the most popular and develop their own version of Android as well as quality applications and quality application reviews. They need to find the best apps in the app market and improve them and brand them so that they are guaranteed to work on their version of Android and have customer support or at least real bug tracking and message boards for suggestions to bug fixes. Maybe even sell it as a monthly service. Something that would really stand out.

If I didn't already have a job and I had the start up capital I would have already been working on it, but since I have a nice job and no start up capital I leave it up to someone else to develop a business around the Android platform. Currently there is a hodgepodge of unheard of development houses making apps that look like they were developed by undergrads.

Google's own approach is to fork everything they use... Sure, they make their changes available, but, apparently, don't try very hard to just stick to the original versions of whatever they pick.

The more famous of recent examples are the forks in Chrome [lwn.net]. The changes, that Google made to their own versions, are substantial enough for their forks to be incompatible with the stock versions in too many cases. Was that really necessary?.. Google thinks, it was, but I am not convinced by their argument [neugierig.org]. At all...

Hard to blame the device-makers for taking a particular snapshot of Android OS, forking it, and not wanting to retest everything for an upgrade six months later...

I always liked Sun's position, prohibiting forks of Java by the very license — for this exact reason. You may think, you need to fix this burning bug with "the fierce urgency of now", but, by creating your own slightly-incompatible fork, you are doing more harm than good. (Such local forks are only excusable, when the upstream project is dead or almost dead...)

From TFA: "Who wants to commit to a two-year cell contract for an Android phone when it's not clear if a better version will be out next month or if the operating system and apps you put on your Android device will be supported in the future?"

There's no guarantee that palm will ever fix it's frustrating SMTP/TLS implementation to match the RFC , or that Apple won't force every developer to DRM everything that enters the iPhone. I'm also not guaranteed that I'll ever be spyware free on Windows, or that Microsoft won't shut down my PC because they think it's pirated.

The article is just the same opportunistic FUD against Open Source that went around in the mid 90s. Next thing coming out of InfoWorld will be an article written by someone from the Yankee Group declaring android is infringing on copyrights. Go ahead and drink the kool-aid if you want folks. The only thing your doing is limiting your own choices down the road.

Apple prefers (and fight VIGOROUSLY for) DRM free content. The ONLY content DRM's on the Apple store is content the PROVIDER INSISTS is encrypted, not just by Apple, but by EVERY SINGLE METHOD OF LEGALLY GETTING IT. Apple is largely considered an industry leader in the DRM free content battle you moron.

This is not UFD against open source, it;s a valid argument that Android is suffering user confusion and disappointment because Google didn't explicitly require a reference platform, application certification process, and forward compatibility requirements. Yes, there are a lot of tools available to devs to assist with the compatibility issues, but its on the devs to actually USE those tools, and very few choose to (or even know how).

I KNOW that when iPhone 4 comes out, all apps i have on the iPhone now will either work, or require a minor patch that I'll get for free guaranteed. I know this because if the app isn't supported on the latest release, apple pulls it from the store, cutting that dev off from all future revenue on the app if they don't fix it, and updates are always free. I also know there's extremely good documentation coming out of apple to the devs about explicitly what they can and can't code for, which APIs are scheduled for depreciation, and which APIs replace existing functionality over time. They've been doing that with OS X successfully for nearly 10 years, and with Sysem X previously. in contracts, Web OS, Android, and Windows devs really have no clue what's going on until the SDK hits the street (on launch day, not months before release), and you're lucky to get any real documentation or guidance at all, let alone dev support.

Where is this incompatibility? Specific examples please? This is all speculation. I work an on unreleased Android smart phone and download apps all the time from the market and don't see any compatibility issues. Yes there is a lot of variation in phone, but the framework has methods to deal with that. Incompatibilities are more likely the programmer's fault rather then the phone's fault.

The only place this could be a problem is cutting edge new features or sensors, usually a ODM will implement it in an incompatible way the first generation, but then Google will standardize the interface in the next release (i.e. multitouch)

The real issue here isn't an Android problem at all, it is the fact that manufacturers/carriers never upgrade the software. They have no incentive to, they already sold the product and made their money, why would they waste time/money making sure the new version will work? It actually works in their favor not to as the customers have to spend more money getting a new phone with new software. Until you actually own your phone and can upgrade it at your discretion this will continue to be a problem. Or buy something from Apple who actually understands this and has the clout to force it on the carriers.

Here's the REAL problem with Android right now: over the past 9 months or so, Android has advanced from 1.5 to 1.6, 2.0.x, and 2.1. Each of those advances added lots of desirable new capabilities. The problem is, roughly half the Android owners in North America were sold brand new phones last fall that came with Android 1.5... months after 1.6 was mainstream, barely a month before 2.0.x arrived with the Droid, and less than 3 months before 2.1 arrived in January. Of course, we've (almost) all been promised 2.1... sometime in the first half of 2010.

Speaking on behalf of Sprint Hero owners, we didn't even get positive confirmation that it was shipping with 1.5 instead of 1.6 until literally a few days before they arrived at Best Buy, and even then it was taken for granted by pretty much everyone that we'd have 1.6 on our phones by Thanksgiving. Of course, at that point, 2.0.x and the Droid were barely even credible rumors, especially given the fact that 1.6 was only a few months old at the time, and the way Google, Motorola & Verizon managed to keep 2.0 practically a state secret until the day before the Droid hit stores. I'll freely admit I was absolutely *livid* when I found out the Nexus One (with 2.1) was coming out less than 2 weeks after Christmas, before my own 1.5-crippled phone had its 3-month anniversary. And even now, HTC is still being coy about when we're going to finally get to have 2.1, besides vaguely repeating that it'll be sometime before July 1.

This really, really sucks. Seriously. Imagine you'd just gone out and spent a thousand bucks on a brand new laptop running Windows 3.1 a couple of months after Windows 95 hit the streets. You wanted Win95 too, but your ISP only allowed you to use that specific laptop sold with Windows 3.1... and it was widely understood by everyone (besides your ISP and the laptop's maker) that you could upgrade to Win95 on your own, anyway. Except after buying it, you discovered that the manufacturer locked it down to prevent you from booting from a Win95 installation disc. Then, after you finally managed to hack around that limitation, you discovered that none of its hardware drivers would work under Win95... not even in Win32s compatibility mode. But wait, it gets better...

A month later, amidst rumors that didn't become confirmed until literally days before release, a new, incompatible laptop with Windows 2000 came out... and your own laptop's manufacturer released a press release saying, "Good news! Since it's already obsolete, we're skipping Windows 95, and going straight to Windows 2000! You'll get to have it NEXT YEAR." A month later, yet another new laptop, equally-incompatible, with a substantially faster CPU, more ram, a much larger hard drive, and better display came out running XP... and the same day, Microsoft announced XP's arrival on MSDN. Oh, your laptop's maker sent out another press release... forget Win2k, it's going to be XP instead. At least they didn't push back the release date yet again, but in the meantime you're still hobbling along with Windows 3.1. Half the software that comes out can't be installed at all, and half the software that CAN crashes the moment you try launching it, because you're still running an ancient version of Windows.

Google & the Android team made things worse than they had to be by designing the new APIs as a core part of the OS, instead of a user-installable upgrade. If the gestures library and Bluetooth API were installable under 1.5 as shared libraries, instead of locked away in the kernel (which can't be easily upgraded without at least the non-interference, if not the actual cooperation, of the manufacturer), the distinction between 1.5 and 2.0 would *almost* be academic. The best any of us can do right now is to install a hacked-up 1.5 kernel that's had some band-aids to sort of run 2.0 apps, but it's kind of like the programs that came out around 1995 that tried to make Windows 3.11 look more like Windows 95... or the programs that stripped down Windows 98's Explorer to use Windows 95's l

Galen Gruman is the author of the Mac OS X Snow Leopard Bible [amazon.com], so it's a good bet he is biased towards Apple and against Android.

I have owned several Android devices and I haven't had significant compatibility problems. Some software takes a little while to get updated to the latest version of Android, but that's pretty much it.

Right - because a plethora of unique PC machines hasn't worked out as well as apple's - more-expensive-all-the-time strategy.

If you'd RTA, you'd see he noted that the difference between PC's & cell phones is the relative ease with which you can change Operating Systems. If you try out a flavor of linux and it doesn't pan out, you can always install Windows. With cell phones, you're stuck with what the carrier gives you, you can't decide to upgrade arbitrarily. With Apple, at least you can count on the vast majority of devices running the same OS.

Then, there was Apple and there was Wintel, and they made up about 98% of the PC market with Wintel holding about 95%.Now, there is Apple on Intel and Windows on Intel and Intel work-a-likes holding 95% of the PC market with FLOSS a distant third. And, Wintel still has over 85% of the market

Looks like that "plethora of unique PC machines" aren't so unique after all. The peripheral hardware may change but the processors and the OS are pretty much standard on every every machine.

The idea that Linux is any more diverse than the average Windows PCis just mindless FUD that neglects the fact that WinDOS applicationinstallers have always mucked around with the core system in orderto make application installers seem transparent.

Each runs a version of Windows compatible to the same version on every other PC running the same version of Windows. This is not true of Android

Regardless of the version of Windows each runs, there is an upgrade path to the latest version of Windows. The hardware may result in the system running so slow that the system is unusable, but it is doable. This is not true of Android devices.

Right - because a plethora of unique PC machines hasn't worked out as well as apple's - more-expensive-all-the-time strategy.

All PCs have keyboard/mouse input. The different Droids have [keyboard or not]/[multitouch or singletouch]. Most PCs run some flavor of Windows, so the OS is constant for ~5-7 years; the Droid is already on the second (incompatible) version of the OS. If you developed for Windows 95, you were good until XP. If you developed for XP, you were good until Vista. If you developed for

You mean, the plethora of Desktop Linux variants has worked well against MacOS's and Windows's unified approach. Or not...

The problems with multiple versions for the exact same devices and uses are:- developper confusion: should I target the lowest common denominator ? the latest one ?- consumer confusion: what is Android exactly ? Why doesn't my phone do what yours does ?- effort duplication. I dream about how good the Linux desktop would be if, instead of having 6-7 of them, all efforts had been poured i

I'm tired of hearing this bullshit, especially on Slashdot and supposed technology sites.

"The most important thing is that it makes calls. After all, it's a phone."

Anyone who cares most about "making calls" is living in the last century. I almost don't give a shit if my phone makes calls via the phone network. It's more important to me that it can Skype via WiFi. It's more important to me that it can check my email, run a Web browser, check my bank accounts, post to my blog, view what's in my Dropbox on the go, take notes, and manage my calendar and to-do lists.

It is a "phone" only because that name was grandfathered in over several generations. In fact, the "phone" is the LEAST important part of these mobile devices for me. The most important are data accessibility, ease of backing up/upgrades, and the features of built-in applications and installable apps vis-a-vis the network and network service/information providers of various types.

My phone used to be just a phone. I wanted it to be small and have good reception.Then they started making phones with good cameras (Nokia N95), and my phone became a camera that I could talk to.Then I actually started using SMS. Suddenly a keyboard became very attractive.The value in the G1 is the data connection, and a solid OS to make use of it. I make phone calls only a couple times a day. The data connection is used constantly.

The issue thus far though has been that one cannot easily upgrade to the latest and greatest version of Android until the manufacturer and network provider decide it is time to. Right now there are at least three or four different versions of Android running out there. At least when Apple releases a new iPhone OS, all the iPhones get the update at the same time.

Not necessarily, the "downside" to the Apple model is that you're never forced to upgrade and you can't do it over the air. There are plenty of people still running phones on the 2.x series of iPhone OS.

if (hasCompassV2()) {// do something;} else if (hasCompassV1()) {// do soemthing slightly different} else if (hasOldBrokenCompass()) {// do painful work around} else if (hasOtherThing()) {// fake it up using the other thing} else if (hackTestForPropertyX()) {// do something nasty} else {//damn it, just draw a non-working icon}

And of course now whenever you change something you have to test it on a dozen variants to make sure you didn't break any.

And then of course you find one that hasCompassV2() us true, but has a something broken/different so you need to special case that one out to...

Let me tell you, for 3 of the last 4 years, we had phones in my house from both companies. Verizon because my Mother-in law thought she'd be nice, and commit my wife and I to a 2 year contract on a phone so she and my wife could take for free (not that i could not already call her free on VoIP, so really she bought my wife a gift to save herself money at our expense). I had AT&T provided by the office, and later got an iPhone.

Let me clue you in on some of the discrepancies between these 2 companies I've experienced:1) Verizon has a data plan cap on their unlimited plan, and RIDICULOUS overage charges. AT&T has a "soft cap" at 5GB, has no overage charges, and has not disconnected or throttled a single known customer for exceeding the cap (even given the network strain).2) Verizon doubled its termination fees recently, on devices AT&T also sells with the same subsidies. AT&T has mode no move to change, and the FCC and FTC are crawling up Verizon's back over the policy.3) Verizon's adds are all about those great multitasking devices, but they fail to mention in any literature or media that those devices come strictly limited to voice and data use independently, meaning you can't use GPS and take a call at the same time, or be on a call and look something up, a CORE FEATURE of those platforms.4) Verizon embeds custom firmware in 3rd party devices, disabling advertised hardware features so they can charge for their own services. For example, on most of their camera phones (including all of them from Motorola I'm aware of), have the ability to sync with a PC over both a cable and bluetooth, but Verizon hacked the firmware to explicitly forbid this, in favor of a fee based service to "send yourself" images through their network at $0.29 each, and they didn't even bother to take the "PC sync cable sold separately" line off their OWN BOX (not Moto's box, completely Verizon's branded box). After we lodged a complaint with tech support, and after repeated, and repeated failed call backs, we finally were told Verizon would never sell that cable, but oops, you've had that device over 14 days now, so you can't return it without a huge contract penalty...5) Billing for the next full utilized minute. You make a call for 30 seconds, 2 minutes are charged...6) No ability what so ever to disable text messaging on any phone that supports it on Verizon. AT&T offers both a filtering service for a fee as well as a similar service at no charge if you get inundated with too many unsolicited texts, and you can also simply outright have text disabled completely.7) Strict 2 year handset replacement policy. After 2 years, the new phone is only (up to) $200 off, not $400 off like a new iPhone, and you're still locked into a 2 year renewal anyway. New subscribers get a better deal than existing ones.8) automatic contract renewal for a variety of things: Add a new line to an existing contract, even with a pre-existing phone, resets to 2 years, even if you were more than a year in on the existing line, changing plans extends contracts in many cases, replace a broken phone mid way through by any means other than their own (deductible incurring) additional warranty extends the contract, etc.9) no rollover minutes.10) extra charge for using ActiveSync or BES, even to YOUR OWN SERVERS, which have NOTHING to do with Verizon other than using their data channel.

I can go on.

AT&T may be a tad dishonest in it's ads (questionably), but so are all the others. AT&T's up front pricing is the same or lower than Verizon's across the board. Their network issues have nothing to do with their network, but with available FCC frequency and they readily admit that (btw, Verizon and Sprint are having the SAME issues, you just don't hear about it as much since they're not iPhone-hater targets). AT&T may be a hotly hated company, and they certainly have their share of issues I can't defend them for, but they're practically SAINTS compared to how Verizon treats their customers. Don't even get me started on Fios...