On Friday 09 March 2001 12:44, Guerry A. Semones wrote:

> The Facade pattern according to Fowler: "A facade is a type that
> provides a simplified interface to a complicated model" (Analysis
> Patterns, p.247).  The Model-View-Controller (MVC) pattern essentially
> tries to separate the model (data and logic) and the view (UI) with a
> controller (which knows about both).  Please don't anyone slam my
> definition, I'm sure its not sufficient, but I've got the flu and
> other such excuses :-).
>

That's no excuse! :-D

Seriously, the FOX GUI (while Lyle Johnson is busilly porting to Ruby) 
appears to implement much of what you are talking about, here, with its 
message/target system. The GUI sends and receives messages to/from the "guts" 
of your application and handles them accordingly.

Essentially, in a component based architecture, and especially one that is, 
say, open source and developed by people living on different sides of the 
globe, the UI/application logic separation is a necessity. When the UI and 
the logic models are separated, then neither has to know much of anything 
about the other except in regard to the messages. This reflects other 
threads/discussions regarding a "common tongue" such as XML.

Ideally, if you are working on the "business logic" and I on the GUI and, 
say, Ben, on a console UI, none of us should really need to know much about 
what the other is doing other than decoding the messag traffice between/among 
the various modules into a working "presentation" relative to the environment 
where the information is displayed. The ability to concentrate upon the 
internals of one's specific module (whether UI or business logic) without 
detailed regard to the others should certainly spped development and result 
in more robust (because they are more easily tested) components. This should 
also, I think, speed cross-platform development as GUI components can be made 
platform specific without changing the underlying operational structure of 
the application.

Also, I wish to point out that in all of our discussions involving GUI's here 
we have mentioned Tk,wxWindows, Fox, FLTK, GTK, QT, etc. but have forgotten 
mention of a common GUI now emerging as a critical component, that is POB 
(=plain old browser *smile* Ok, someone _did_ mention Mozilla!)  In an ASP 
(the universal acronym, not the Windows platform specific one *smile*) this 
_is_ the "natural" UI. Increasing, the borwser is becoming the desktop! :-)

(IBM incidentally is taking some very intriguing conceptual leaps in this 
direction with "weblications" embedded into the desktop environment).

Finally, regarding console UI, Apachetoobox.com provides a very detailed 
while easy-to-use/understand UI (IMO), although in the not-too-distant I 
suspect that someone(s) will be providing GUIs (probably Tk and/or GTK) for 
Apachetoolbox.(BTW, ecause someone will probably mention it, I do have some 
"problems" with Apachetoolbox, but these are security issues having nothing 
to do with the UI. I don't feel exactly comfortable being logged on the the 
Internet as "root"!)

Also, in Linux land, there are several utilities that provide graphical 
dialogs from stdout or stderr for those who simply _must_ have a"box", 
although Ben probably wouldn't want these :-)

Regards,

Kent Starr
elderburn / mindspring.com