Is Javascript the future of mobile development? Phonegap says YES!
Javascript has become the language of choice behind RIAs in the past few years. While Adobe Flash carried much of the initial momentum behind RIAs, as soon as "AJAX" (HTTPRequest object circa 2001) came into the mainstream Javascript eclipsed Flash quickly. The widespread and even legacy support of Javascript is unmatched. Javascript has also been around long enough to for web programmers to have a grip on it. On the other hand, Actionscript has changed drastically as it's evolved. Each version release has contained a learning curve. Though it might not be a steep curve, the modern version 3.0 is a far cry from "Actionscript 5" which boasted "dot syntax" for the first time as it progressed toward a more object oriented pattern. The nail in the coffin for Flash as an RIA platform arrived about two years ago. No Flash support was provided on the iPhone. With many millions of iPhones sold, that's a very large user base to neglect.
While Javascript is by no means as robust as C, Java or Ruby, Javascript has made it's way into many open source libraries, projects and has more than proved it's ability to provide a desktop app quality experience on the web. Want an example? Take a look at Google Docs if you haven't already.
So what does this mean for mobile application development? Currently there are three main platforms: iPhone, BlackBerry, and Android (Google's mobile platform). Each of these requires development using a different language as requiredby their native operating systems. This means that you would need three teams with three different skill sets working on an application you were to deploy on all three. What if you could develop native applications across all three platforms using your in-house web development team instead and make your app accessible via a plain old web browser as well? With Javascript and phonegap, this is now possible. The three frameworks (one for each platform) provided for each of the platforms allow you to run Javascript applications as native applications on the phone - fancy icon and all. The included Javacript library allows you to access some native phone features (contacts, camera, phone, speaker, virbation etc.) through one library and one familiar language. While many of the phone's native functions are not yet accessible the roadmap is clear and the project is young. Over time I anticipate we'll be seeing more and more applications deployed using Javascript. Really though, who wouldn't want to cut development cost by two-thirds?