Web based or not ?
Ajax-driven web applications are flourishing all over the web, and offer more and more impressive features
The differences between what we can expect from desktop and web based applications are getting smaller, and these two types of applications are now in a fierce and direct competition. From a technical standpoint, those new applications (as opposed to traditional and not outdated desktop applications) suffer no critique, they're just stunning. Unbelievable features are added every day, and we're probably going to see a lot more in the near future. But is this really useful ? Aren't we just in the middle of a race of technical leadership with no regard for "user legitimacy" ? Does it makes sense to get everything running inside a browser ? As you may have guesses, there's no black-or-white answers to these questions but a couple of things that could be worth being taken into consideration.
Web-based applications from a development standpoint.
Going the web based way makes a lot of sense. While this post is not meant to be a list of pros and cons of web based over traditional applications, a few things are worth being mentioned.
No-hassle updates.
Since the company / start up which develops the product is also hosting it, updating the application is just a matter of minutes (compared to years and years with traditional software). Since everybody is running the same version of the app, developers don't need to worry about backward compatibility or similar issues.Unique development environment.
While this is not 100% true (due to browsers inconsistencies), the benefits of developing for a unique platform are probably a good reason why this type of applications are so popular these days.
To illustrate those two points with real examples, let's take a look at Gmail and Backpack
They're both rolling out new features on a regular basis and in with a traditional software, that would mean shipping new CDs, having a strict naming convention ( 1.0 , 1.1 ...), users running different version will certainly increase support costs ... They both don't have to worry about all this, and can improve their apps daily without having anyone worrying about anything. Users are always running the latest version.
Web-based applications from a user standpoint
The best feature of any web-based application, is to have our data centralized in one place and being able to access our data from anywhere in the world, as long as we have an internet connection. How many times did you read your emails from a Starbucks, from School Computer lab or from anywhere else. Isn't that sweet not to be tight to one computer. It's been around for a long long time with email services, but this is now more limited to email and that changes a lot of things. Your data is always synchronised, RSS, emails, word document, spreadsheets, powerpoint presentation... everything is always synchronised. You don't even need your USB Key anymore... ok, this might not be true, but you get the point.
Of course, you have other benefits when using web based over traditional applications. One that seems to be much appreciated is the no-install process. You can IM your buddies, even if the evil IT admin has blocked MSN Messenger traffic at your office. You can listen to radio even if you don't have iTunes installed, you can do a lot of things directly in your browser. And this brings up another benefit of using web-based software, everything is running under the same hood, i.e, your browser. Fire up Firefox / Safari or anything else, and you'll have access to all these wonderful apps from one and unique place. No more bloated taskbar, only handful tabs and bookmarks... isn't that great ?
Limitations of web-based applications
Unfortunately, not everything is wonderful in the web-based applications world. As stupid as it may seems, browser have not primarly been developped to listen to the radio, to do wordprocessing, powepoint presentation, image-editing or anything like that, the main reason why they were developped is, you guessed right, to browse. This implies that as technically advanced as your app can be, it will always face the browser limitations. As browsers haven't been built to do various things at the same time, they can become memory hogs after intensive use of some web-apps. Internet Explorer is famous for its memory leaks, and Firefox is often considered as a memory hog.
Even if each new web app pushes the limits of what can be done inside a browser, some people are having a hard time trying to do what they used to do in traditional software (think right click, drag and drop...). And this is where hybrid applications enter the game
Hybrid applications are meant to rule the internet
Now what about a unique kind of application that can take what's best in both world and combine it to provide a revolutionary experience to it's users ? Wouldn't that be great ?
Without going into too much technical details, this has become possible thanks to APIs. Here is how Wikipedia defines an API:
An application programming interface (API) is the interface that a computer system, library or application provides in order to allow requests for services to be made of it by other computer programs, and/or to allow data to be exchanged between them.
To put it even simpler, an API gives access to your data to anything that can request it (and is authorized to do so of course...). Desktop applications are now able get your data synchronised. You can now use the power of desktop apps and the synchronisation provided by web-based services, at will.
To illustrate what's been said above, let's take a look at what Flickr and Apple Dashboard's are offering:
Flickr is an online photo management tool. There's nothing revolutionary about putting your pictures online for others to see, Kodak Galleries, Yahoo Photo have done that for a while. But what makes Flickr special (and successful) is the release of an API, that let's you do whatever you want with almost all the pictures stored at Flickr (including yours ! ;-)). A perfect illustration of the use of the API is Flickr uploadr. It's a small app you can use to upload your photos on Flickr. And I can tell you, that's neat. Uploading content through web based forms has always been kind of clumsy: You get no feedback on how long it's going to take, multiple uploading is somehow chaotic of most sites I've tried, and don't accidentally close that browser tab or you're good to do it again... Heavy use of Ajax makes it a little bit easier these days to upload files through a web page, but can't compare to desktop applications. Flickr uploader lets me drag and drop pictures, tag them all in once, updates info already on flickr , switch accounts and even tell me how much upload bandwith I have left for the month. That's just perfect. I am now using Flickr on a daily basis and thanks to its web-service nature Flickr is accessible from anywhere in the world. Best of both world I told you !
Apple has soon got that, and is offering similar features, through its widget dashboard, built right into its OS. If your the web based application you use are offering an API, you can read, edit, delete data and get it all synchronised from the comfort of your desktop. That's just awesome !
Application that got it right, are those which are giving the choice to their users. It's your choice to use:
- - Email client or webmail
- - IM client or Web based IM
- - PHP myAdmin or any MySQL Front-end
- - Any RSS Reader client or web based readers
- ...
I personally prefer Desktop application over web-based applications, but I appreciate being able to access to my data from anywhere, and get it synchronised over multiple applications. Props to Flickr, 37signals, Google, and every company featured on Programmable web for offering APIs. The revolution is on !