Look at all the wonderful new toys announced last week at the annual Consumer Electronics Show in Las Vegas. Tablet computers and lots of things running Android. Internet-connected televisions that have browsers and apps, such as Samsung’s Smart TV. A new app-store model for OS X, that is, Apple’s Macintosh notebook and desktop computers. Lots and lots of new things.
For consumers, this represents not only innovation, but also really tough choices. Now, when you choose, let’s say, a television, you can’t just look at size, picture quality, sound quality and price. If you want the latest in technology, you also have to see how well the television does on the Internet (i.e., its internal software), and decide whether you believe that the company’s app-store model will attract developers.
It’s worse if you’re an enterprise development manager, or an executive charged with choosing and funding app-dev projects. (ISVs can simply choose to pick popular favorites.) If you work for a media company, let’s say, or a retail chain, or a bank, or a government agency, you’re looking at massive fragmentation. Which platforms to build for right now? Which to ignore? Which to handle with a wait-and-see attitude? Fragmentation is painful.
Not only that, but there are real questions about how to develop for all these platforms. Native tools often provide the best results but require a large investment in training and technology, and it’s difficult to ensure feature parity. It’s also hard to balance the need to have native-looking user experiences with having a consistent approach across all platforms.
The other big choices are multi-platform frameworks. They can simplify development, but often with a least-common-denominator approach. You’re also at the mercy of those frameworks’ developers in terms of which platforms they support and how robustly they support each platform. We are experiencing fragmentation there too: I’ve lost track of how many frameworks there are, both open-source and proprietary, vying for developers’ attention.
Once you’ve written your app, now you have to figure out how to distribute it. Forget shipping CD-ROMs. Now you need to hook up with and manage your software’s presence in any number of different app stores, some by hardware makers, others by carriers, some by third parties. Each app store has its own rules, technical requirements and payment model.
This new world of platform fragmentation is a far cry from the not-too-distant past, when we had far fewer choices—or in some cases, no choices. Building desktop software for business users? Win32. Designing a website? Make sure it runs on Internet Explorer, and maybe Firefox. Writing a rich Internet application? Flash. Creating a server application? Choose Java, Win32, or native code for Linux or Unix.
I feel bad for consumers. I really do. There are too many choices, and it’s unclear which will be viable and which will crash and burn. The explosion of app platforms is reminiscent of the VHS vs. Betamax wars of the 1970s, or the more recent Blu-ray vs. HD DVD battles of the late 2000s—only with even more players. You can’t always tell who’s going to be the winner, and first-mover advantage doesn’t guarantee victory: Betamax came out first, for example, but was trounced by VHS.
But I feel worse for enterprises that need to have a strong presence across the non-desktop screen. Each one of these platforms requires education—and then hard choices, as well as investments that may not pay off. Yes, innovation is good and options are wonderful. But it will be better still when things settle back down again.