Great post - while web apps are 'behind' native right now, it'll only take a few more APIs to make webapps the natural choice. And, developers to start working with them of course (local storage, geo, viewport, etc).
Great post - while web apps are 'behind' native right now, it'll only take a few more APIs to make webapps the natural choice. And, developers to start working with them of course (local storage, geo, viewport, etc).
For example even putting together a basic UI for a simple todo list is a challenge for me to do in HTML. I need to know HTML, CSS, positioning, differences between mobile browsers, platform-specific css tricks, etc. It is really not so simple.
On iOS I just drag and drop stuff in Interface Builder and connect outlets and actions. Done.
The other thing is standardized frameworks. Everybody hates frameworks but on iOS (and Android) they implement all the hard stuff. Want to show a list with a million items? There is a framework that deals with that. Just fill in the blanks (create table view rows, lookup data) and you are done.
In the HTML world not so much. It is all way too low level. Developers either have to start from scratch or use something like jQuery. But all those frameworks are young and inherit the basic problems of the web platform.
jQuery Mobile is a good start, but some things really need to become part of a W3C standard and implemented natively for performance in my opionion.
Think of the "AJAX boom" of around 2005. XmlHttpRequest had been around since late 90s, but only then mainstream developers understood the potential for building more responsive web applications.
Although I agree with your point on the different layers, and different technologies, its worth considering the reach of a web-app, and the theoretical develop once, deploy on the most important platforms (iOS, android etc).
> theoretical develop once, deploy on the most important platforms
After all those years that's something I won't buy :) Today's html documents are still filled with "ifdefs" for different MS browsers and special css selectors for every major html rendering engine.
Testing a webapp for compatibility with common browser/os combinations must be hell.
But there are other reasons why I tend to avoid webdev:
There are considerations like security. If I deploy a desktop app and one user gets hacked because I messed up then this one user got hacked. Depending on the bug hacking more users tends to be non trivial.
If on the other hand I have a glitch in my web app suddenly all my customers' data is in danger because all the juicy targets sit in one place waiting to be mass-hacked by a script.
I hope that webapp shops hire a full time security guy for their apps but ... who am I kidding ... most of the apps probably run on unsecured boxes and have a dozen of (forgotten) developer backdoors in them.
Security is just a huge and complex issue I wouldn't want to deal with. (And couldn't to be honest.)
Yes, of course they're real closures.
Of course, nowadays you can do the same by using javascript both server and client side...
I didn't find this persuasive enough to use GWT myself, mind you. :-) But it does seem like a valid reason someone might want to use it.