Been here in Portland for a couple days for the start of OSCON, but still recovering from Egypt time… :D Some notes on the Open Mobile Exchange sessions…
A lot of the sessions told the same sad story. To make a long (sad) story short:
The good news:
Highly-capable “real web” browsers are here and becoming more widespread. WebKit, Gecko, and Opera-based browsers are shipping now on various devices or available for installation, and the Mozilla folks are working on a next-generation Gecko-based mobile browser.
Making the “mobile web” actually able to reach the real web is a huuuuuge boon:
- People can reach sites that haven’t been optimized for mobile access (eg, 99.99999% of the web)
- Mobile-targeted versions of sites can actually look good and be useful
- Developers finally have a chance in hell of testing their mobile-targeted sites — the desktop versions of the browsers provide many of the same capabilities as the mobile ones, so you can preview faster and more reliably during iterative development.
The bad news:
Oh, where to begin! First, the bubble-burster:
- Phones with good browsers are expensive! To reach those oft-touted billions who will own a mobile phone before setting eyes on a computer, we’re going to need the browsers in the $20 commodity phones, not just the $500 luxury smartphones.
- Phones with good browsers are a tiny, tiny, tiny percentage of those out there today — even a tiny percentage of those shipping now.
- To wit, for many years we’re going to see a lot of phones with no or crappy browsers.
Now, we can hope that Moore’s Law For Phones will push all the cool stuff into the commodity devices Real Soon Now, but I didn’t see anybody showing me evidence that it’s actually happening. Even the Symbian guys, who boast their OS runs “90% of the world’s smartphones”, realize they have only a tiny share of the total phone market.
We’ll consider this a “growth opportunity”. :)
The second challenge is that web apps today, while very capable with AJAXy stuff, have several major limitations:
- No access to native device capabilities (camera, GPS, telephony)
- No consistent system for offline functioning and data storage — you lose access to the world when your train goes in a tunnel or you get on a plane
You can get around these limitations by writing native applications, but Here There Be Dragons.
- Huge array of incompatible OSs, with
- incompatible development models, and
- incompatible application delivery formats
The “Linux mobile” people like the LiMo foundation are putting effort into standardizing some of the base software which should help with that, but honestly even us Penguin lovers hate that it’s virtually impossible to build a distro-independant package for the desktop and server Linux worlds. Do we really expect it’s going to be different for mobile Linux?
Even if that was solved, you still have to produce your Windows Mobile, iPhone, Android, and Java FX Mobile 2ME P2P WTF versions just for starters.
It seems to be everyone’s hope that native apps will “fade away” in importance as web apps become more capable.
But this is going to depend on the various browser makers and device makers agreeing on some things:
- Sensible offline code & data storage. There’s motion on this with things like Gears and HTML 5 work, so I’m optimistic here.
- Creating, then hopefully standardizing interfaces between web and native capabilities. This feels like a coming browser war… worst case is we can hope that JS libraries will abstract away the competing interfaces. Sigh.
So in the meantime, we’ll all make our pretty little web apps, churn out the occasional iPhone or Android or Mobile Linux app to use geolocation data or the camera or work offline, and wait for things to get better.