declarative web GUI

November 19, 2003

For thousands of years, philosophers and scientists have attempted to explain the cosmos in terms of dual opposing but coexistent principles: good and evil, yin and yang, matter and energy, mind and body, waves and particles, and, of course, programming code and markup languages.

Programming and markup currently coexist in an uneasy truce. In theory, programming languages can do anything the computer is capable of, but they’re often clunky for the job of laying out text, images, and controls in a simple visual interface. Markup is great for defining highly textured pages of text and images that adapt to different screen sizes and environments, but is hopelessly inept when it comes time to interact with the user in any nontrivial way. — Code Name Avalon, MSDN

Declarative programming has been actively used for web application since the early years of the web. PHP and CFML enabled easy access to server-side logic and services by encapsulating them in tags that felt like HTML.

Initially, on the client-side, Javascript provided the mechanics that enabled DHTML to drive richer experiences. Although its hard to separate the potential effectiveness of this model from the headaches inherent in the lack of cross-platform support that fell out of the browser wars of the late ’90s, the later emergence of declarative GUI shows more potential for providing the next generation web experience.

XUL was probably first on the scene. It may at first look like HTML, PHP, JSP, or CFML markup because of all the angle brackets, but the tags represent more powerful objects and ones that people can interact with.

LZX from Laszlo Systems is the declarative web GUI language from which I draw my conclusions. I’ve developed desktop application UI in C/C++, then web applications in Shockwave and Flash, and even some for plain-old-HTML. I imagine a new user experience for the web that leverages lessons learned from desktop UI and “multimedia” yet is appropriately evolved for this new space.

It is neat to see a plethora of emerging technologies using this kind of approach. At the PDC, Microsoft unveiled XAML (to be released with Longhorn in 2006) and this week Macromedia formalized its Flex stratgey (the previously code-named Royale product to be released mid-2004). In addition to XUL from Mozilla and LZX from Laszlo that are already released, there’s XWT and similar tech. One can only hope that the innovations of language and platform will drive a the development of a better human experience of the world wide web.