In response to comments from various mobility bloggers, including mine, Ajit Jaokar has written part 2 of “Mobile web 2.0: AJAX for mobile devices – why mobile AJAX will replace both J2ME and XHTML as the preferred platform for mobile applications development”. A very good essay that I recommend you read.

Ajit did a good job summarizing and clarifying a number of points that he'd made on Part 1, and that I'd disagreed with: 1) on Mobile AJAX replacing local/rich and XHTML clients, and 2) on when Mobile AJAX is applicable and when it is not.

I'll start by saying that I do understand the disruptive potential of AJAX in the mobile space. But I don't believe Mobile AJAX will replace rich/local clients – there is a place for browser-based applications, and there is a place for rich/local clients. And Ajit clarified that – his point is that the majority of the mobile end-users will use applications that are mobile AJAX-based. Note that while Ajit says AJAX, I say browser-based — I make no distinction between the two – a browser-based app may or may not use asynchronous communication using JavaScript, and still be widely used — a good example is the current, plain but useful Weather.com and Google applications on mobile handsets. I do understand that AJAX will make browser-based mobile applications better, more dynamic – like browser-apps on steroids.

I like Ajit's use of the 80/20 analogy to explain how and why browser-based applications will outnumber local applications. I think it is a good representation of the (expected) distribution, and it goes inline with what I am saying that there are times when the browser-based approach vs. rich/local applies. But AJAX is not the reason for the 80/20 distribution. The reason for the 80% is that most of the mobile usage is just about fetching content and rendering it to the user – that's it, searches, weather, sports information, email — and browsers satisfy that very well. It is known that browsers are, after text messaging (which in turn comes after voice) one of the top usages of mobile handsets — and this is regardless of AJAX. The other 20% would be about advanced rich clients (native or Java ME or BREW, or as Debi pointed out, Flash, and so on) that use messaging, and location, and multimedia, and advanced graphics, and persistence, and all the advanced features that are needed for those types of advanced applications:

M:Metrics Benchmark 2006

[Source M:Metrics press release March 6, 2006]

Will AJAX shift the above 80/20 to let's say 90/10? Probably not, 80/20 sounds about the right distribution. But I will add that the 80/20 distribution is when looking at this from the horizontal perspective – if we look at individual verticals, such as gaming, non-browser-based applications outnumber, and will very likely continue to outnumber browser-based ones.

Browser runtimes or containers such as Opera and others provide or will provide access to native functionality (for the record, I run Opera on my desktop and my handset, but haven't spend time with their SDK yet). But for Mobile AJAX to reach its full potential it must go beyond a single vendor, beyond Opera, and in a standard way, which means standard JavaScript objects and methods, services, and behavior. In the meantime it is fragmented. And, the minute such platforms provide access to those native APIs or capabilities, which are considered restricted by many network carriers, we will get into the same issues that native and Java ME applications get into: privacy, and security, and signing issues. Do I now have to sign my browser-based application as well? And let's not forget that creating web sites or server-side mobile applications require "special attention" – device management, transcoding/transformation vs. “hardcoded” mobile websites, .mobi or not, (lack of consistent) CSS support, possible re-download of large amounts of AJAX JavaScript (which translates to cost), and so on.

But at the end of the day, it is the the end-user, and the industry who will shape this space — let's wait and see. It is interesting to me though to see what the developers themselves, the ones who create mobile applications based on customer needs or opportunities they see, think about this topic of Mobile AJAX. Below are the results of a poll I did on my website as part of my response to Ajit's Part 1 of the Mobile AJAX essay:

Results for Mobile AJAX vs. Java ME?
(Responses: 189)
Java ME will rule: 42%
Mobile AJAX will rule: 10%
They are complimentary: 37%
Does it matter?: 12%

You can find the poll here (click/expand the line item Poll: Java ME vs. (Mobile) AJAX)

In conclusion, browser-based mobile applications, with AJAX, have great potential, and will be widely used – and browser-based mobile applications already are. Rich/local clients will too. Browser and local/rich clients are both complimentary. The 80/20 distribution sounds interesting, and it applies to the mobile usage when viewed from the horizontal/broad perspective.

I am looking forward to browser-based mobile applications "on steroids" using AJAX, and for browser containers that provide access to native functionality using a common, consistent way — it is up to the browser players to get together and make that happen. (BTW, browser players should also get together and standardize widget authoring). I am also looking forward to, and will help define, the convergence of browser and Java ME clients through the new JSR 290 APIs, whose goal is (or should be) to allow for (rich/local) Java mobile applications with browser-based functionality. In the meantime I say "think forward, but deploy today".

Related blog entries:

* The Web 2.0 from a Practical Perspective

* Will AJAX Save The Day (for Mobile Apps Development)?

[Image source: OpenGardens / Future Text]

ceo