I'm afraid I'm already familiar with your rhetoric.
All I am saying is that there has to be a better way to build web-aware networked applications.
Web browsers like FF, Chrome, Opera, Safari, etc -- they all treat the resources they fetch as documents. Sure it's archaic by our human notions; we've been building interactive applications inside of them for years. Yet the tools we build to do this are only tricking us and this is my major point. We see fly-out menus and pop-ups that insert information into the "page" when we close them; but even then we cannot escape the metaphor. No matter how many layers we make on top of it, there's an impedance mismatch between the language of an interactive non-linear application and a document model. So while we think of websites like Facebook or applications like gmail as rich application interfaces, the browser just sees them as documents and I see them as clever hacks.
In developing these applications with the current crop of technology we must constantly be aware of a cognitive dissonance. An application wants to pass data to the user and update its display but in order to do so another layer is required to map that data into a document model. We make clever abstractions to make it look very much like an intelligent interface widget for the application programmer's sake, but in the end it's not and we are forced to be aware of that.
For applications where the final representation does happen to match a document-model the impedance mismatch is really low and the application code tends to make a lot of sense.
But for more sophisticated application interfaces, these really complex abstractions are required. Tools like Morphic, GWT, Parenscript, and Pyjamas are written so that application developers can write programs that update UI code without having to translate their data structures into the document model. There's a point where maintaining that side of the application is cumbersome and not worthwhile. Yet even these powerful tools make their short-comings painfully obvious.
They make it hard to support all the different browsers. The compilers have to be extremely sophisticated. They're generating code that will be compressed and sent as plain-text to another compiler at the other end which has to interpret the results and which ultimately updates a document model. This is both brilliant because they got it to work and I doubt I'd be able to write such a compiler myself in any reasonable amount of time but it's also incredibly stupid IMO because so much effort was spent working around the problem instead of solving it.
(The evidence of how crappy this can be, try the Google Wave preview in any browser but Chrome. Then try it in Chrome. Google can't improve the JS-generating compiler in GWT fast enough that instead we're back in the mid-90s where sites are optimized to the browser).
There are better ways for delivering sophisticated interactive GUIs across the web.
X, VNC, XUL, SVG, Cairo; stateful application protocols.
It would be nice to be able to be sitting on my Ubuntu desktop to click on an application icon and run it like a local application in my native window environment. Then when I'm done I can close it. If later I want to return but I'm out and about I can open up my Macbook and open it up there. Same application, same state it was in when I left it, same data, and it happily lives in my native environment there.
As an application developer I want my application to be the same kind of first-class citizen as any other in a users' environment. I don't want my interface to be limited by a document model or require large amounts of engineering effort to work around one. I definitely don't want to tell my users what browser they should use to access my application (then neither of us are in control).
Ultimately I think we both want the same thing.
I'm just not convinced that the tools currently popular and available are the best ones for the job.
I think we can do better.