GUI's and the Rouge, Part III (yes, finally) 1/2

N.B. This post is rather dull.

I agree strongly that asynchronous, hierarchical
message passing is a vital part of GUI
infrastructure.
I was under the impression that it revolutionized
GUI
programming quite a while back, though.

  • Rich messaging - you define strong message types
    with arbitrary
    content (in OpenUI that means potentially nested
    arrays of
    structures of…)
  • Hierarchical propagation against handlers having
    the appearance
    of dynamically-bound methods that receive the
    message parameters,
  • Message broadcast down towards the leaf nodes
    that’s transparent
    to the current delivery node.

Other than curses, I’m not sure I’m aware of any GUi
system that does not use asynchronous, hierarchical
messaging. Even X used it – and that was back in the
days of X!

If you leave out the word ‘strong’ (they sure like
their void pointers over in Redmond), Windows has met
the above 3 items (in an inconsistent and obscure
way)for many years. The proviso that ‘no widget needs
to address any other’ is a good one, and I can think
of nothing except Windows that meets it (maybe
Swing?). In practise, of course, in Windows you do
often have to know the exact object you are talking to
so you can allow for all the inconsistencies.

I guess my conclusion is that having a powerful
messaging system is only useful if you have a set of
components so orthogonal that you actually can
broadcast a message to them and expect them all to do
something sensible with it. And making those
components would be harder than making the messaging
system.

Benjamin Peterson

x