As a software developer, I've spent the a good chunk of the past four years in this logic loop:
Why are smartphones and tablets dependent on installable software when on the desktop we've spent many, many years trying to get rid of installable software.
It would seem that native, installable apps on mobile devices are anachronistic. But are they?
When Amazon started was just a bookstore and not the great deal more complex business that it is now. Back in 1994 all it was a (tiny) mail order company that sold books.
In a traditional mail order scenario you'd know what you wanted to buy and place a call. An operator would receive the call and tap in the order as your proxy into their order entry system. The genius move that Bezos made famous was to remove the operator and let the user key in the order entry system directly. Ecommerce was born.
Before the web, the only way to do this was to deliver a piece of software that the customer would have to install on their computer. There were a few, niche places where this happened, for example computerised banking software, but it was extremely rare.
Local PC software installation considered from both in this time period and the current time period is a pain for both the vendors of the software and the end users. The web, by acting as a technology that transmits user interface elements from a centrally controlled server to a (mostly) dumb terminal, gets around the problem of local installation.
Thus, when someone shops at Amazon they don't need to download software to do it, they just visit a URL.
And yet people, myself included, still shop on Amazon using apps rather than the mobile web, even though Amazon's mobile web capability is perfectly functional. Why?
It is harder to build good user experiences using the mobile web compared to native apps. The native toolsets provided by Apple, Google, and Microsoft are designed to showcase the devices to their maximum advantage. The web is an inherent compromise.
But, the heartache involved in building the same app multiple times for each platform should create enough pressure in the system that for the most part developers eschew native for web.
This is the thing that's never made sense to me. If native is so hard compared to mobile web, why does native exist?
I used to think that this was just vendors being customer-focused. Customers demand better user experiences and as a result vendors stepped up, made the additional investment and made native apps.
The problem with that argument is that it depends on rather a lot of businesses being commercially altruistic, and that in itself is something of an oxymoron. Amazon doesn't have to build native apps -- Amazon essentially has no competition. So why do they do it? Any why does eBay, and Facebook, and Twitter, and all the others who pour masses of development dollars into apps that no one needs?
What I'm now thinking is that the picture is much more complex than "customer focus". Like a lot of things that happen in our consumer mobile industry sector, a happy accident has snowballed.
By designing mobile platforms the way that we did, we ended up negating the major advantage that the web had. As discussed, back at the invention of the web creating locally installable software was hard.
When Apple invented the App Store and the developer tooling to go with it, they fixed the problem of local installation beforethey did anything else. From the top down, the mobile platforms are designed to deliver locally installable software. There is no such thing as a difficult, broken, incompatible, faulty, insecure installation when you're using an app store from any of the vendors. It just works.
And so this was what the users got used to, and has now snowballed into what they expect.
If all of your computing experience is based on that of using your smartphone or tablet, this is what your experience of software as a whole is. For us technologists, that's weird because to us that's not how software works, and it doesn't gel with our experience of how we went through the process of making software delivery easier.
But in the era of post-PC, that's the trend that can't be bucked. Mobile is growing so fast we have, inadvertently, redefined the whole idea of what software is. And that's why the mobile web can't win over native apps.
Making the user access what could be an app over the web is now just as weird as making a user in 2000 download an install online banking software when they could just point their web browser at their bank's servers.
It's not the native apps that's anachronistic. It's the mobile web that is.
What do you think? Post a comment, or talk to me on Twitter: @mbrit.