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.
On a metaphysical level it was nice to have another day off from work. On a realphysical level, it was nice to get back into the routine. And not having to walk all the way from the entrace of Navy Pier to the back. It was a 10 minute walk and I was trucking it.
I took a picture of Colin with my cameraphone, and I was all excited cause I found out the USB cord for my real camera connects to my phone, too. But when I connected it, Windows couldn’t find the software, and so, no picture.
Colin was a great presenter, and I applaud him for presenting for essentially 8 hours (he kept saying 9, but that included the lunch break). I guess when the name is “ActionScript from the Ground Up” I shouldn’t have been expecting any real advanced coverage of the topic. I got a great review of OOP, though, and I’m sure for all the Flash “design” type people there, it was way too fast. It was essentially a 9 week course crammed into 9 hours with no time for homework. So, yeah, I’m sure there were some minds blown. But I also am sure there were people who were bored out of their minds. I was close, but I hung on and managed to pick up things here and there even in the OOP stuff. That said, I’m pretty sure I can skip his book (sorry Colin!) since the reviews on Amazon say that it goes a lot into the OOP stuff. But that frees up some cash, so I can get the RIAs with Flex and Java book I’ve been wanting forever, or else Adobe’s Flex 3 training book. And for Adobe, I think that was the point anyway; just to get people more exposure to ActionScript and make them more interested in using it; so they can stay on top of Silverlight.
I overloaded myself with the Flex/ActionScript by reading my Flex 2 with ActionScript 3 book on the train and bus to the event. Now, I will try to busy myself with a game I’d like to develop using Flex/ActionScript, and try to also fit in an extra credit project at work using Ruby on Rails. My FA side project will be a good one since I can probably move quickly to advanced Flex/ActionScript concepts since the languages are so similar to what I already know. The RoR project will have a bit more of a learning curve since I’m still getting to know Ruby.
Just an FYI (while I was finding the picture below), I came across this TIOBE software site that ranks programming languages. As of Dec 2007, Ruby is at #9 while ActionScript is #25 (glad to see it’s at least that high; MXML doesn’t count as a programming language). Java is #1 with a 20% share, so I guess it’s good that I’ve got that one down pretty well.