Bob Moore's Coding Tips

Web Applications - Bad Idea 101

There are lots of people out there that make a simple equation : web = good, therefore application in a web browser = good. At first sight, this seems like a compelling idea. Ubiquity's got to be a good thing right ? Access our application from anywhere, right ? Got to be a larger market when anyone running a web browser can access our code, right ?

Wrong.

The World Wide Web was originally designed for one purpose and one purpose only - to allow the sharing of documents between scientists at CERN and elsewhere. Basing it upon a static markup language derived (massively simplified) from SGML was a very good idea. Sadly, it introduces limitations which make the web a very poor vehicle for serving up applications, no matter how much script you throw at it.

1. Poverty of Interaction

Notice how many commercial web sites are based upon flash these days ? HTML/script skills are available everywhere and cheap to boot, so why would companies want to turn to expensive Flash programming as a vehicle ? HTML sucks at rich interaction because it was designed to be a one-way static publishing medium. Flash allows the publisher to at least get some dynamism into the site without having to refresh the entire page in that painfully clunky way we're all so familiar with, but which is inherent to a page-publishing environment. It's still pretty sucky at user interaction though.

2. Poverty of Response

We've all grown used to our applications leaping to our every demand. Well, OK, Photoshop users are more used to an arthritic hobble, but you get the point. When even the simplest interaction requires an HTTP packet to bumble it's way halfway around the world, interaction is, well, kinda 1982, really. Client side scripting can't resolve this problem if the interaction requires data that's on the server. Moving data onto the client can solve it, but breaks the fundamentally stateless model of HTTP and introduces environmental dependencies that we were specifically trying to avoid in our desire for heterogeneous client support... not good.

3. Heterogeneity of Platform

There are lots of browsers out there. I can think of half a dozen off the top of my head, and I don't even write much for the web environment. Each has its own quirks, and that's before we start counting up all the older versions of each one still being run. This kind of heterogeneous environment forces upon us either (a) a massive development budget, or more likely (b) a lowest-common-denominator interface, which reduces even further the degree of user interaction we can provide. Users of Baan will know exactly what I'm describing here : the understandable desire to support users on lots of platforms from a minimal codebase inevitably produces a poverty-stricken UI.

opinions page

home