EOF - Dysintegration
During Apple's Q4 2010 earnings call with analysts, Steve Jobs did a typically masterful job of re-clothing an old argument in fresh duds. The old argument was open vs. closed. The new one was integrated vs. fragmented. Time will tell if the clothes will fit. Meanwhile, I'd like to devote this space to helping make sure they don't. So, here's what Steve said, with corrective replies. From a transcript of the call, in tech.Fortune.com (tech.fortune.cnn.com/2010/10/18/what-steve-jobs-said-about-google):
Google loves to characterize Android as open, and iOS and iPhone as closed, we find this a bit disingenuous and clouding the real difference between our two approaches. The first thing most of us think about when we hear the word open is Windows, which is available on a variety of devices. Unlike Windows, however, where most PCs have the same user interface and run the same app, Android is very fragmented. Many Android OEMs, including the two largest, HTC and Motorola, install proprietary user interfaces to differentiate themselves from the commodity Android experience. The users will have to figure it all out. Compare this with iPhone, where every handset works the same.
Calling Windows “open” is weird—like the pot calling the kettle white. Windows-based boxes are also no less fragmented than Android phones. Right here, I've got a Lenovo ThinkPad with proprietary UI features, such as the red pointstick and the ThinkVantage button. And, not every iPhone handset works the same. Old models either don't run or work well with the latest OS. Here's Steve again:
Twitter client, Twitter Deck, recently launched their app for Android. They reported that they had to contend with more than 100 different versions of Android software on 244 different handsets. The multiple hardware and software iterations present developers with a daunting challenge. Many Android apps work only on selected Android handsets running selected Android versions. And this is for handsets that have been shipped less than 12 months ago. Compare this with iPhone, where there are two versions of the software, the current and the most recent predecessor to test against.
Here's what TweetDeck (Steve got the name wrong) actually said in its blogged report (blog.tweetdeck.com/android-ecosystem):
To date, we've had 36,427 active beta testers, and below you can see the massive variety of phones and Android OS versions everyone is running. We were really shocked to see the number of custom roms, crazy phones and the general level of customization/hackalicious nature of Android. From our perspective, it's pretty cool to have our app work on such a wide variety of devices and Android OS variations.
So TweetDeck has no problem with “fragmentation”. In fact, TweetDeck thinks it's cool. Also, what Steve's saying with his “two versions” point is that only the last two iPhone models are supported. Earlier ones are obsolete. In fact, they have to be, if you're keeping up with the latest downloads of the OS and its mother ship, iTunes.
Now to the matter of smoke-blowing:
In reality, we think the open versus closed argument is just a smokescreen to try to hide the real issue, which is, what's best for the customer, fragmented versus integrated. We think Android is very, very fragmented and becoming more fragmented by the day. And as you know, Apple's provides the integrated model so that the user isn't forced to be the systems integrator.
...And we also think our developers can be more innovative if they can target a singular platform rather than a hundred variants. They can put their time into innovative new features rather than testing on hundreds of different handsets.
After hearing this, I contacted a friend who does lots of Android (and Linux) development. His first response:
For a phone OS, it's as open as they come, by a huge margin. Source code is readily available for free download by anybody. Having a complete copy of the source code makes development easier. But in general, you can do anything you want on Android.
Then he adds:
Here's where Steve's right: anybody can build their own Android device based on the resources available on-line. If you use Qualcomm chips, Qualcomm will have already written the kernel drivers for you and gotten it all integrated. Other chip vendors probably do the same thing. But if you want your device to work with the DRM-protected apps on the Android market, you have to have your device locked down security-wise and vetted by Google. Sometimes vendors push an over-the-air upgrade and forget to vet the new OS with Google first. Then all of a sudden paid apps stop working. Still, with Android you can generate a single binary that runs everywhere. Yes, there are version issues. Develop for 2.1, then 1.5 phones can't use it. That's why I always develop my apps on the most primitive version of the OS that will run them. The development environment (Eclipse) lets you do that. You can run any version of the OS under the emulator. And every app can specify a version of the OS it was intended for, plus a range of OS versions that it supports.
In the argument about arguments, it's easy to miss the Big Thing that's happening here: phones are becoming the new PCs, and there are many choices of ways to develop for them—and Android (and, therefore, Linux) is one of the top two. Apple deserves credit for cracking open the market with a highly vertical approach. But Apple's market is a closed silo. Android's market is wide open. There's no limit on how big it can be.
Doc Searls is Senior Editor of Linux Journal. He is also a fellow with the Berkman Center for Internet and Society at Harvard University and the Center for Information Technology and Society at UC Santa Barbara.
Doc Searls is Senior Editor of Linux Journal
- High-Availability Storage with HA-LVM
- DNSMasq, the Pint-Sized Super Dæmon!
- Localhost DNS Cache
- Real-Time Rogue Wireless Access Point Detection with the Raspberry Pi
- Linux for Astronomers
- Days Between Dates: the Counting
- You're the Boss with UBOS
- The Usability of GNOME
- Multitenant Sites
- PostgreSQL, the NoSQL Database