Agile Ajax

Web 1.0 to 2.0: What Kind of Application do you Have?

Of each particular thing ask: What is it in itself, what is its nature?

-- Marcus Aurelius

Microscope

We get asked quite often to convert Web 1.0 applications into Web 2.0 applications. We do it so often that we've developed tools, written frameworks, published articles and whitepapers and given conference talks on the topic.

So far, there are and remain three different approaches:

  1. The Christmas Tree Approach - decorate an application with lots of Ajax widgets.
  2. The Reboot - reengineer your application from scratch.
  3. The Resurfacing - leverage the MVC nature of your application by turning your controllers into web services, your views from HTML into XML or JSON, and deploying a single page JavaScript client to access your new backend.

Which one to chose? That depends on what kind of application you have. Is it a Web 2.0 application masquerading as a Web 1.0 application, or is it really a rather dull Web 1.0 application that you need to tart up with a few widgets?

To get to the root of this question, it is helpful to take a brief stroll through the history of user interfaces. First there was the patch panel, followed a few eons later by the punch card entered program, followed by the terminal entered program and it's close cousin, the command line. Somewhere in there we had the great innovation of the full screen forms driven interface, a.k.a. the "green screen."

Next came the revolution of the GUI, with it's mouse, direct manipulation interfaces, etc. (An economist at the University of Chicago pointed out to me that a study had shown that folks using Mac's with all it's fonts and layouts got worse grades on papers, on average, than students using Wordperfect on the PC, so maybe the GUI wasn't an unalloyed boon.) A thousand flowers bloomed (from a somewhat sinister quote by Mao, I believe) and cool apps like Photoshop and Visio appeared.

Next came the web interface, which was really a major step back, as the web was really the reincarnation of the green screen with pretty pictures. And since that time, 99% of the applications we have been building are forms driven, green screen type apps.

So, when deciding which approach to take converting your Web 1.0 application to 2.0, ask yourself this question: is your application a forms-based interface because of the web and it's HTML forms or because that is it's nature?

If your application is a job application form, or a simple survey, then it's very nature is probably the filling in of forms. The best you can do is decorate this sort of application with widgets -- wedge many redundant forms into a small space with DHTML tabs, show the consequences of form changes with XHR requests to backend business logic, speed data entry with auto-suggest boxes. If, on the other hand, you're application contains within it implicit or explicit relationships that can be displayed in a visual fashion, say tasks that are positioned one after the other on a timeline, then your application is ripe for a direct manipulation makeover. Your real choice is between reengineering, i.e. did you make too many compromises when realizing your application as Web 1.0 that the controllers and views are not granular or expressive enough to support the operations inherent in your new GUI interface?

Try a simple though experiment with your current Web 1.0 application. Imagine a direct manipulation interface for it, moving boxes or arrows around and try to map out what sorts of GET and POST requests will be sent to your backend. What information will the view's send back as XML or JSON. Either it will or it won't support it. If, for instance, your applications have many, many stateful interactions -- first you do this step, then you do this step, then a third step, but never in the wrong order -- you may well need to reengineer the whole thing.

Anyhow, we'll get into some more resurfacing demos in a few weeks.

Technorati Tags: , , ,

Comments: 1 so far

  1. Now 1.0 is converted into 2.0..Is it a Web 2.0 application masquerading as a Web 1.0 application, or is it really a rather dull Web 1.0 application that you need to tart up with a few widgets? But now 2.0 is like a christmas tree decorated with an application with lots of Ajax widgets.so what is the next step……

    Comment by Web Services Company, Saturday, April 26, 2008 @ 2:20 am

Leave a comment

Powered by WP Hashcash

About Pathfinder

  • We design and build extraordinary applications for companies looking to make the next great idea a reality.
  • learn more

Topics

WordPress

Comments about this site: info@pathf.com