Everywhere in the software development world today you hear about mobile apps. iPhone, iPad, Android, Symbian, even old J2ME. More and more on-handset applications available, 100,000, 250,000, growing and growing, from GrandTheftTrademark LXXVIII to 2 Gerbils, 1 Cup. It's almost as if the mobile web has ceased to exist, after all, WML is all but dead, and with the customizations needed to get XHTML to display properly on all devices you might as well be writing a custom app for each one.
We've seen this story before. Desktop apps were all the rage once. Instead of connecting to a mainframe and getting your thin slice of time, or even worse waiting for your batch job to get scheduled, you could run on your own machine at your own speed. Freedom. And yet, day by day desktop apps are being replicated on the web. Sometimes better than what was there before. Increasingly they are replacing desktop apps altogether. Personally, I've seen the desktop apps I use fall one by one as more and more migrate to, or are subsumed by, web apps.
Mobile is following the same trend and in the Kurzweil Accelerando sense, this will all happen much faster than it did with desktops.
The reasons are many but the concept is simple: programmer motivation. Anyone who has written mobile apps knows what a pain in the ass it is. Not only do we often have to deal with out-of-date paradigms - Objective-C, J2ME - we get stuck in the need to customize the app for virtually every handset to provide a good user experience. The whole process is obese with process and, most importantly, it isn't fun. Testing and debugging also present special problems. And don't even get me started about the installed base, compatible versions, migration. You end up spending most of your time getting the app to work right on the Samsung Hentai-XXX1007i that the executive who approved the project has, instead of making cool new stuff. It's a situation worse, far worse, than when we just had to provide Windows, Mac, and sometimes Unix apps.
Mobile browsers are approaching parity with their desktop cousins. The same can be said with processing power, memory, storage, bandwidth, screen resolution. Soon there won't be any need to create separate mobile versions of your app, or any separate versions at all. Write once, run anywhere will finally have arrived. And better than it was envisioned - you won't have to install anything, download anything, worry about spyware crap, local diskspace. The mirror image of the Cloud is an unhooked User.
Write Once, Go Everywhere.
Now get out and start hacking the mobile future!