Technologists and investors are predicting that desktop is over and online applications are the future, while slashdot posters, at least once a week, argue over this silly Desktop vs WebApps issue. But what is a web application?
Paul Graham, who is well known not only for his writings on Lisp, but also for creating the first app of this kind, once characterized a web program by its ability of executing counterparts of "New/Edit/Save File" on a server, preserving a visitor's state in between.
But what do users think when they hear "Web Application"? Why would they want it? Most would agree that expected web-specific features are:
Web applications are accessible from anywhere, along with the data you create and manipulate with them.
Web applications do not require you to install anything.
Cool: access from anywhere without annoying installers.
But what if I took the code of Emacs and modified it to save and load your documents using the same site via HTTP. Will that make my new Emacs a web application? You can access your documents from anywhere this way, can't you? But hold on, there is still that archaic download&install Emacs nonsense. Well...
How about YouTube then? YouTube requires you to download and install a hefty Flash runtime, would you say it makes YouTube more "desktop" now? How about web version of QuickBooks? This popular web app needs (and asks you to install) an ActiveX control from Intuit site and works only in IE.
To think of it, any software can be logically broken into three large components:
The Code.
A run-time system this code runs on.
Your data that the code operates on.
But you can have any combination of those three to be downloaded. And slicing this pie into local and remote pieces does not really mean anything. More often than not, when people say "web app" they simply mean that run-time is the browser (i.e. local) and it runs JavaScript code (downloaded) that cooperates with some remote code and uses a combination of local and remote data.
Some sites are 100% flash, i.e. they really don't need HTML and JavaScript with DOM; in other words they actually don't even need the browser, only the Flash runtime. Which needs to be downloaded, by the way.
Alternatively, some applications (like Pikluk Browser) are obviously desktop-based but they're using locally stored HTML pages with JavaScript to compose the entire user interface. We could also have served a user-customized XUL code for our browser directly from our servers every time you start it, turning it essentially into a FireFox with dynamic user interface downloadable on the fly.
You see how artificial this classification of desktop vs web really is? A developer can pick and slice his or hers program into online and local components any way he or she chooses.
Thus I see no reason for my imaginary HTTP-based Emacs not to be called a web app. Therefore, why don't we agree that Web Application simply means dynamically downloadable code. It just happens that browsers are the most common and widespread runtime system that supports this in a relatively secure fashion.
And a runtime can always be replaced. Flash is already gradually reducing the importance of it.
This brings me to my second question: if a web application does not really need to run inside the browser, why does everybody expect Microsoft to ship an online version of their popular Office suite in a manner similar to Google Docs? Why don't they simply make Word&Excel slimmer and dynamically downloadable via some URL and add an HTTP storage support with basic collaboration features to them. This way they'll be delivering exact same "documents everywhere" capability without being so badly handicapped by a weak runtime provided by a typical browser.
Can we see past the browser? Can we accept that browser is just a runtime library and stop making a fetish out of "running inside a browser!" nonsense?
I want a standardized, powerful and open web platform. Something which is designed for delivering dynamic online apps, as opposed to an ancient legacy system built for serving static pages of text with pictures.
Google docs and Zoho Apps are a joke - their "word processors" are weaker than WordPad, which appeared in Windows 95 and had always been nothing more than a "toy editor" ever since. Now you stick THAT into a browser and declare it an Office killer just because I can access my primitively formatted documents from anywhere? Come on, the "anywhere" part should not come at expense of losing 90% of other features.
Make no mistake: I am not a Microsoft proponent, I'm just kind of sick of this "software inside of a browser is the future" nonsense. Yes, future belongs to web applications, but I am not so sure that browser, with it's weak runtime and close to non-existent programmable graphics, should remain a necessary vehicle for it. Who is going to step up and give us a true web platform?
When will I simply type this in my terminal to instantly start playing hardware-accelerated Quake 7:
$>http://idsoftware.com/quakeseven
Adobe AIR appears to be close to what I am asking for, but I have expressed my concerns with its proprietary nature. When surfing through AIR documentation I noticed how they always supply the word "free" with mandatory "as in beer" disclaimer.