Thursday, May 29, 2008

Why GWT matters - part I

I have been heads down taking a deep look at GWT of late. This is the first installment of my thoughts on why I believe GWT matters.
Before I got into web development, I was heavily involved in GUI development mostly for UNIX workstations. Back in the day, I used toolkits based on Xt - first OLIT and then later Motif (when OLIT was dropped). At about this point, C++ really started to become popular and later on, for another project I used Rogue-Wave Tools.h++.

The programming model was fairly natural and consisted largely of creating components (or widgets) such as buttons, text fields, sliders, scroll bars and the like; adding them to other components such as panels or frames; specifying properties such as colour, size, font; organizing into a layout; adding callbacks (or listeners) to respond to events (e.g. button pushed, slider dragged).

All components were created in the same way, although some components naturally exposed different properties you could set.

This standardized programming model laid the foundation for impressive tools such as Visual Basic and Borland Delphi. Back in the day, the buzzword of the day was RAD or Rapid Application Development. These tools, enabled a blank canvas representing the application under construction on which you could drag and drop components onto the canvas from a palette of available components. Behind the scenes, code was being generated to reflect the visual design.

And then, the web happened. Once it got past the initial "brochure-ware" stage, thanks initially to CGI it quickly evolved into an application platform. The web was great in that it truly solved the distribution problem. You no longer had to worry about getting your application installed. Instead, you would drop it on the server and the user would just point their browser and boom you're away. Upgrades - not a problem. Who cares what platform the browser runs on - you no longer had to worry about porting code natively to the platform. As long as the browser was available on the platform, your application was accessible.

However, this came at some cost. We had to learn new stuff like HTML, HTTP and unlearn some old stuff.


Read the next installment - part II (when I get around to writing it)

0 comments: