[REBOL] Re: Sticky Button Down State
From: greggirwin:mindspring at: 1-Jul-2003 9:47
DN> I don't do much View programming now, but when I do it
DN> would be great to see examples or a How-to. ^_^
Agreed. I think we all want that.
>> My main tool against this kind of problem is a state
>> machine. Events are placed into a queue and dispatched from there.
DN> Sounds complex...
The complexity is there already. State machines help to *manage* it by
making things explicit. Most programs contain an informal state
machine of some kind. As soon as you need to disallow events, or
handle them differently based on what the app is doing, you've got a
state machine. The only difference in what I'm talking about is that
you design them explicitly rather than setting flags here and there,
disabling event triggers, and using nested SWITCH statements.
Designing the state machine for your program forces you to identify
all the possible states it could be in, what events can occur, and
what you do for each event in each state. All that information is
going to be expressed implicitly in your program anyway.
What makes the "normal" way seem simpler is that we tend to ignore a
lot of the things that can actually happen, so we're handling only a
portion of all the possible cases. This is a great way to keep
complexity at bay, but not a great way to build mission critical
It is always best to express things as simply and directly as
possible. Sometimes the only way to find the best solution is to try
all the ways you can think of and compare them. :)