If me from 10 years ago met me from today, we would have an argument about web technology.
Past me would think that I'd forgotten my roots, and gone a bit mad by only coding native applications.
So what I've come to realise over the last few years is that like many technologies, the web has been shoe horned into being used for something it's not good at: applications. When I use an application on my Mac, I expect that when I press a button, the user interface response to that button is instantaneous — whether that be to immediately perform a specific action, or to show some indication that my activity is occurring and I need to wait.
do this, but more often than not these responses are delayed and result in indeterminate activity occurring without any visible feedback. In the worst cases, my entire "application" flashes white and reloads while I'm using it.
AJAX and dynamic reloading of components has reduced this a fair bit over the years, and apps like Gmail do a fine job of hiding these inadequacies — but they're still not as fast or as feature rich as desktop mail clients.
There's a far bigger issue, though — are web pages really a good medium for providing application-style interaction in the first place? Is this another case of using a tool because we know it, not because it's actually a good tool for the job?
I'm interested in opinions and experiences here — I've worked on both sides of the fence, and I'd no longer suggest a web app to a client in place of a native app without very good reason to do so, because web apps are a compromise in functionality on so many levels. Yes, web apps let you target multiple platforms at once, but when did that ever produce the best experience? (I'm looking at you Java, Qt, WxPython, etc, etc, etc).
All that being said I don't disagree with Joe Hewitt's piece on web technologies (http://joehewitt.com/post/web-technologies-need-an-owner/
) — there seems to be an arrogance in the web community (not individuals) that the web will always be relevant. But if the next generation of users care (and they do seem to) about whether there is an app for whatever service or task they're performing, where does that leave traditional web apps?
Have at it.