On Apr 7, 2006, at 8:21 AM, John wrote:

> Stephen Tashiro wrote:
>> This is not a ruby specific topic but since there were some definite
>> opinions expressed about systems of writing GUIs in a recent  
>> thread, let
>> me ask it here.
>>
>> Is there a practical program architecture for separating the gui  
>> portion
>> of a program from the part that does the "real work"?  Or is this  
>> just a
>> high flown idea that is rarely practical?
>
> You need to look into a concept called MVC - it stands for
> Model/View/Controller.

The original post was a pretty general question.  MVC is certainly  
one approach
but it still embeds the 'real work' in the GUI application albeit via  
a nice
internal structure.

Another thought is that the 'real work' is done via some sort of a  
server
application with an API that is accessed from clients via inter-process
communication of some sort.  Think of the separation of functionality
between a mail reader application and the back end mailbox server via  
IMAP or POP.

It might be worth exploring the c2.com website which has lots of  
discussion on
software patterns.  You might start at http://c2.com/cgi-bin/wiki? 
ModelViewController


Gary Wright