Mobile Web from the Perspective of a Javascript Developer

There’s a talk from Alex Russell about mobile web development up on IT Conversations. The title of the talk is “AJAX and Mobility”, which is actually misleading (as is my own title, since Alex isn’t really a Javascript developer only, he’s got experience all up and down the stack). He’s actually cautioning against going toward AJAX on mobile devices, having solid base primitives that really support the unique capabilities of a mobile device are way more important than trying to replicate AJAX.

His commentary is right on, and refreshing to hear it coming from someone who does a lot of Javascript online right now. Sometimes I think I’m insane for saying the mobile web isn’t ready for AJAX if the base functions don’t work yet. Maybe I’m being too conservative and I’ve somehow missed the boat on a new iteration of engineering on the Wild Wild Web. Maybe I’ve gotten too old. But then you see a few great new efforts flame out under the weight of their own development process and user base, and reality start to creep back in. Seeing an experienced developer or two express the same sentiments helps ease my nerves as well.

If you think I’m full of hot air for saying some of the things I saw, try out Alex’s take instead. His points about not having a reusable endpoint for application service on a phone is interesting. You have a phone number for voice and SMS, and you have a URL for web services, but there’s nothing really the same for installable applications (not yet at least, this is one of the reasons GetJar is interesting). I also thought his list of features the browser needs to grow directly were very interesting:

  • Access to location information
  • Access to the voice channel
  • Access to the camera
  • Access to contacts/address book

I keep hearing that list over and over again. Frequently the reason stated for not including the stuff is “security issues”, which is hard to argue against because so many folks currently would gladly give up tons of freedom in exchange for a little safety. But there’s no real reason for that. If I as a user want to send my location information to a service the system should allow that, and claiming security as the reason not to provide it is just a cop-out.

The point I disagree with Alex on is open source in mobile making a difference. I do see potential for folks like OpenMoko and the Firefox Mobile effort to really shift the playing field. If for no other reason than they can provide platforms that fix those four deficiencies in current mobile browsers. And once the mobile web is really setup to be able to win, things will tip in that direction. Users will bother to download and app and keep using it if that app is a genuinely advanced browser that gives them access to a whole bunch of other applications out on the web. Users will get a handset so that they can share their data online the way they want if the applications are out there to do so. I see open source as the only way to bootstrap that process. The carriers aren’t going to do it, existing manufacturers aren’t going to do it, and web app owners can’t do it on their own.

Listen to the first question from the audience too, it’s a gem. Some guy asking vaguely “On Windows Mobile with a GPS you can already use .NET to expose an interface to Javascript you can use from IE, why does location need to be built into the browser?” Ah, the world of mobile. Some people are just so beat down they’re completely incapable of thinking through anything new.

This entry was posted in ThisIsMobility. Bookmark the permalink.

One Response to Mobile Web from the Perspective of a Javascript Developer

  1. Pingback: Mike Rowehl: This is Mobility » Blog Archive » N810 Geoweb Launcher

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">