Provocation: with Google Gears, is it still a web app?
Reasoning with architectural blocks, this sounds very good to me. Indeed I'm a big fan of applications that can work in disconnected mode and replicate the state among different nodes (for now I won't go in further details about the fact that I largely prefer applications where master data is on the user's hardware and the server has just a replication, which is different than the Google Gears model AFAIU). Indeed the capability of working in disconnected mode is the main reason I've been criticizing the idea, pushed by many, that one day the whole world would be a web application. In my mind, applications with local state are RIA, Rich Internet Applications, not web applications. So I see Google's move as a way to admit that the pure web app paradigm won't catch (all) the world.
[The following paragraph has been edited to fix some ambiguous or incorrect use of the terminology, as pointed out by the first comment below; further small edits are in square brackets]
Now let me clarify. A RIA is a kind of web app. My point is that the webapp advantage arises from the concept of "thin client", as it was e.g. used by Sun around ten years ago, at the age of the (soon died) JavaStation:
- Since data are not stored in the client, you can access all of them everywhere you have just a browser, e.g. in a pub or a restaurant.
- If the client hardware breaks down, you don't lose data.
- So, you're not responsible for backups, the service provides is in charge for them.
- You don't have to install and maintain software in the client platform.
This is not just a matter of words: my point is that every time I've been requested to design a system with a web/thin client, it was related to some or all the above points being part of the requirements.
Now, having a stateful client, which - yes - is a local cache but it can hold for some time data that aren't elsewhere (i.e. between two replications), disrupts at least partially some of the points above. In the period between two replications you can't access those data elsewhere, you have to take care of backups, if you break your PC your data are gone, etc... This sounds just as a ["desktop"] RIA to me [, moving things off the original concept of thin, web apps].
Of course, I'm thinking by extreme and I'd like to provoke some thoughts here - I admit that in the real world there are many shades of gray. Also, I've strong feelings about this, but not a final opinion. What do you think?
PS There's still the "zero admin stuff". But in a world where any fat client can be more or less easily upgraded (today everything and its dog has an update center), do webapps still have a strong advantage? Keep in mind that the local database will make that "zero" a bit heavier...
[For correctness, I'm including the original paragraph that I've edited above. Please don't consider it for the discussion, as terminology was not correctly used]
Of course, please don't focus on words but on beef. Looking at WikiPedia's definition, "... a Web application or webapp is an application that is accessed with a Web browser over a network such as the Internet or an intranet.". This still holds true for Google Gears. But the next sentence is "Web applications are popular due to the ubiquity of the browser as a client, sometimes called a thin client.". Of course, we could even discuss about the meaning of "thin client". To me, the original meaning is what Sun spoke about around ten years ago, at the age of the (soon died) JavaStation: a thin client is mostly a stateless client, with the following properties: ...