Google Android — a Universe of Incompatible Devices
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.
This is essentially the same problem that desktop linux has.
"His name was James Damore."
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).
Wow, I should not post when knackered.
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.
Looks like they haven't learned anything from the Windows 7 memory FUD scandal.
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.
Canada: The US's more awesome sibling.
Here is some background on the article author: http://www.zangogroup.com/galen.html
Anyone else get the feeling that he is the Pat Goss of the computer world? I.e. getting paid to pretend he knows what he is doing?
Living With a Nerd
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 phone!
OH ANDROID IS A COUNTRY SONG.
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.
Google's rules on Android are important, because Google has reached a fork in the road.
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.
Need help treating your acne? Come here!
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?
Real Steve Jobs too busy rolling around on a pile of money wearing nothing but a black mock-turtleneck to supply quotes for this interview.
No, I think what the OP means is that an app developed on one release of one distro is not guaranteed to work on any version of any other distro, or even any other version of the same distro.
This isn't about machines talking to one another, it's about software dependency resolution (or lack thereof).
It's official. Most of you are morons.
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.
STOP . AMERICA . NOW
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.
Yes, because code like that is so pleasant to work with.
if (hasCompassV2()) { // do something; // do soemthing slightly different // do painful work around // fake it up using the other thing // do something nasty //damn it, just draw a non-working icon
} else if (hasCompassV1()) {
} else if (hasOldBrokenCompass()) {
} else if (hasOtherThing()) {
} else if (hackTestForPropertyX()) {
} else {
}
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...
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. 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. 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...)
Too many programmers, too few software engineers...
In Soviet Washington the swamp drains you.
early mobile Windows platforms (CE, HPC, HPC Pro, PPC, etc.)
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 in each case as technology and connectivity needs moved on, but only the very latest devices were supported by the latest developments in software to fulfill consumer needs. Consumers got smart and decided it was a generally bad deal to buy these devices because they'd be totally unsupported within a year, essentially a wasted $400-$800 investment on a device that would simply be left incompatible with the ecosystem before very long.
You can now find lots of these devices on eBay for less than $100 (various PDAs, handheld PCs, etc.) that are worthless because they only sync to Windows 95 or 98, have only rudimentary built-in tools, and are blessed in each case with a paucity of compatible applications.
Hopefully this doesn't happen to Android, too. I'm an iPhone user and am very satisfied, but it's always nice to think there are alternatives, and I like the Android platform, in concept, an awful lot.
STOP . AMERICA . NOW
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.
boycott slashdot February 10th - 17th check out: altSlashdot.org
But Fonda ain't got a motor in the back of her Honda,
My Anaconda don't want none unless you got buns, hun.
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)
Nice try at a red herring, but you fail.
But,
First off, it is Windows, not "Windows PC". You see Linux is an OPERATING SYSTEM and Windows is an OPERATING SYSTEM. The "average Windows PC" is a whole computer system. If you want to compare Linux to something, you should compare it to another operating system.
Second, Windows has one official set of core components that are used over 95% of users. Linux, on the other hand, does not have standard locations or components. It has interchangeable window managers and desktop environments, each with its own API. Try installing a semi-light weight system with, say, WindowMaker as your WM. Don't install any part of GNOME or KDE. Then, start installing application such as Nautilus, or Konqueror, or Evolution. What will it say you need to do? Yet, that is not a problem on Windows, now is it? And with Android, it is worse because an application written for Android 2.1 may use OS features not available in 1.6 and there is no way to upgrade from 1.6 to 2.1 for almost every Android device with the exception of hacking the device which most users don't have the skills to do.
There is no "-1 offended" or "-1 you don't agree with me" mod options for a reason.
Wow, you think AT&T is evil, compared to Verizon?
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...
There is no contest in life for which the unprepared have the advantage.
I have never encountered an open source desktop linux application that would not run on any desktop linux distribution.
Have you ever encountered a closed-source linux application that could be thrown at an arbitrary linux distribution? No? How about an arbitrary version of a single distribution?
"His name was James Damore."
Galen Gruman (the writer of the article) used to write for Macworld and is also part of iPhoneInTouch developers group.
This can all be found on his linkin profile. http://www.linkedin.com/pub/galen-gruman/0/37/599
It's something you would want to take with a grain of salt, if he wasn't hounding it with every article he wrote about it. FUD.
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, 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.
It's not that hard. Only depend on APIs present in the base version you target. If you can take advantage of more recent ones then use GetProcAddress. People have been doing this for years.
Actually Win32 has been a perfectly capable API since the NT days so it's possible to write pretty much anything and have it working on NT and up.
echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;