The trouble with Android, cont’d

See, freedom and openness are great, except when they’re not. They’re great when you’re talking about politics, and about people being able to do whatever they want as long as they don’t harm other people. But on consumer electronics? Not so much. Which brings me to Android.

I’ve been predicting this along, and now it’s happening, and what’s more, people are starting to notice. Even passionate Google/Android fanboy Michael Arrington has been forced to admit that Android is facing a really profound problem, ie not a problem related to execution, which could be fixed by, oh, I don’t know, shooting a couple of engineers in front of the others so you could scare them into doing better work. No, the problem with Android is related to the very nature of the project itself. The problem is, Android is an open-source program. Arrington seems just now to realize that this means people can fork the code, and he and others are praying that this won’t happen:

Android, an open source operating system, must avoid the fate of J2ME, an open source mobile applications platform. Open source is great, until everyone splinters off into their own world. That’s what happened to J2ME, and a number of frustrated Android developers are now saying that there is a risk Android will follow the same path.

Um, hello? Folks, the whole point of doing open-source code is to let it fork. The idea is to accelerate evolution by encouraging weird mutations. Creating an open source program and hoping it won’t fork is like decorating your house with a zillion Christmas lights and a forty-foot inflatable Santa and hoping nobody stops to look at it.

Even if Android doesn’t fork into a zillion little weird programs that go scuttering off in all directions like so many beads of mercury, well, there’s another issue, and again, it’s a profound one, related to the very essence of Android — namely, that Android is just the OS, and every handset that it runs on is different. So if you’re an app developer, what do you write for? See, on the PC, this wasn’t an issue, because the hardware itself was pretty much standardized, so you could write for, say, Linux, and not worry about the hardware. Not so with Android. As Arrington points out:

New Android devices are being announced and shipped in bunches. HTC, Samsung, Dell, Verizon and others have phones on the way. Each has different hardware, and different software, than the others. We’ve spoken with a number of high profile Android application developers. All of them, without exception, have told me they are extremely frustrated with Android right now. For the iPhone, they build once and maintain the code base. On Android, they built once for v.1.5, but are getting far less installs than the iPhone.

Italics mine — because that’s the heart of the matter. With us, on the iPhone, you build once and sell to millions of identical handsets. Nice, right? See, sometimes there’s a method to our control-freak madness.

And now they’re faced with a landslide of new handsets, some running v.1.6 and some courageous souls even running android v.2.0. All those manufacturers/carriers are racing to release their phones by the 2009 holiday season, and want to ensure the hot applications will work on their phones. And here’s the problem – in almost every case, we hear, there are bugs and more serious problems with the apps. There are whispers of backwards and forwards compatibility issues as well, making the problem even worse.

Hmmm. Bugs? Compatibility problems? In a Google product? Hard to imagine. I mean, aren’t they like the smartest people on earth or something?

More than one developer has told us that this isn’t just a matter of debugging their existing application to ensure that it works on the various handsets. They say they’re going to have to build and maintain separate code for various Android devices. Some devices seem to have left out key libraries that are forcing significant recoding efforts, for example. With others, it’s more of a mystery.

It’s not a mystery. Hardware makers are a) evil; and b) stupid. They don’t want apps written for their device to run on other devices. They want you locked in. Duh.

Imagine if Windows developers had to build different versions of their applications for different PC manufacturers. Or even different versions for various models by a single manufacturer.

Wow, yeah. Imagine that.

That’s what some Android developers are saying they are facing now.

Jeez, if only someone had warned them about this, right? Shucks. Maybe they just should focus on the iPhone instead.

Friends, let me say this again. Android is a half-baked, unfinished clusterfuck. I’ve been at this a long time and I can tell you the only way to make a great consumer device is to lock the fucking thing down. Tight. Otherwise you’re “playing tennis without a net,” as Robert Lowell once said. Or was it Jerry Garcia. I get them mixed up.