The introduction of Apple's iPad got a lot of people talking about "apps" again. There's no denying the oppressive popularity of apps today; everybody's got an app store and everybody's playing catch-up with Apple. Apps are the new hotness.
Yesterday, Stephen Forte (Is the iPhone (and Android) the harbinger of death for web pages?) observed that apps kick the crap out of web pages when you're on a mobile device, which is why we're seeing an app revolution similar to the one that launched HTML (and the web) to prominence a decade ago.
The part he missed, though, is the negative impact of a fractured client landscape.
When you see a Fortune-500 company announce a new iPhone app, do you ever wonder what it expects its Blackberry customers to use? How about Android? Is the cost of the new app hotness a need to build four copies of every app?
On iPad day, I caught an interview on NPR's "Marketplace". Josh Bernoff from forrester.com was talking about how the web is effectively shattering due to the different experiences on each of these platforms. To me, this demonstrates that we're in the midst of a fundamental transformation.
The web (specifically, HTML) was the great equalizer. Any server could serve any client. This simple concept "made" the web. We're now experiencing a shakeup to this universal access. The web is now accessible to more devices than ever, but the cutting edge is rich client development (apps), and this is hugely fractured. On the web, we have technologies like Flash and SilverLight, and on mobile devices, you can develop for iPhone, iPad, Android, BlackBerry, Palm Pre, Windows Mobile, and others.
Today's development tools give us no practical way to target all (or even most) of these client platforms "natively". This is not due to technical impossibility; it's a function of the power struggle that's occurring among these warring platforms. If Microsoft and Apple both wanted to see SilverLight run on an iPhone, I'm confident that it would have happened by now.
Instead, all the major players in mobile platforms want to own that whole space, and their proprietary UI's are required for this. If Apple, Windows Mobile, and Android all ran flash, for example, Apple's dominance in mobile devices would be severely compromised (after all, I can get the same "apps" on any device at that point, right?). Apple doesn't want to see this, obviously -- it takes money directly out of their pockets.
The impact of the splintered web on developers is twofold. First, and most obviously, every app must be coded from scratch to run on each platform a developer wishes to reach natively. This is going to force a pretty uncomfortable reckoning with Product Managers, and it's probably going to mean that in many cases, only the top one or two mobile platforms is served, leaving the rest of your customers to eat HTML table scraps.
The second impact on developers is a splintering of skill sets and tools. If I want to port my .Net application to iPhone / iPad, I'm looking at a sizable intellectual and financial investment. At a minimum, I need to buy an Apple computer, because you can't do Apple development on a Windows box (no monopoly there, right?). Only then can I even begin to try to port or rewrite the app. Tools like MonoTouch can help preserve my business libraries, but the UI transition won't be seamless.
In practical terms, the specialization needed to be good at developing for any of these platforms also means that any one developer can't be great at all of them, which implies that I need multiple developers to target multiple platforms. This is starting to get expensive, now, isn't it?
In time, it's inevitable that the market will work this out. One of the major platforms will win, relegating the others to the "Island of Misfit Technologies", or a number of them will agree to interoperate (via Flash, SilverLight, HTML 5, etc.). In the mean time, though, businesses need to expect more expensive development if they want to reach all their users with native apps, and developers had better be prepared for more UI platform changes.
Do you miss the good old days of HTML already?