So, as a very early adopter of what's now being called AJAX (short for asynchronous JavaScript and XML) I find myself thinking about how different this is from the original idea behind thin-client apps. It seems clear that the definition of thin continues to change as the standard of computing changes.
It was clear in 2000, when I first implemented a JavaScript, XML and XSL solution that required the browser to request and process XML in JavaScript we were limiting our browser client to IE5. How different is this today? Is there really such a standardization of language and object model that we can not make browser specific assumptions? And if we have, how different is this from developing a thicker client (say a full blown Windows app)?
I would contend that the idea popularized now as AJAX is a stepping stone back towards thicker applications. I mean, what is the browser with JavaScript other than a rudimentary virtual machine? Rather than trying to piece together a solution in this way, why not develop for a real virtual machine targeted at thin client display.
It would be different in concept to current VMs (like the Java or dot Net VMs) in that it's purpose could be entirely display oriented. Probably still centered around HTML. But why not provide a level of portability between client and server such that you could even develop server side components that could optionally be pushed to the client.
Some of you will say 'this is Java' you're describing. But Java has notoriously failed at cross-platform UI (probably because it chose not to limit itself to the browser). Java ended up too bloated and still machine dependent. What if we had something that fit in the browser, where the browser was the app console if you will.
The idea is probably not well enough defined, certainly not distinguished well enough from the existing technologies, but something tells me there's merit in it.