Web World Moving to Client-Side UI Architecture

For many a years, I have enjoyed working on client-side UI applications especially on the Microsoft products. The outstanding feature that kept me interested in Visual Programming Applications was the ability of the client-side applications to successfully distinguish the presentation and the behavior of the UI components by using an event-driven programming model. Unfortunately, World Wide Web did not have that privilege to use such a distinction; reason being the Network traffic barrier that separates the event-handler, the Server from the Presentation at the Client Side, on The Browser.

That was when web world turned their attention to the art of scripting; to use client side scripts and hence to reduce the overhead of client-to-server and back network travel. Hence, came the days when HTML was sandwiched with JavaScript and VB Scripts. Presentation and the Behavior stuffed together. Web Designers who were previously “Creative Artists” then learned the art of scripting and begun to call themselves as “Web Programmers”. Web community could not draw a line of distinction between presentation and behavior yet.

Soon, problems started to surface. First, the application maintenance and porting became tedious. The task of identifying the problem routine from among the mark-up language and content and rectifying the issue turned out to be a nightmare. Portals introduced the concept of aggregation for content rendering making page designers and scripting artists to stretch their abilities to the extreme limits.

Things started looking better when Java community decided to organize itself using scriptless JSPs. Custom Tags and EL were quite effective. Struts Framework provided another useful alternative by moving the HTML validation to the Server Side. But still, bits and pieces of code remained in the JSPs that serviced component handling tasks.

JavaServer Faces was the revolutionary concept that came to the rescue of developers in the web world. Initial step was to clearly distinguish and define the roles in a typical web application development. Then, the fine-grained model of separating the presentation from the behavior was introduced by moving everything to the server side.