new GUI paradigm

The latest alert box from UI guru Jakob Nielsen would be rather fascinating if it wasn't so darned obvious: the latest paradigm in UI is no longer OO (WYSIWYG is fundamentally a stateful OO paradigm) but is declarative -- they call it results-oriented. But read the alert box, and it will be astoundingly clear that, instead of issuing commands to modify state (ie OO), the new thing is to instead specify your goals. There must be a good PL angle to this story!

Ah well, back to doing some good old command-line stuff for me -- since at least that is based on a functional paradigm!

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

similar to CTM?

Is Office 12's GUI 'declarative' in the same sense as CTM's declarative GUI (Adobe is supposed to have a similar api)

Not sure...

Could be, but the article doesn't actually say very much beyond current GUIs bad, new GUI good. What it does describe doesn't sound terribly new either.

Looks like it's just a load of preview windows for different effects and a declarative api.

Evolution, not revolution

The funny thing is, the new GUI doesn't really *replace* the existing GUI paradigm. It simply augments it with new features, which is exactly what you would expect from Microsoft. The new features look useful, but I really don't see how you can totally eliminate dialog boxes, command menus, and the like. The totality of the changes as referenced by the Microsoft FAQ are:

  • Command Tabs
  • Contextual Command Tabs
  • Galleries
  • Live Preview

A "Command Tab" doesn't look much different from a Button Bar or Cool Bar on roids. And a "Contextual Command Tab", while convenient, doesn't look like anything more than a shortcut to a deeply nested dialog. "Galleries" have been around in limited form for quite a while (if you've ever used the charting features of Office, for instance, among other tools). Live Preview is nifty, but sounds pretty processor intensive for anything more complex than simple text. And it especially doesn't look like it has anything to do with PLs (unless it implies a radical change in VBA or something).

Don't think so

Is Office 12's GUI 'declarative' in the same sense as CTM's declarative GUI (Adobe is supposed to have a similar api)

No, I don't think so. As far as I can tell, Nielsen is not talking about the UI being declarative from an implementation point of view but rather declarative ("results-oriented") from a user's point of view. Look at the Office preview page he links to where you can see a bunch of screenshots. In particular I assume the "galleries" feature depicted there is the main thing he considers results-oriented.

I'm not sure this could be considered very relevant to programming languages unless you muddle the terms to the extent that any human-computer interface is suddenly a programming language. (While this might be true in a certain formal sense, it makes the terms meaningless and useless.)

And who is going to implement the results?

Declarative guis are good, since they are easier to use, but who is going to implement the results? what if the results I have to select from do not include the thing I am looking for? We are back to the stateful OO paradigm in that case (select object - send message).

What I would like to see from Word is to be more like functional programming, i.e. stong typing and no destructive updates.

Let's take Microsoft Word, for example: bold characters can be selected anywhere, even in styles that bold does not make sense. A style can be destructively updated in one place, and thus create havoc in the rest of the document. Word makes it more difficult by allowing the user to select 'copy-on-write' for styles, i.e. if a style is automatically updated or not. It's like a variable in programming languages: if the variable's content changes, the rest of the program sees the new value, whereas if a new value is used, the rest of the program is not broken.

Instead of being like that, Word should have been like this: the user creates types, i.e. document elements, with each element having a specific style configuration. Elements can be freely mixed, creating new types, which are added to the user's type library. A type should be strong, i.e. if modified it is modified for all documents that it is used for. Thus the actual document becomes a type, i.e. a specific configuration of styles, rather than a randomly-chosen series of special marking characters.

Not only Word documents would be more consistent, but they would be much easier to manage, much easier to categorize, they would take much less memory, document types could be handled separately and managed from a single point in a distributed enviroment (for example, changing a company's logo would be automatic in all new documents) etc.


I think it's a question of specifying goals through successive approximation (in order for this to be tolerable, there has to be a good chance of one of the options on offer being the one you want first time). Richard Dawkins' biomorphs program on the BBC B enabled you to "design" virtual insects in the same way. The sun, having no option, shines on the nothing new.

Note that, in order to be displayed for selection, the results (or a representative sample of them, as when you play with filters in the GIMP) must already have been computed prior to being chosen. So the most obvious PL angle - goal-driven programming - doesn't really seem to apply here.

The design of a visual interface for specifying constraints that must then be satisfied seems like quite an interesting problem; I'm just not sure that that's the problem the new MS Office interface is trying to solve.