I declare that emphatically because I want it to be so. I’m sure I’m not the only code monkey out there praying that “write once, run anywhere” doesn’t leave us like ###… Even now web developers have to test across at least 3 different browsers,* but at least things are trending towards standardization and it’s becoming easier to create a web app that will behave the same independent of a user’s choice of browser.
Smartphones pose a serious threat to that ubiquity in the same way that the differences between Windows, Mac OS, and Linux made developing desktop apps an elephant-sized pain in the ass. Web developers have long wished and advocated for browsers that run everything the same way. While that is probably never going to happen, the difference between developing for IE, Firefox, Chrome, Safari, and Opera is much (much much) smaller than the difference between developing for Windows, Mac, and Linux.
if (Portability > Usability) then ?
There is a reason that desktop-style web apps are popular. Yes, people still use Outlook, Thunderbird, and many other fat desktop clients for email, but there’s a reason that there’s 300 million people using Yahoo Webmail, Gmail, Hotmail, and AOL Webmail (I extrapolated that number from these percentages of market share), and that given the choice, 49% of people choose Gmail as the best email client. There’s also a reason that Google has basically given a big fat middle finger to native iPhone apps with their Gmail client in HTML5 (and now Google Voice web app, also in HTML5). There a reason that there’s a lot more “mobile touch” web sites than there are iPhone and Android apps. There’s a reason that I get practically all of my links from Read/Write Web and not Read/Write Native Smartphone App.
That reason is Portability. That is: I can run a web app from anywhere on anyone’s computer (or phone) as long as I’ve got internet access. So, while a client like Outlook or Thunderbird offers a slightly faster response time and some extra features, if you use one of those and don’t use a web-app version in addition to the desktop client, you suddenly sound like someone who doesn’t really know how the internet even works (do you really want to be the person who says: “I have to check my email on my home computer”?)
And for the second part of the equation: Usability – the gap between web app and desktop app is getting smaller every day. Web developers continue to push the limits of what web-based applications can do with respect to speed and user interfaces. Sure, web apps (even the good ones) are slow compared to native apps when they’re running on a (relatively) slow phone with a (relatively) slow 3G internet connection. But the speed of the phones and the connections is improving even faster than the speed of the apps themselves.
So, now take the difference in Portability (we’ll say this difference is a fairly large positive in favor of web apps) and add the difference in Usability (we’ll say this is slightly negative with respect to web apps) and then add in the fact that you can write a web app in one language and have it run on every single phone and computer with internet access and see if you don’t come out with a conclusion that says: HTML is the Future.
And, if you want some awesome tips for developing in HTML5, check out Alex Bosworth’s post.
* Yes, all you Opera and Safari heads, I said at least.