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.
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.